1、salt grains
常用命令
salt saltminion grains.items salt saltminion grains.items sanitize=True
(sanitize=True清理,添加该参数,将DOMAINNAME替换为主机名)
salt saltminion02 grains.item roles #获取指定的值
salt saltminion02 saltutil.sync_grains # 同步grains的值(用于文件添加的grains)
salt saltminion sys.list_functions grains # 列出grains 或者其他模块支持的方法
salt saltminion sys.list_functions fc7 # 列出自定义的模块
salt saltminion sys.doc grains # 查看grains的使用文档
salt saltminion sys.doc hosts.add_host # 查看某个模块的用法
grains设置(grains.get 使用)
添加grains文件,(/etc/salt/minion.d/中的conf文件,需修改minion配置文件,并同步值)
sls文件,grains模块可以设置,(/etc/salt/grains,自动同步,可直接取用)
*自定义grains优先级:*
minion配置文件定义 > master端自定义grains脚本 > master端grains模块定义。
salt '*' grains.setval key "{'sub-key': 'val', 'sub-key2': 'val2'}" # 设置key 值
salt '*' grains.setvals "{'key1': 'val13', 'key2': 'val23'}"
salt '*' grains.get key:sub-key
salt '*' grains.set 'apps:myApp4' '{port0: 2300 ,port5: 2305}'
salt '*' grains.set 'apps:myApp2' '{port0: 2300}'
grains在sls文件中调用,判断
查看baseuser值
salt '*' grains.get baseuser
saltminion02:
- logstash
- redis
sls文件实例
cat testfor.sls
{% for user in grains['baseuser'] %}
{{ user }}:
user.present:
- home: /home/{{ user }}
- shell: /bin/bash
{% endfor %}
[root@salttest judge]# cat testlist.sls
{% set pythonpath = salt['grains.get']('pythonpath') %}
addfile:
file.managed:
- name: /tmp/test.txt
- contents:
- This is line 1
- This is line 2
- {{ pythonpath }}
[root@salttest judge]#