mine是salt定義數據的第三種方式,是在minion配置中定義的,而後數據發送到master存儲。若是從minion獲取的數據須要在其餘minion中使用,就須要使用到mine。
app
在minion.d中定義mine.conf文件,內容以下ide
同步文件spa
salt-cp '*' mine.conf /opt/app/salt/etc/minion.d/rest
重啓minionblog
salt '*' cmd.run '/opt/app/salt/admin/salt-minion restart'ip
執行以下命令,結果如圖get
salt '*' mine.get '*' network.ip_addrscmd
由於全部數據是共享的,兩個minion獲取的數據是同樣的。
同步
總結it
說了這麼多,那究竟在什麼狀況下該使用哪一種數據定義方式呢?前面的文章也談了區別,如今在這裏總結下。
區別:
grains和mine是從minion端收集的,pillar是從master端收集的。
grains數據是靜態的,mine和pillar的數據是動態的。
grains數據是每一個minion的底層系統數據,不共享的;mine數據是自定義的,是共享的;
pillar數據是master的數據,應用於每一個minion。
如今有三個需求:
獲取master的廣播地址並應用於minion---->採用pillar
獲取和master同網段的minion的ip---->採用grains(結合第一個需求)
獲取A的信息並在其餘minion中使用---->使用mine