Saltstack的Grains和Pillar管理工具
作者:互联网
接上个实验的实验环境
- grains工具(静态)
- grains是minion端的静态变量,在master端通过grains可以获得minion对应的变量值。静态变量一定要同步
有三种方式 - 第一种方式
- 在server3上打开grains工具包:
cd /etc/salt/
vim minion
grains:
roles:
- apache
- 修改文件后要重启:
systemctl restart salt-minion
- 在server2上测试,可以获得相应的变量值:
salt server3 grains.item roles
salt server3 grains.item os
- 第二种方式
- 在server4上的/etc/salt/创建文件:
vim grains
roles: nginx
- 在server2上刷新:
salt server4 saltuil.sync_grains
- 可以获得相应的变量:
salt server4 grains.item roles
salt '*' grains.item roles
- 第三种方式
- 在serever1的/srv/salt下创建目录:
mkdir _grains
- 进入到该目录后,创建python模块脚本:
my_grains.py
#!/usr/bin/env python
def my_grains():
grains = {'ll': 'aa','hello': 'nihao'}
grains['salt'] = 'stack'
return grains
- 刷新:
salt '*' saltutil.sync_grains
- 测试:
salt '*' grains.item hello
salt '*' grains.item salt
salt -G 'roles:apache' test.ping
- 编辑top.sls文件:
base:
'roles:apache':
- match: grain
- apache.service
'roles:nginx':
- match: grain
- nginx.service
- 测试:
salt '*' state.highstate
salt server3 grains.item fqdn
- pillar工具(动态)
pillar只定义在master端,不会定义到minion端;一般用于敏感数据 - 在master端将pillar工具打开:
vim /etc/salt/master
pillar_roots:
base:
- /srv/pillar
修改完配置文件后重启:systemctl restart salt-master
- 在 /srv/创建目录:
mkdir pillar
- 进入到创建的目录,创建web目录,在web目录中创建文件:
vim vars.sls
{% if grains['fqdn'] == 'server2' %}
webserver: httpd
state: master
{% elif grains['fqdn'] == 'server3' %}
webserver: nginx
state: backup
{% endif %}
- 在pillar目录下,创建top.sls文件
base:
'*':
- web.vars
- 刷新:
salt '*' saltutil.refresh_pillar
- 测试:
salt -I 'state:master' test.ping
salt -I 'state:backup' test.ping
标签:Grains,grains,Pillar,item,master,roles,Saltstack,salt,pillar 来源: https://blog.csdn.net/qq_42311209/article/details/91803384