salt----pillar組件

salt之pillar組件

pillar也是salt最重要的組件之一,其作用是定義與被控主機相關(guān)的任何數(shù)據(jù),定義好的數(shù)據(jù)可以被其他組件使用,如模板、state、API等。在pillar中定義的數(shù)據(jù)與不同業(yè)務(wù)特征的被控主機相關(guān)聯(lián),這樣不同被控主機只能看到自己匹配的數(shù)據(jù),因此pillar安全性很高,適用于一些比較敏感的數(shù)據(jù),這也是區(qū)別于grains最關(guān)鍵的一點,如定義不同業(yè)務(wù)組主機的用戶id、組id、讀寫權(quán)限、程序包等信息,定義的規(guī)范是采用Python字典形式,即鍵/值,最上層的鍵一般為主機的id或組名稱。

pillar的定義:

1、主配置文件定義

salt默認將主控端配置文件中的所有數(shù)據(jù)都定義到pillar中,而且對所有被控主機開放,可通過修改/etc/salt/master配置中的pillar_opts: True或False來定義是否開戶或禁用這項功能,修改后執(zhí)行salt '*' pillar.data來觀察效果。

2、SLS文件定義

pillar支持在slsy文件中定義數(shù)據(jù),格式須符合YAML規(guī)范,與salt和state組件十分相似,兩者文件的配置格式、入口文件top.sls都是一致的。

(1)定義pillar的主目錄

修改主配置文件/etc/salt/master的pillar_roots參數(shù),定義pillar的主目錄

同時創(chuàng)建pillar目錄,執(zhí)行命令: install -d /srv/pillar

(2)定義入口文件top.sls

入口文件的作用一般是定義pillar的數(shù)據(jù)覆蓋被控主機的有效域范圍,"*" 代表任意主機,其中包括了一個data.sls文件,

/srv/pillar/top.sls

base:
  '*':
    - data
/srv/pillar/data.sls

appname: website

flow:

  maxconn: 30000

  maxmem: 6G

(3)校驗pillar

通過 salt 'myhost' pillar.data appname flow 命令可以看到多出了上面定義的 data.sls數(shù)據(jù)項。如果結(jié)果不符合預(yù)期,可以嘗試刷新被控機pillar數(shù)據(jù),

運行 salt 'myhost' saltutil.refresh_pillar 即可刷新

3、pillar的使用

完成pillar配置后,接下來我們可以在state、模板文件中引用,模板格式為 "{{ pillar變量 }}" ,例如:

{{ pillar['appname'] }} (一級字典)

{{ pillar['flow']['maxconn'] }} (二級字典) 或 {{ salt['pillar.get']('flow: maxconn'),{} }}

Python API格式如下:

pillar['flow']['maxconn']

pillar.get('flow:appname',{})

結(jié)合grains處理數(shù)據(jù)的差異性----示例:

3.1 創(chuàng)建pillar目錄和top.sls文件

# mkdir /srv/pillar 
# vi /srv/pillar/top.sls
base:   
 '*':
   - ip

3.2 先通過pillar獲取minion主機IP

vi /srv/pillar/ip.sls

ip: {{ grains['ipv4'][1] }}

寫完后,執(zhí)行sls命令,可以看到已經(jīng)獲取到IP

salt '*' pillar.item ip

host2:

ip:
192.168.18.213
host1:


ip:
192.168.18.212

既然grains與pillar類似,就說下區(qū)別:

1.grains是minion每次加載時獲取本地系統(tǒng)信息數(shù)據(jù),是靜態(tài)的,固定的,而pillar是動態(tài)加載數(shù)據(jù),隨時變化的,比grains更靈活。

2.grains數(shù)據(jù)存儲在minion本地,pillar存儲在master

jinja2官網(wǎng)語法介紹: http://jinja.pocoo.org/docs/dev/templates/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡述 saltstacksaltstack是一個新的基礎(chǔ)平臺管理工具,只需要花費數(shù)分鐘即可運行起來,可以支撐管理上...
    君惜丶閱讀 5,160評論 0 2
  • 學(xué)習(xí)地址[http://tech.mainwise.cn/?p=438] 更新于 3.25 23:16 salt簡...
    J書越來越垃圾了閱讀 31,191評論 9 36
  • 十三中,對于云空來講,是一個陌生的存在,不知道她的歷史,不知道她的起源,不知道她的一切一切,只是知道,這就是即將承...
    ecbbebb97102閱讀 199評論 0 2
  • 昨晚去看了美國的電影《一條狗的使命》,從題目就可以看出來這是一部以狗為主線講述故事的作品。以一條狗的視野去描述了這...
    瓷瓦閱讀 490評論 0 1
  • 什么是模塊? 我們先簡單描述下模塊的特點,模塊是一個獨立的完成某些功能的單位,它應(yīng)該具有抽象性、封裝性(接口),例...
    炙熱地瓜閱讀 647評論 0 1

友情鏈接更多精彩內(nèi)容