<h2>1. Grains</h2>Grains可以認(rèn)為是描述minion本身固有屬性的靜態(tài)數(shù)據(jù)莲镣。例如福稳,minion服務(wù)器的操作系統(tǒng)版本、內(nèi)存的大小瑞侮、網(wǎng)卡的MAC地址等
列出主機所有的Grains數(shù)據(jù)命令:
# salt "minion-one" grains.items
查詢系統(tǒng)版本:
# salt 'minion-one' grains.item os
我們可以用Grains定位主機:利用-G或--grain對系統(tǒng)為CentOS的機器定位
# salt -G 'os:CentOS' test.ping
定位系統(tǒng)版本為7.X的機器
# salt -G 'osrelease:7.*' test.ping
凡是之前用grains.items列出的所有數(shù)據(jù)都可以用來匹配主機的圆。并且,Grains還支持自定義半火,可以滿足各種不同的需求越妈。自定義方法很多,以下是一個簡單的自定義例子
# salt 'minion-one' grains.setval cpu_num 8
查看自定義后的grains數(shù)據(jù)
# salt 'minion-one' grains.item cpu_num
這種方法設(shè)置的Grains已經(jīng)被寫入到minion機器的配置文件里了钮糖,即使重啟salt-minion服務(wù)梅掠,Grain數(shù)據(jù)也將存在酌住,可以用grains.delval
命令進行刪除,或者在minion機器上找到數(shù)據(jù)定義刪除配置文件并重啟minion阎抒。
自定義Grains數(shù)據(jù)存儲在minion的位置如下:
# cat /etc/salt/grains
<h2>2. Pillars</h2>Pillars數(shù)據(jù)與Grains相似酪我,不同點在于Pillars可以定義為更加動態(tài)的形式,并且它是存儲在master端的且叁,常用于設(shè)置敏感數(shù)據(jù)都哭。
列出主機所有的Pillars數(shù)據(jù)命令:
# salt "minion-one" pillar.items
上述命令的執(zhí)行結(jié)果有可能為空,因為master端默認(rèn)關(guān)閉了Pillars逞带,使用vi etc/salt/master
把pillar_opts: False注釋刪除并改為True欺矫,再執(zhí)行上述命令就可以看到主機的Pillars數(shù)據(jù)了,Pillars還是默認(rèn)關(guān)閉為好展氓,這里只是查看一下穆趴,查看完記得關(guān)閉。
Pillars同樣支持自定義數(shù)據(jù)遇汞,使用Pillars匹配機器可以用-I命令毡代。
<h2>3. Grains與Pillars相同點和不同點</h2><h5>相同點:</h5>都是以key value形式存儲的數(shù)據(jù)庫,都為python字典
<h5>不同點:</h5>
ps: Grains的刷新命令僅用于人為自定義的數(shù)據(jù)刷新有效勺疼,要重新收集機器本身Grains數(shù)據(jù)必須重啟minion教寂。