您好,登錄后才能下訂單哦!
pillar也是Saltstack最重要的組件之一,其作用是定義與被控主機(jī)相關(guān)的任何數(shù)據(jù),定義好的數(shù)據(jù)可以被其他組件使用,如模板、state、API等。
在pillar中定義的數(shù)據(jù)與不同業(yè)務(wù)特性的被控主機(jī)相關(guān)聯(lián),這樣不同被控主機(jī)只能看到自己匹配的數(shù)據(jù),因此pillar安全性很高,適用于一些比較敏感的數(shù)據(jù),這也是區(qū)別于grains最關(guān)鍵的一點(diǎn),如定義不同業(yè)務(wù)組主機(jī)的用戶id、組id、讀寫權(quán)限、程序包等信息,定義的規(guī)范是采用Python字典形式,即鍵/值,最上層的鍵一般為主機(jī)的id或組的名稱。
Saltstack默認(rèn)將主控端配置文件中的所有數(shù)據(jù)都定義到pillar中,而對(duì)所有被控主機(jī)開放,可通過修改/etc/salt/master配置來定義是否開啟或關(guān)閉這項(xiàng)功能。
【/etc/salt/master】
pillar_opts: True/False
修改后執(zhí)行命令來觀察效果:
salt '*' pillar.data
pillar支持在sls文件中定義數(shù)據(jù),格式須符合YAML規(guī)范,與Saltstack的state組件十分相似,新人容易將兩者混淆,兩者文件的配置格式、入口文件top.sls都是一致的。
定義pillar的主目錄
【/etc/salt/master】
pillar_roots: base: - /srv/pillar
同時(shí)創(chuàng)建pillar目錄,執(zhí)行命令:
install -d /srv/pillar
定義入口文件top.sls
入口文件的作用一般是定義pillar的數(shù)據(jù)覆蓋被控主機(jī)的有效范圍,'*'代表任意主機(jī),其中包括了一個(gè)data.sls文件具體內(nèi)容如下:
【/srv/pillar/top.sls】
base: '*': - data #指代的是data.sls文件
【/srv/pillar/data.sls】
appname: website flow: maxconn: 3000 maxmem: 6G
刷新被控主機(jī)的pillar信息
salt '*' saltutil.refresh_pillar
查看上面定義的data.sls數(shù)據(jù)項(xiàng)
salt 'wx' pillar.data appname flow
完成pillar配置后接下來介紹使用方法。我們可以在state、模板文件中引用,模板格式為:{{ pillar變量 }}
例:
{{ pillar['appname'] }}(一級(jí)字典) {{ pillar['flow']['maxconn'] }}(二級(jí)字典) 或 {{ salt['pillar.get']('flow:maxconn',{}) }} #Python API格式如下: pillar['flow']['maxconn'] pillar.get('flow:appname',{})
salt -I 'appname:website' test.ping
結(jié)果:
wx: True
首先通過結(jié)合grains的id信息來區(qū)分不同的id的maxcpu的值,其次進(jìn)行引用觀察匹配的信息,將data.sls修改成如下形式:
wx: ---------- flow: ---------- maxconn: 3000 maxcpu: 8 maxmem: 6G
參考資料:
根據(jù)劉天斯《Python自動(dòng)化運(yùn)維技術(shù)與最佳實(shí)踐》整理
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。