salt '*' test.ping //这里的*表示所有已经签名的minion端,也可以指定一个
salt 'centos1' test.ping
salt '*' cmd.run "hostname"
说明: 这里的*必须是在master上已经被接受过认证的客户端,可以通过salt-key查到,通常是我们已经设定的id值。关于这部分内容,它支持通配、列表以及正则。 比如两台客户端centos1,centos2, 那我们可以写成salt 'centos*', salt 'centos[12]' salt -L 'centos1,centos2' salt -E 'centos(01|02)'等形式,使用列表,即多个机器用逗号分隔,而且需要加-L,使用正则必须要带-E选项。 它还支持grains,加-G选项,pillar 加-I选项,下面会介绍到。
grains命令
grains是在minion启动时收集到的一些信息,比如操作系统类型、网卡ip、内核版本、cpu架构等。
salt 'centos2' grains.ls 列出所有的grains项目名字
salt 'centos2' grains.items 列出所有grains项目以及值
grains的信息并不是动态的,并不会实时变更,它是在minion启动时收集到的。
我们可以根据grains收集到的一些信息,做配置管理工作。
grains支持自定义信息。
minion上(进行自定义grains操作):
vim /etc/salt/grains //添加:
role: nginx
env: test
重启minion服务
systemctl restart salt-minion
master上:
获取grains:
salt '*' grains.item role env
可以借助grains的一些属性信息来执行
salt -G role:nginx cmd.run 'hostname' //角色为nginx运行hostname命令
pillar命令
pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息。像一些比较重要的数据(密码)可以存在pillar里,还可以定义变量等。
配置自定义pillar
vim /etc/salt/master
找到如下配置://去掉前面的警号
pillar_roots:
base: #此行前面有两个空格
- /srv/pillar #此行前面有4个空格
systemctl restart salt-master
mkdir /srv/pillar
vim /srv/pillar/test.sls //内容如下,对应top.sls中的- test
conf: /etc/123.conf
vi /srv/pillar/top.sls //内容如下
base:
'centos2': #此行前面有两个空格
- test #此行前面有4个空格
重启master
systemctl restart salt-master
当更改完pillar配置文件后,我们可以通过刷新pillar配置来获取新的pillar状态:
salt '*' saltutil.refresh_pillar
验证:salt '*' pillar.item conf
pillar同样可以用来作为salt的匹配对象。比如 salt -I 'conf:/etc/123.conf' test.ping