salt [options] '<target>' <module.function> [arguments]
salt的自建函数:
salt '*' test.rand_sleep 120 salt/salt/modules/test.py 这个是salt自带的包
salt '*' disk.usage
salt -G 'ipv4:192.168.50.12' cmd.run 'ls -l /home'
salt '*' grains.get ip_interfaces grains是获取minions的数据,grains的主要作用是用在对minion的筛选上
piller是向minions下发数据
salt 'minion2' state.apply nettools //执行sls文件
salt '*' state.apply //对所有的minion应用这个top.sls
设定 state.apply后面不接参数的话叫做highstate,会自动去应用top.sls文件
- grains
grains是关于minion的静态信息,例如os版本,ip信息,内存硬盘大小等等。minion初次连接就会传递这些数据给saltmaster,同时周期更新或者saltmaster主动请求更新。
grains的主要作用是用在对minion的筛选上,还记得上面的远程执行命令中有一个'<target>'吗,grains就可以用在这个上面。例如针对不同os的系统执行不同的命令。
- pillar
pillar是saltmaster往下发送给minion的数据,因为经过加密,所以可以用来传递一些私密信息,例如密码等等。同时pillar的数据也不会在minion端进行本地持久化,确保安全。
上面提到了配置管理,但是修改配置的时候参数往往是很多的,而且不同的系统也会不一样,例如安装路径,监听端口,用户名等等。pillar可以让你定义这些信息,然后以变量的形式插入到states文件中去执行。
pillar文件也是采用YAML格式。
- mine
顺便值得一提的是mine这个数据传递的方向,用于在minion之间传递数据。这是个不太常见的功能,以后有机会通过实例来讲解。
————————————————
版权声明:本文为CSDN博主「T型人小付」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Victor2code/article/details/103620009
1.常用语法
- salt '*' cmd.run "ab -n 10 -c 2 http://www.google.com/"
- salt '*' grains.ls 查看grains分类
- salt '*' grains.items 查看grains所有信息
- salt '*' grains.item osrelease 查看grains某个信息
- salt '*' cmd.run "/App/nginx/sbin/nginx -v"
2.分组
[root@localhost ~]# salt -C 'P@os:CentOS' test.ping
host172:
True
host174:
True
[root@localhost ~]# vim /etc/salt/master
nodegroups:
group1: 'L@host172,host174'
group2: 'S@192.168.10.172'
group3: 'P@os:CentOS'
[root@localhost ~]# salt -N group1 test.ping
host172:
True
host174:
True
[root@localhost ~]# salt -N group2 test.ping
host172:
True
[root@localhost ~]# salt -N group3 test.ping
host172:
True
host174:
True