天天看點

salt grains

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

繼續閱讀