SaltStack实战之远程执行-Targeting
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack实战之远程执行-Targeting相关的知识,希望对你有一定的参考价值。
SaltStack实战之远程执行-Targeting
SaltStack远程执行组成部分:
目标(Targeting)
模块(Module)
返回(Returnners)
1. minion id配置
minion id可以定义在minion配置文件中,如果未定义,默认使用的是hostname。minion id是不能变动的,因为minion与master认证公钥是以minion id命名文件名的。 [[email protected] pillar]# vim /etc/salt/minion
id: salt-master111
Minion id命名越规范越详细,在使用minion id匹配过程中就越准确。
2. Targeting分类
和Minion ID有关,需要使用Minion ID:
Globbing(通配符)
regex(正则表达式)
List(列表)
通配符匹配
[[email protected] pillar]# salt "10.1.0.*" test.ping
10.1.0.112:
True
10.1.0.95:
True
10.1.0.50:
True
10.1.0.96:
True
[[email protected] pillar]# salt "10.1.0.[!1]*" test.ping
10.1.0.95:
True
10.1.0.50:
True
10.1.0.96:
True
正则匹配
[[email protected] pillar]# salt -E "10.1.0.(95|96)" test.ping
10.1.0.95:
True
10.1.0.96:
True
列表匹配
[[email protected] pillar]# salt -L "10.1.0.95,10.1.0.96" test.ping
10.1.0.95:
True
10.1.0.96:
True
和Minion ID无关,不涉及到Minion ID:
子网/IP地址
Grains
Pillar
Compound matchers(复合匹配)
Node groups(节点组)
Batching execution(批处理执行)
IP地址匹配
[[email protected] pillar]# salt -S "10.1.0.50" test.ping
10.1.0.50:
True
Grains匹配
[[email protected] pillar]# salt -G "os:CentOS" test.ping
10.1.0.95:
True
10.1.0.112:
True
10.1.0.50:
True
salt-master111:
True
10.1.0.96:
True
Pillar匹配
[[email protected] salt]# salt -I "Zabbix_Server:10.1.0.111" test.ping
10.1.0.112:
True
复合匹配
Letter | Match Type | 例如: | Alt Delimiter? |
---|---|---|---|
G | Grains glob | [email protected]:Ubuntu | Yes |
E | PCRE Minion ID | [email protected]\d+\.(dev|qa|prod)\.loc | No |
P | Grains PCRE | [email protected]:(RedHat|Fedora|CentOS) | Yes |
L | List of minions | [email protected],minion3.domain.com or bl*.domain.com | No |
I | Pillar glob | [email protected]:foobar | Yes |
J | Pillar PCRE | [email protected]:^(foo|bar)$ | Yes |
S | Subnet/IP address | [email protected]/24 or [email protected] | No |
R | Range cluster | [email protected]%foo.bar | No |
Matchers can be joined using boolean and
, or,
and not
operators.
[root@salt-master111 salt]# salt -C "[email protected]:CentOS and [email protected]" test.ping
10.1.0.112:
True
[root@salt-master111 salt]#
Nodgroups
nodegroups master
配置文件参数用于定义节点组。这里有一个通过/etc/salt/master
配置文件配置节点组的例子:
#nodegroups:
# group1: ‘[email protected],bar.domain.com,baz.domain.com or bl*.domain.com‘
# group2: ‘[email protected]:Debian and foo.domain.com‘
# group3: ‘[email protected]:Debian and [email protected]‘
# group4:
# - ‘[email protected]:bar‘
# - ‘or‘
# - ‘[email protected]:baz‘
nodegroups:
test112: ‘10.1.0.112‘
[root@salt-master111 ~]# salt -N ‘test112‘ test.ping
10.1.0.112:
True
[root@salt-master111 ~]#
批处理执行
[root@salt-master111 salt]# salt ‘*‘ -b 2 test.ping
在top.sls中,使用正则和grains匹配写法:
"10.1.0.(95|96)":
- match: pcre
- apache
"os:CentOS":
- match: grain
- apache
其它targeting详情:http://docs.saltstack.cn/topics/targeting/index.html
本文出自 “ygqygq2” 博客,请务必保留此出处http://ygqygq2.blog.51cto.com/1009869/1933470
以上是关于SaltStack实战之远程执行-Targeting的主要内容,如果未能解决你的问题,请参考以下文章