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]#