[root@Master ~]# salt 'HK-VPN' cmd.run 'free -m' HK-VPN: total used free shared buffers cached Mem: 987 781 205 0 75 74 -/+ buffers/cache: 631 355 Swap: 1023 0 1023
saltstack的远程执行,我们可以通过从其target、模块和return来学习。比如刚才的语句,HK-VPN就是target,cmd.run就是模块(组件+方法),执行结果便是return。这次笔记记录下target使用方法。
管理对象
如果我们要维护好一个庞大的配置管理系统,那么首先得维护好我们的管理对象,在SaltStack系统中我们的管理对象叫作Target,在Master上我们可以采用不同Target去管理不同的Minion。这些Target都是通过去管理和匹配Minion的ID来做的一些集合.
1,Grians匹配,加参数-G
salt -G ‘os:CentOS’ test.ping 比如我们用grains这个信息进行主机匹配。
[root@Master ~]# salt -G 'os:CentOS' test.ping aliserver: True Master: True HK-VPN: True
2.列表匹配 ,加参数-L
salt -L HK-VPN,aliserver test.ping
[root@Master ~]# salt -L HK-VPN,aliserver test.ping aliserver: True HK-VPN: True
3,正则匹配,加参数-E
在操作与管理Minion时可以通过正则表达式来匹配Minion ID的方式去管理它们,这个用的还是比较多。比如我们想要对匹配到’HK*’字符串的HK开头的服务器进行操作,可以按如下代码配置:
salt -E ‘HK*’ test.ping
[root@Master ~]# salt -E 'HK*' test.ping HK-VPN: True
4,pillar匹配,加参数-I
salt -I ‘mysqlmanager:21yunwei’ test.ping 我们需要键值为mysqlmanager:21yunwei 的target执行操作
[root@Master ~]# salt -I 'mysqlmanager:21yunwei' test.ping aliserver: True
5,CIDR(子网/IP)匹配,加参数-S
比如salt -S ‘115.29.249.0/24’ test.ping
[root@Master pillar]# salt -S '115.29.249.0/24' test.ping aliserver: True
6,组匹配,加参数-N ,这个非常重要。针对一组特定的对象执行批量操作,比如web集群、某一特定类型的系统打补丁等等
分组举例:
nodegroups: webnode: 'L@21yunwei-web1,21yunwei-web2'
root@saltmaster: salt -N "webnode" test.ping 21yunwei-web1: True 21yunwei-web2: True
在SaltStack系统中也可以提前给Minion定义组角色,但是需要提前知道Minion ID信息才能把它定义到某个组中。groups是我们在master配置文件中定义的组名称。
7,复合匹配,加参数-C。
salt -C ‘G@os:CentOS and I@mysqlmanager:21yunwei’ test.ping 我们要找操作系统是centos且pillar键值为mysqlmanager:21yunwei的服务器:
[root@Master pillar]# salt -C 'G@os:CentOS and I@mysqlmanager:21yunwei' test.ping aliserver: True
找了一个图,写的比较全,可以归纳一下:
使用哪种方式定位target,没有一个明确标准,什么合适用什么。想起邓小平老人家一句话,不管黑猫还是白猫,能抓到耗子就是好猫。
转载请注明:西数超哥博客www.ysidc.top» Saltstack远程执行学习笔记:管理对象target使用
https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top