1 Master与Minion认证过程:html
1.minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和minion.pub(public key),node
而后将minion.pub发送给master。linux
2.master 在接收到minion的public key后,经过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的public key,web
而后master就能对minion发送指令了。正则表达式
2 Master与Minion的链接shell
Saltstack master启动后默认监听4505和4506两个端口。4505(publish_port)为salt的消息发布系统,vim
4506(ret_port)为salt客户端与服务端通讯的端口。若是使用lsof查看4505端口,会发现全部的Minion在4505端口持续保持在ESTABLISHEDide
3 Master与Minion的Key:测试
因为上面已经设置了客户端自动注册到服务端,因此直接能够查看是否有客户端注册.net
[root@master slave]# salt-key -L
Accepted Keys:
slave_141
slave_142
slave_143
Unaccepted Keys:
Rejected Keys:
Accepted Keys:为被服务端接受的KEY(slave_141 slave_142 slave_143就是minion中的id标识号)
Unaccepted Keys:未被服务端接受的KEY
Rejected Keys:被服务端拒绝的KEY
salt-key命令能够接受特定的单个key或批量接受key, 使用-A选项接受当前全部的key, 接受单个key能够使用-a idname.
4 在服务端salt匹配minion id
在运行salt命令进行匹配时,请使用单引号('),避免shell解析
匹配全部minion:salt '*' test.ping
匹配下边域的全部minion:salt '*.example.*' test.ping
匹配example.net域中的(web1.example.net、web2.example.net......webN.example.example.net):salt 'web?.example.net' test.ping
匹配web1到web5的minion: salt 'web[1-5]' test.ping
匹配web-x、web-y及web-z minion: salt 'web-[x-z]' test.ping
5 正则表达式:
匹配web-prod和web1-devel minion:
salt -E 'web1-(prod|devel)' test.ping
指定列表
salt -L 'web1,web2,web3' test.ping
指定组:
在服务务端中打开master配置文件
vim /etc/salt/master
添加以下分组
nodegroups:
group1: 'L@slave_143,slave_141'
group2: 'slave_142'
值得注意的是编辑master的时候,group1和group2前面是2个空格
6 测试:
[root@drfdai-17 salt]#salt -N group2 test.ping
slave_142:
True
可能你们会好奇group1中为何会有L@,这表明什么意思?
其实L是指客户端列表,咱们一组中有多个客户端,因此在前面用L表示。除了有列表匹配外,还有不少匹配方式,如:
这些参数均可以直接在命令行使用,如:
salt -S '192.168.43.142' test.ping
salt -G 'os:Centos' test.ping
salt -L '230,68' test.ping
minion基本信息的管理
基本使用:
salt '*' grains.ls 查看grains分类
salt '*' grains.items 查看grains全部信息
salt '*' grains.item osrelease 查看grains某个信息
如:
[root@drfdai-17 salt]# salt '*' grains.item osrelease
230:
osrelease: 6.2
68:
osrelease: 6.2