您的位置:首页 > 其它

saltstack模式匹配

2017-06-03 23:44 369 查看
salt匹配规则有多种,对应各种不同的场景,相关参数如下图所示。现总结如下:



1、正则匹配
[root@salt-master ~]# salt -E 'salt-minion(01|02).contoso.com' test.ping
salt-minion01.contoso.com:
True
salt-minion02.contoso.com:
True
[root@salt-master ~]# salt -E 'salt-minion0[1-2].contoso.com' test.ping
salt-minion02.contoso.com:
True
salt-minion01.contoso.com:
True


2、列表匹配
[root@salt-master ~]# salt -L 'salt-minion01.contoso.com,salt-minion02.contoso.com' test.ping
salt-minion01.contoso.com:
True
salt-minion02.contoso.com:
True
3、Grains匹配
saltstack Grains项可以通过如下命令获取:
root@salt-master ~]# salt 'salt-minion01.contoso.com' grains.items
salt-minion01.contoso.com:
----------
SSDs:
biosreleasedate:
07/02/2015
biosversion:
6.00
cpu_flags:
- fpu
- vme
- mtrr
- sse
- sse2
- ssse3
....
cpu_model:
Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
cpuarch:
x86_64
domain:
contoso.com
fqdn:
salt-minion01.contoso.com
fqdn_ip4:
- 192.168.49.101
fqdn_ip6:
gpus:
|_
----------
model:
SVGA II Adapter
vendor:
unknown
host:
salt-minion01
hwaddr_interfaces:
----------
eth0:
00:0c:29:f3:43:86
lo:
00:00:00:00:00:00
id:
salt-minion01.contoso.com
init:
upstart
ip4_interfaces:
----------
eth0:
- 192.168.49.101
lo:
- 127.0.0.1
ip6_interfaces:
----------
eth0:
- fe80::20c:29ff:fef3:4386
lo:
- ::1
ip_interfaces:
----------
eth0:
- 192.168.49.101
- fe80::20c:29ff:fef3:4386
lo:
- 127.0.0.1
- ::1
ipv4:
- 127.0.0.1
- 192.168.49.101
ipv6:
- ::1
- fe80::20c:29ff:fef3:4386
kernel:
Linux
kernelrelease:
2.6.32-431.el6.x86_64
locale_info:
----------
defaultencoding:
UTF8
defaultlanguage:
en_US
detectedencoding:
UTF-8
localhost:
salt-minion01.contoso.com
lsb_distrib_codename:
Final
lsb_distrib_id:
CentOS
lsb_distrib_release:
6.5
machine_id:
ff172a920d48e1f109f755820000000a
manufacturer:
VMware, Inc.
master:
salt-master.contoso.com
mdadm:
mem_total:
980
nodename:
salt-minion01.contoso.com
num_cpus:
1
num_gpus:
1
os:
CentOS
os_family:
RedHat
osarch:
x86_64
oscodename:
Final
osfinger:
CentOS-6
osfullname:
CentOS
osmajorrelease:
6
osrelease:
6.5
osrelease_info:
- 6
- 5
path:
/sbin:/usr/sbin:/bin:/usr/bin
productname:
VMware Virtual Platform
ps:
ps -efH
pythonexecutable:
/usr/bin/python2.6
pythonpath:
- /usr/bin
- /usr/lib64/python26.zip
- /usr/lib64/python2.6
- /usr/lib64/python2.6/plat-linux2
- /usr/lib64/python2.6/lib-tk
- /usr/lib64/python2.6/lib-old
- /usr/lib64/python2.6/lib-dynload
- /usr/lib64/python2.6/site-packages
- /usr/lib64/python2.6/site-packages/gtk-2.0
- /usr/lib/python2.6/site-packages
- /usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info
pythonversion:
- 2
- 6
- 6
- final
- 0
saltpath:
/usr/lib/python2.6/site-packages/salt
saltversion:
2015.5.10
saltversioninfo:
- 2015
- 5
- 10
- 0
selinux:
----------
enabled:
False
enforced:
Disabled
serialnumber:
VMware-56 4d c8 bc 18 86 5f 20-cb 2f 72 e2 bb f3 43 86
server_id:
175207945
shell:
/bin/sh
virtual:
VMware
zmqversion:
3.2.5
当然,也可以就某一个Grains项进行查询,如下所示:
[root@salt-master ~]# salt 'salt-minion01.contoso.com' grains.item os
salt-minion01.contoso.com:
----------
os:
CentOS
[root@salt-master ~]# salt 'salt-minion01.contoso.com' grains.item kernelrelease
salt-minion01.contoso.com:
----------
kernelrelease:
2.6.32-431.el6.x86_64
[root@salt-master ~]# salt 'salt-minion01.contoso.com' grains.item host
salt-minion01.contoso.com:
----------
host:
salt-minion01
获取到上述Grains项之后,就可以有目的的进行匹配了,示例如下:
[root@salt-master ~]# salt -G 'os:CentOS' test.ping
salt-minion02.contoso.com:
True
salt-minion01.contoso.com:
True
[root@salt-master ~]# salt -G 'kernelrelease:2.6.32-431.el6.x86_64' test.ping
salt-minion02.contoso.com:
True
salt-minion01.contoso.com:
True
4、组匹配
首先,编辑master的配置文件,并添加如下内容:
vim /etc/salt/master
nodegroups:
testgroup1: 'L@salt-minion01.contoso.com,salt-minion02.contoso.com'
testgroup2: 'G@os:CentOS and G@domain:contoso.com'
testgroup3: 'G@os:CentOS and E@salt-minion01.*'
然后就可以根据master配置中定义中的组进行匹配,示例如下:
[root@salt-master ~]# salt -N testgroup1 test.ping
salt-minion01.contoso.com:
True
salt-minion02.contoso.com:
True
[root@salt-master ~]# salt -N testgroup2 test.ping
salt-minion01.contoso.com:
True
salt-minion02.contoso.com:
True
[root@salt-master ~]# salt -N testgroup3 test.ping
salt-minion01.contoso.com:
True
5、复合匹配
[root@salt-master ~]# salt -C 'G@os:CentOS and E@salt-minion02*' test.ping
salt-minion02.contoso.com:
True
salt-minion01.contoso.com:
True
[root@salt-master ~]# salt -C 'G@host:salt-minion01 or L@salt-minion02.contoso.com' test.pingsalt-minion01.contoso.com:
True
salt-minion02.contoso.com:
True
[root@salt-master ~]# salt -C 'G@host:salt-minion01 and G@domain:contoso.com' test.ping
salt-minion01.contoso.com:
True
6、CIDR匹配
[root@salt-master ~]# salt -S '192.168.49.0/24' test.ping
salt-minion01.contoso.com:
True
salt-minion02.contoso.com:
True
[root@salt-master ~]# salt -S '192.168.49.101' test.ping
salt-minion01.contoso.com:
True
7、Pillar匹配(暂时省却,后续添加)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则 Pillar 匹配规则