一、Grains工具:
Saltstack里的Grains功能,讲的是minion端的静态变量,在master端通过Grains可以获得minion对应的变量值。
打开server2的grains工具包
[ root@server2 ~ ] # cd / etc/ salt/
[ root@server2 salt] # vim minion
grains:
roles:
- httpd
[ root@server2 salt] # systemctl restart salt- minion
[ root@server1 salt] # salt server2 grains. item roles ##可以获得对应的变量值
[ root@server1 salt] # mkdir / srv/ salt/ _grains
[ root@server1 salt] # cd / srv/ salt/ _grains
[ root@server1 _grains] # vim my_grains. py
#! / usr/ bin/ env python
def my_grains ( ) :
grains = { }
grains[ 'roles' ] = 'nginx'
grains[ 'hello' ] = 'world'
return grains
[ root@server3 system] # yum install - y tree
[ root@server3 system] # cd / var / cache
[ root@server3 cache] # cd salt/
[ root@server3 salt] # tree minion/
`` `
` `` javascript
[ root@server1 _grains] # salt server3 saltutil. sync_grains
[ root@server1 _grains] # salt server3 grains. item roles
[ root@server1 _grains] # salt server3 grains. item hello
[ root@server1 salt] # ls
_grains httpd nginx top. sls users
[ root@server1 salt] # vim top. sls
base:
'roles:httpd' :
- match: grain
- httpd. service
'roles:nginx' :
- match: grain
- nginx. service
[ root@server1 salt] # salt server[ 2 , 3 ] state. highstate
[ root@server1 pillar] # salt - G 'roles:httpd' test. ping
[ root@server1 pillar] # salt - G 'roles:nginx' test. ping
二、pillar工具的配置
[ root@server1 salt] # vim / etc/ salt/ master
843 pillar_roots:
844 base:
845 - / srv/ pillar
[ root@server1 salt] # systemctl restart salt- master
[ root@server1 salt] # mkdir / srv/ pillar
[ root@server1 salt] # systemctl restart salt- master
[ root@server1 salt] # cd / srv/ pillar
[ root@server1 pillar] # vim web. sls
[ root@server1 pillar] # cat web. sls
{ % if grains[ 'fqdn' ] == 'server2' % } 如果主机名字等于server2
webserver: httpd
{ % elif grains[ 'fqdn' ] == 'server3' % } 如果主机名字等于server3
webserver: nginx
{ % endif % }
[ root@server1 pillar] # vim top. sls
[ root@server1 pillar] # cat top. sls
base:
'*' :
- web
[ root@server1 pillar] # salt '*' pillar. items
[ root@server1 pillar] # salt '*' saltutil. refresh_pillar
[ root@server1 pillar] # salt - I 'webserver:nginx' test. ping
[ root@server1 pillar] # salt - I 'webserver:httpd' test. ping