pillar學習

    salt提供了一個接口,用於在master端定義數據,而後能夠在minion中使用。這個接口就是pillar,獲取的數據就是pillar數據。pillar的數據定義方式跟state sls文件方式相似,默認都是使用jinja_yaml格式。pillar與grains最大的不一樣點就是pillar是動態加載的,數據是隨時變化的,它能根據不一樣的信息顯示不一樣的數據,特定的minion只能看到特定的數據,所以能用於存儲敏感數據,好比密碼,這個數據定義方式使用的最多,操做簡單。app

    首先定義下pillar的根路徑和top.sls文件,以下圖。
ide

wKioL1OIIXCgRuNJAABUa4s_QmU928.jpg

wKiom1OIIZ2Qz1HDAAAkkIopWf4613.jpg


top.sls在/opt/app/salt/pillar目錄下。函數

wKiom1OIJYHgZXwcAABpbSAzeGY281.jpg

wKioL1OIJVXgdqfXAACZNxPQ9Ao996.jpg

wKiom1OIJYGBP_34AACGJpwz-kg653.jpg


結果顯示,數據定義了,直接獲取就好了,這個操做很簡單,基本不耗資源。spa

很簡單,是嗎?好,來點需求,我想獲取master端的時間咋辦!!!blog

很簡單的,在pillar裏能夠調用執行模塊cmd.run來獲取,如圖。接口

wKioL1OIJvmBj6WrAAENZWn3bh8868.jpg


獲取到了時間,可是我想要的格式是YYYYmmddHHMMSS,怎麼辦啊!資源

要知道jinja_yaml有時候不夠靈活,能夠換種方式,採用其餘的renderers。這裏採用py方式。get

wKiom1OIKOCjPvqrAAGRkJ7GD4U308.jpg

噹噹噹,是否是很靈活啊!只要你對salt夠熟悉,你想作什麼就作什麼,固然不能幹愚蠢的事情啊!!cmd

這裏說下,使用py renderer時,函數名必須是run,至於爲何,源碼裏有說明的。源碼


待續。。。

相關文章
相關標籤/搜索