salt提供了一個接口,用於在master端定義數據,而後能夠在minion中使用。這個接口就是pillar,獲取的數據就是pillar數據。pillar的數據定義方式跟state sls文件方式相似,默認都是使用jinja_yaml格式。pillar與grains最大的不一樣點就是pillar是動態加載的,數據是隨時變化的,它能根據不一樣的信息顯示不一樣的數據,特定的minion只能看到特定的數據,所以能用於存儲敏感數據,好比密碼,這個數據定義方式使用的最多,操做簡單。app
首先定義下pillar的根路徑和top.sls文件,以下圖。
ide
top.sls在/opt/app/salt/pillar目錄下。函數
結果顯示,數據定義了,直接獲取就好了,這個操做很簡單,基本不耗資源。spa
很簡單,是嗎?好,來點需求,我想獲取master端的時間咋辦!!!blog
很簡單的,在pillar裏能夠調用執行模塊cmd.run來獲取,如圖。接口
獲取到了時間,可是我想要的格式是YYYYmmddHHMMSS,怎麼辦啊!資源
要知道jinja_yaml有時候不夠靈活,能夠換種方式,採用其餘的renderers。這裏採用py方式。get
噹噹噹,是否是很靈活啊!只要你對salt夠熟悉,你想作什麼就作什麼,固然不能幹愚蠢的事情啊!!cmd
這裏說下,使用py renderer時,函數名必須是run,至於爲何,源碼裏有說明的。源碼
待續。。。