二、Saltstack的數據系統

 
1、Grains
  grains是salt用來收集minion端底層系統信息的接口。好比,操做系統type、域名 、IP地址、內存及其餘相關係統屬性信息等。存儲在minion端,用於保存minion端數據信息。minion啓動時才加載grains信息,因此他時靜態的,Grains用於minion端信息查詢。
經過grains.ls查看grains所支持查詢的信息名稱:
#salt '*' grains.ls
經過grais.items查看全部grains數據
#salt '*' grains.iterms 
查詢指定grains名稱的信息。如查看操做系統類型
方法1.
[root@master salt]# salt '*' grains.item os
kubernetes-master:
----------
os:
CentOS
minion:
----------
os:
CentOS
kubernetes-minion:
----------
os:
CentOS
方法2. get方法
[root@master salt]# salt '*' grains.get os
kubernetes-minion:
CentOS
minion:
CentOS
grains在minion端配置
#vim /etc/salt/minion #指定minion的角色
grains:
  roles:
    - nginx
若是以爲該上面的配置文件也能夠直接在/etc/salt/目錄下建立一個名爲grains的文件。
echo 'roles: nginx'>/etc/salt/grains
 (效果與修改/etc/salt/minion的效果相同),角色名 必須是惟一的。修改完成後重啓minion端生效
在master端查看:
[root@kubernetes-master salt]# salt '*' grains.get roles
kubernetes-minion:
nginx
 
數據採集方式:
  minion啓動時手偶記,也可使用saltutil.sync_grains進行刷新
  經過grains來匹配minion
#salt -G roles:nginx cmd.run w
 
2、Pillar
  Pillar是salt用來給minion指定它想要的數據。存儲在master端,存放須要提供給minion的信息(動態)。Pillar的配置在master端,其默認是關閉的。
編輯/etc/salt/master配置文件打開pillar_roots的配置
#vim /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar 
 
應用場景:
  • 敏感信息:每一個minion只能訪問master分配給本身的pillar信息
  • 變量:差別化信息
  • 其餘任何數據
  • 能夠在target及state中使用
數據採集方式:
  在master端定義,指定給對應的Minion,使用saltutil.refresh_pillar刷新
例:
#cd /srv/pillar
# cat apache.sls
{% if grains['os'] == 'CentOS' %}
apache: https
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
# cat top.sls
base:
'*':
- apache 
 要使用pillar信息,必須刷新pillar
#salt '*' saltutil.refresh_pillar
kubernetes-minion:
True
kubernetes-master:
True
 獲取定義好的pillar信息。
# salt '*' pillar.items
相關文章
相關標籤/搜索