Saltstack系列5:Saltstack之pillar元件
pillar元件
pillar也是Saltstack最重要的元件之一,其作用是定義與被控主機相關的任何資料,定義好的資料可以被其他元件使用,如模板、state、API等。
在pillar中定義的資料與不同業務特性的被控主機相關聯,這樣不同被控主機只能看到自己匹配的資料,因此pillar安全性很高,適用於一些比較敏感的資料,這也是區別於grains最關鍵的一點,如定義不同業務組主機的使用者id、組id、讀寫許可權、程式包等資訊,定義的規範是採用Python字典形式,即鍵/值,最上層的鍵一般為主機的id或組的名稱。
pillar的定義
主配置檔案定義
Saltstack預設將主控端配置檔案中的所有資料都定義到pillar中,而對所有被控主機開放,可透過修改/etc/salt/master配置來定義是否開啟或關閉這項功能。
【/etc/salt/master】
pillar_opts: True/False
修改後執行命令來觀察效果:
salt '*' pillar.data
SLS檔案定義
pillar支援在sls檔案中定義資料,格式須符合YAML規範,與Saltstack的state元件十分相似,新人容易將兩者混淆,兩者檔案的配置格式、入口檔案top.sls都是一致的。
定義pillar的主目錄
【/etc/salt/master】
pillar_roots: base: - /srv/pillar
同時建立pillar目錄,執行命令:
install -d /srv/pillar
定義入口檔案top.sls
入口檔案的作用一般是定義pillar的資料覆蓋被控主機的有效範圍,'*'代表任意主機,其中包括了一個data.sls檔案具體內容如下:
【/srv/pillar/top.sls】
base: '*': - data #指代的是data.sls檔案
【/srv/pillar/data.sls】
appname: website flow: maxconn: 3000 maxmem: 6G
校驗pillar
重新整理被控主機的pillar資訊
salt '*' saltutil.refresh_pillar
檢視上面定義的data.sls資料項
salt 'wx' pillar.data appname flow
pillar的使用
完成pillar配置後接下來介紹使用方法。我們可以在state、模板檔案中引用,模板格式為:{{ pillar變數 }}
例:
{{ pillar['appname'] }}(一級字典) {{ pillar['flow']['maxconn'] }}(二級字典) 或 {{ salt['pillar.get']('flow:maxconn',{}) }} #Python API格式如下: pillar['flow']['maxconn'] pillar.get('flow:appname',{})
操作目標主機
salt -I 'appname:website' test.ping
結果:
wx: True
結合grains處理資料的差異性
首先透過結合grains的id資訊來區分不同的id的maxcpu的值,其次進行引用觀察匹配的資訊,將data.sls修改成如下形式:
appname: website flow: maxconn: 3000 maxmem: 6G {% if grains['id'] == 'wx' %} #jinjia2模板語法 maxcpu: 8 {% else %} maxcpu: 4 {% endif %}
結果:
wx: ---------- flow: ---------- maxconn: 3000 maxcpu: 8 maxmem: 6G
參考資料:
根據劉天斯《Python自動化運維技術與最佳實踐》整理
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2660644/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Saltstack系列4:Saltstack之Grains元件AI元件
- Saltstack系列2:Saltstack遠端執行命令
- saltstack之nginx、php的配置NginxPHP
- CentOS6/7 使用saltstack源安裝saltstackCentOS
- saltstack常用模組
- SaltStack實戰
- saltstack之haproxy的安裝配置
- saltstack之keepalived的安裝配置
- saltstack——安裝篇
- saltstack常用語法
- [翻譯] 深入SaltStack
- saltstack的架構架構
- saltstack使用介紹
- saltstack 常用執行模組
- saltstack:常用狀態模組
- saltstack獲取IP地址
- Saltstack基本安裝部署
- saltstack搭建叢集3
- saltStack自動化工具
- saltstack 新增計劃任務薦
- saltstack03的配置管理
- 02 . SaltStack高階用法(Python API)PythonAPI
- saltstack實現自動化擴容
- Understanding SaltStack --Guided Book 官方文件GUIIDE
- 【SaltStack】一些常用模組舉例
- saltstack+git+rsync釋出程式碼Git
- 【Linux】saltstack安裝與初使用Linux
- saltstack/saltmaster配置檔案說明(二)AST
- 通過 SaltStack 管理伺服器配置伺服器
- SaltStack中的檔案伺服器伺服器
- saltstack非同步執行命令: job ID非同步
- 01 . SaltStack部署配置及簡單應用
- saltstack學習一:安裝與升級
- saltstack的安裝與簡單配置(一)
- Saltstack自動化操作記錄(1)-環境部署
- Saltstack自動化操作記錄(2)-配置使用
- 【SaltStack】通過Master給Minion安裝MySQLASTMySql
- 自動化運維工具SaltStack詳細部署運維