minion基本信息的管理
salt '*' grains.ls 查看grains分类 salt '*' grains.items 查看grains所有信息 salt '*' grains.item osrelease 查看grains某个信息
Grains 信息可以在 minion 配置文件 /etc/salt/minion 中静态定义,自定义的 grains 可以将 Core grains 定义的信息覆盖,示例如下:
grains: roles: - webserver - memcache deployment: datacenter4 cabinet: 13 cab_u: 14-15
如果不希望将配置信息定义在 /etc/salt/minion 可以将配置信息写入 /etc/salt/grains,示例如下:
roles: - webserver - memcache deployment: datacenter4 cabinet: 13 cab_u: 14-15
重启 salt-minion 服务后,在 salt 'host' grains.items 可以查看自定义的信息是否生效,下面有几种自定义grains的方式,如果这些定义方式同时存在,则遵守如下由低到高的优先级:
Each successive evaluation overrides the previous ones, so any grains defined in /etc/salt/grains that have the
same name as a core grain will override that core grain. Similarly, /etc/salt/minion overrides both core grains
and grains set in /etc/salt/grains, and custom grain modules will override any grains of the same name
salt '*' grains.item osrelease minoin1: osrelease: 6.2
在用salt进行管理客户端的时候或者写state的时候都可以引用grains的变量
文档:http://docs.saltstack.com/topics/targeting/grains.html
salt敏感信息的管理,只有匹配到的节点才能看到和使用
salt '*' pillar.items
文档:http://docs.saltstack.com/topics/tutorials/pillar.html
编辑 /etc/salt/master 文件
pillar_roots: base: - /srv/pillar
mkdir -p /srv/pillar
默认:pillar数据定义文件存储路径:/srv/pillar
入口文件:/srv/pillar/top.sls
base: "targeting": - pillar #名字为pillar.sls的文件来存放对匹配到的minion的变量
$pillar.sls
#基本: $key: $value #对应state引用方式: {{ pillar['$key'] }} #复杂: users: thatch: 1000 shouse: 1001 utahdave: 1002 redbeard: 1003 #state引用方式: #{% for user, uid in pillar.get('users', {}).items() %} # {{user}}: # user.present: # - uid: {{uid}} #{% endfor %}
查看节点的pillar数据:
salt 'client2' pillar.data
同步pillar:
salt '*' saltutil.refresh_pillar
附:这里我们可以看到,pallar中也可以使用jinja
文档:http://docs.saltstack.com/topics/tutorials/pillar.html