`

Salt安装与基本操作

阅读更多

 

1 rpm centos中的安装包格式 ,相当于windows中的exe文件

2 yum是centos中方便的rpm仓库以及提供方便的安装方法,不但可以安装而且可以安装相应的依赖

3 /etc/yum.conf 是yum源的配置文件

4 /etc/yum.repo.d/xx.repo是yum源的仓库,安装文件的时候会根据配置下载安装包和相应的依赖包,然后安装

5 epel,安装后会产生yum源仓库的repo文件

6 yum源自行更换:下载repo文件,删除原来的repo文件 清理原来的缓存重新生成:1)yum clean all 2)yum makecache

 

安装:yum install 。。

升级所有软件包:yum update 

升级某个软件包:yum update tomcat

检查可更新的程序:yum check-update

显示已经安装:yum list installed

查找可以安装:yum list tomcat

卸载:yum remove tomcat

列出依赖:yum deplist tomcat

显示信息:yum info tomcat

 

 

 

 

查看是否安装:rpm -qa | grep subscription

删除:rpm -e file.rpm

安装:rpm -qa | grep salt-master

 

 

 

 

==========

salt的安装参考:https://my.oschina.net/u/3314358/blog/1839063

 

自定义service:/lib/systemd/system

 

一、启动与重启:

systemctl start salt-master 

systemctl start salt-minion

systemctl restart salt-minion

systemctl status salt-minion

 

二、目录:/etc/salt/

日志目录:/var/log/salt

 

三、重新认证:

1、清空minion_id:/etc/salt/minion_id

2.删除minion存放masterkey的文件pki文件夹下所以的东西 :rm -rf /etc/salt/pki/*

3.重启minion

4.在master端:删除pki文件之后,重启即可 rm -rf /etc/salt/pki/* & service salt-master restart

 

四、查看端口,看salt是否启动成功

netstat -antlp|grep 4506

五、master上查看连接到的minion: salt-key -L

 

六、常用命令

1)salt 该命令执行salt的执行模块,通常在master端运行,也是我们最常用到的命令

salt [options] '<target>' <function> [arguments]

如: salt '*' test.ping (校验master与minion的连接情况)

2)salt-run 该命令执行runner(salt带的或者自定义的,runner以后会讲),通常在master端执行,比如经常用到的manage

salt-run [options] [runner.func]

salt-run manage.status ##查看所有minion状态

salt-run manage.down ##查看所有没在线minion

salt-run manged.up  ##查看所有在线minion

3)salt-key 密钥管理,通常在master端执行 

salt-key [options]

salt-key -L##查看所有minion-key,安装完成的时候用这个命令确定master有几个minion连接成功

salt-key -a <key-name>##接受某个minion-key(如果没有master和minion自动秘钥认证,则需要调用这个手动认证)

salt-key -d <key-name>##删除某个minion-key

salt-key -A##接受所有的minion-key

salt-key -D##删除所有的minion-key

说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all

 

4)salt-call 该命令通常在minion上执行,minion自己执行可执行模块,不是通过master下发job

salt-call [options] <function> [arguments]

salt-call test.ping ##自己执行test.ping命令

salt-call cmd.run 'ifconfig' ##自己执行cmd.run函数

 

5)salt-cp 分发文件到minion上,不支持目录分发,通常在master运行

salt-cp [options] '<target>' SOURCE DEST

salt-cp '*' testfile.html /tmp

salt-cp 'test*' index.html /tmp/a.html

 

6)salt-ssh 0.17.1版本加入的salt-ssh

7)salt-master master运行命令

salt-master [options]

salt-master ##前台运行master

salt-master -d##后台运行master

salt-master -l debug  ##前台debug输出

 

七、sls文件(个人理解:是yaml的模板文件,也可以使用jinja动态生成模板,然后通过yaml解析后生成一定的数据结构给salt使用)

1. sls文件本质上是python嵌套字典(键值对),由salt-master以广播的形式传递给salt-minion,通过sls文件告知使用哪个模块的哪个函数,参数有哪些,在salt-minion一侧进行函数调用

2. 冒号':' 用来分隔键和值, 冒号:与后面的单词如果在一行,一定要有一个空格, 一个单词后面是否有冒号:取决于这个单词是否是key, 后面是否有值或者是嵌套的内容

 短横杠 - 表示这项是个列表项, 短横杠与后面的单词有一个空格

 缩进: 本层与下一层要有缩进, 缩进不能用tab, 一般是两个空格. 相同一缩进表示相同的层级

 

 

八、Module 模块使用(模块之间调用:可以通过 __salt__['模块.函数']('函数参数'),调用其他的模块)

1)开启配置Module的目录:module_dirs : ['/srv/salt/_modules']

2)定义的目录中创建Module,python的文件

3)同步Module到minion上:salt '*' saltutil.sync_modules

4)执行Module:salt '*' zhou.zhou zyy参数

5)Module中使用全局字典,grains,pillar,salt

    grain = __grains__['chengge']

    # 通过salt默认的一个字典__grains__,你想去哪个grain的时候,使用 __grains__['Id']

    pillar = __pillar__['group']

    # pillar 和 grains 一个样,__pillar__['Id']

    result = __salt__['cmd.run'](args)

    # __salt__['模块.函数']('函数参数')

 

6)同步模块到minion的3中方式

salt '*' state.highstate

salt '*' saltutil.sync_all

salt '*' saltutil.sync_modules

 

 

 

九、Runner 模块使用(Runner直接在master上执行,不需要同步到minion上在执行)

1)开启配置文件,定义Runner的目录,runner_dirs: []

2)目录中创建python的runner文件

3) 执行Runner模块: salt-run lsdir.lsdir home

 

 

十、 Grins 模块(grains一些静态的客户端数据的定义)

作用:grains 主要负责采集客户端一些基本信息,可以客户端自定义然后汇报到master上,也可以服务器定义同步到客户端,然后在汇报上来

   可以在Module的模块中调用

1)打印所有的items: salt '*' grains.items

2)列出所有的items:salt '*' grains.ls

3) 查看单个的items:salt '*' grains.item shell

 

十一、Pillar模块,jinja2为python前端展示的模板引擎,逻辑判断的功能都是有的

1)pillar数据定义用sls文件,文件目录位置配置文件中:pillar_roots 

2)入口文件:top.sls,salt加载需要通过这个文件进行加载

3)定义完成数据文件需要同步到minion中:salt '*' saltutil.refresh_pillar,如果不生效可以重启master在次同步数据

4)查看所有的pillar数据:salt '*' pillar.data

5)查看某个pillar数据:salt '*' pillar.data minionname

6)其他python文件中使用:如:pillar['appname'] 

    state 和模板文件中引用,模板格式变量为 {{ pillar变量 }}如:{{ pillar['flow']['maxconn'] }} 

 

7)结合grains获取客户端的ip如: ip : {{ grains['ipv4'][0] }},放到sls文件中,可以获取客户端ip信息:salt \* pillar.data ip

 

十二、 cmd模块,在集群汇总统一执行shell命令:salt '*' cmd.run 'df -h'

十三、 ping模块,执行ping命令: salt '*' test.ping -t 5  

十四、cp模块,作用: cp 模块由 Salt 状态系统 salt-cp 使用,可用于分发 Salt 文件服务器提供的文件

十五、 cron模块,定时执行某个文件

salt '*' cron.raw_cron root     (查看定时任务)

salt '*' cron.set_job root '*' '*' '*' '*' 1 /export/scripts/rm_log.sh 

salt '*' cron.rm_job root /export/scripts/rm_log.sh   (写全没效果)

十六、dnsutil模块,实现被控制主机本地域名文件操作

1)添加 salt 'centos02' dnsutil.hosts_append /etc/hosts 127.0.0.1 www.test.com

2)删除 salt 'centos02' dnsutil.hosts_remove /etc/hosts www.test.com

3)api调用 client.cmd('*', 'dnsutil.hosts_append',['/etc/hosts','127.0.0.1','www.test.com'])

十七、file模块,实现被控主机常见文件操作

十八、network模块,返回被控主机的网络信息

salt '*' network.dig www.qq.com

salt '*' network.ping www.qq.com

salt '*' network.ip_addrs

 

十九、pkg模块,被控主机程序包管理,如yum、apt-get等

# 管理yum, apt-get等

salt '*' pkg.install php

salt '*' pkg.remove php

salt '*' pkg.upgrade    (升级所有的软件包)

二十、service模块

salt '*' service.enable nginx

salt '*' service.disable nginx

salt '*' service.restart nginx

 

 

 

 

 

salt-api安装使用

https://www.jianshu.com/p/fdfa8ee1840a

https://cizixs.com/2015/03/24/salt-api-usage

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    linux-saltssh批量装saltminion

    salt-ssh是Saltstack的另一种管理方式,无需安装minion端,可以运用Salt的一切功能,管理和使用方式和基本和Salt一样。但是执行效率会比有minion端慢很多,不适合大规模批量操作

    salt-sccm:调用 System Center Configuration Manager 客户端操作的一些基本命令

    盐-sccm 调用 System Center Configuration Manager 客户端操作的一些基本命令。 将 sccm.py 放入 /srv/salt/_modules 并运行 saltutil.sync_module 或 saltutil.sync_all 将模块推送到客户端。 sccm.system_boot_...

    salt-nginx:Saltstack声明要设置一个Nginx服务器

    盐nginx Saltstack声明要设置一个nginx...支持的操作系统 德比安 8, jessie 9, stretch 10, buster 特征 基本的Nginx设置 SSL协议 根据设置DH灌注 配置OCSP装订 设置HSTS标头 通过acme.sh自动注册Letsencrypt证书

    salt-config-example:SaltStack 配置示例

    我们选择 SaltStack 作为处理这个新基础架构中任何操作(从配置管理到部署)的工具。 这个存储库是我们的 salt sls文件的快照(删除了敏感部分)。 这个想法是为了帮助其他感兴趣的各方熟悉 SaltStack 并在使用它时...

    ops:Akobi 的所有操作相关代码的基本存储库

    阿科比行动Akobi 的所有操作相关代码的基本存储库。 这包括 puppet 模块、shell 脚本等。 autodeploy/ - 用于在推送时自动部署网站的脚本nginx/ - 网站的 Nginx 配置salt/ - 所有盐状态减去Struts自动部署包含一个...

    salt-formula-linux

    Linux操作系统: 的Ubuntu CentOS的 红色的帽子 费朵拉 拱 样品柱 Linux系统 基本Linux盒子 linux : system : enabled : true name : ' node1 ' domain : ' domain.com ' cluster : ' system ' ...

    opencrowbar-formula:设置 OpenCrowbar 的公式

    在基本的 CentOS-6.6 系统中执行以下操作: yum install -y epel-release yum install -y salt-minion yum 安装 -y git mkdir -p /srv/salt git 克隆 cp -r opencrowbar-formula/opencrowbar /srv/salt salt...

    Arkonf:Arkanosis的配置文件

    Arkonf Arkonf是一种系统配置,包括: 使用Salt管理的要安装的软件包列表;... 所有主机都将获得基本程序包和配置,但是只有一些主机将获得其他程序包,具体取决于与角色名称关联的角色。 hostnamectl set-hostna

    ceph研究与应用

    资源名称:ceph 研究与应用资源目录:【】14_NetApp系列设备基本操作配置手册(CIFS_ISCSI_FC-SAN_for_Windows)【】john-1.7.8.tar【】paramiko-1.7.7.1【】salt_V1.4【】SAN架构实施报告手册资源截图: 资源太大,传...

    simstack:用于云实验的 CloudStack 和 co vagrant box

    其目的是为所有配置管理系统(即 Chef、Puppet、Salt、Ansible...)提供配方,并提供两种基本的操作系统风格:CentOS 和 Ubuntu。 使用的基本框simstack.box和simstack-ubuntu.box是使用simstack.box simstack-...

    氧化钠:Rust 的快速加密库(绑定到 libsodium)

    氧化钠|板条箱|文档|Gitter||:---:|:-----------:|:--------:|:-----:|:------:|: ----:|||||NaCl (发音为“salt”)是一个新的易于使用的高速软件库,用于网络通信、加密、解密、签名等。NaCl 的目标是提供构建更...

    CodeIgniter-Barebone-Admin-Panel-Bootstrap-4:使用bootstrap 4预制管理面板的Codeigniter。 开箱即用的管理程序,可使用Codeigniter MVC框架构建自定义管理模板样式的网站。 请将此回购星标为&lt;3

    准系统-管理面板-Bootstrap-4 指示: 将.sql文件安装到您MySQL数据库在application / config / config.php中更改base_url 将application / model / Admin_model.php中的salt更改为其他随机变量(如果执行此操作,...

    aes_cipher_app:简单的python应用程序使用AES256-CBC进行加密解密

    -o &lt;output&gt; [-s &lt;salt&gt;] [-t ] [-v] [-h] 参数说明: 简称 长名 说明&gt; -米 - 模式 操作模式: enc用于加密, dec用于解密 -p - 密码 用于加密/解密的密码。 它可以是单个密码,也可以是用逗号分隔的密码列表 -...

    PHP项目中libsodium封装Halite.zip

    Halite 基本 API:EncryptionAnonymousAuthenticatedAsymmetric\Crypto::seal(HiddenString, EncryptionPublicKey): stringAsymmetric\Crypto::unseal(string, EncryptionSecretKey): HiddenStringAsymmetric\Crypto...

    php安全开发 添加随机字符串验证,防止伪造跨站请求

    比较常见而且也很廉价的防范手段是在所有可能涉及用户写操作的表单中加入一个随机且变换频繁的字符串,然后在处理表单的时候对这个字符串进行检查。这个随机字符串如果和当前用户身份相关联的话,那么攻击者伪造...

    一种基于四分位数的降低椒盐噪声的新方法-研究论文

    图像噪声基本上是受一些错误值影响的像素,这可能是误导结果的原因,尤其是在图像中的对象和边缘检测中。 因此,为了在嘈杂的环境中执行对象和边缘检测的操作,必须进行一些预处理。 图像降噪是数字图像处理中活跃...

    spring security 参考手册中文版

    13.5与其他基于过滤器的框架一起使用 118 13.6高级命名空间配置 118 14.核心安全筛选器 119 14.1 FilterSecurityInterceptor 119 14.2 ExceptionTranslationFilter 121 14.2.1 AuthenticationEntryPoint 122 14.2.2 ...

Global site tag (gtag.js) - Google Analytics