溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Saltstack系列5:Saltstack之pillar組件

發(fā)布時(shí)間:2020-08-14 17:44:06 來源:ITPUB博客 閱讀:154 作者:張沖andy 欄目:建站服務(wù)器

pillar組件

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或組的名稱。

pillar的定義

主配置文件定義

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

SLS文件定義

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

校驗(yàn)pillar

刷新被控主機(jī)的pillar信息

salt '*' saltutil.refresh_pillar

查看上面定義的data.sls數(shù)據(jù)項(xiàng)

salt 'wx' pillar.data appname flow

pillar的使用

完成pillar配置后接下來介紹使用方法。我們可以在state、模板文件中引用,模板格式為:{{ pillar變量 }}

例:

{{ pillar['appname'] }}(一級(jí)字典)
{{ pillar['flow']['maxconn'] }}(二級(jí)字典) 或 {{ salt['pillar.get']('flow:maxconn',{}) }}
#Python API格式如下:
pillar['flow']['maxconn']
pillar.get('flow:appname',{})

操作目標(biāo)主機(jī)

salt -I 'appname:website' test.ping

結(jié)果:

wx:
  True


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

首先通過結(jié)合grains的id信息來區(qū)分不同的id的maxcpu的值,其次進(jìn)行引用觀察匹配的信息,將data.sls修改成如下形式:

Saltstack系列5:Saltstack之pillar組件
wx:
    ----------
    flow:
        ----------
        maxconn:
            3000
        maxcpu:
            8
        maxmem:
            6G
Saltstack系列5:Saltstack之pillar組件

參考資料:

根據(jù)劉天斯《Python自動(dòng)化運(yùn)維技術(shù)與最佳實(shí)踐》整理

向AI問一下細(xì)節(jié)

免責(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)容。

AI