Salt整合reclass測試html
reclass基本介紹node
reclass安裝python
reclass配置及測試git
reclass與salt整合測試github
總結bash
reclass基本介紹app
項目地址: https://github.com/madduck/reclass/treeide
手冊地址: http://reclass.pantsfullofunix.net/index.html工具
reclass, 全稱Recursive External Node Classification, 能夠與自動化管理工具結合, 爲其提供ENC服務. reclass做者認爲, ENC軟件應該提供以下兩個功能:測試
提供組(group)中節點(node)及組關係(group memberships)的信息
提供節點指定的信息, 如變量
對此, reclass定義了以下四種元素:
元素 描述
node 一個節點, 一般是一個計算機
class 一個分類(categroy),tag,特性(feature)或角色(role), 支持嵌套和繼承
application 一組行爲(behaviour)
parameter 節點指定的變量,能夠經過class進行繼承
reclass在繼承中, 若是parent中變量不存在, 則新增,若是存在同一變量, 類型爲字符串, 則會進行覆蓋. 若是變量爲list類型, 則進行追加
reclass安裝
git clone https://github.com/madduck/reclass.git
cd reclass
python setup.py install
reclass配置及測試
測試目標: 經過reclass實現ntp變量的靈活擴展
通用信息, /srv/reclass/classes/ntp-common.yml
parameters:
ntp:
ntpserver:
- 0.asia.pool.ntp.org
- 1.asia.pool.ntp.org
redhat系統繼承ntp-common並進行一些特殊定製, /srv/reclass/classes/ntp-redhat.yml
classes:
- ntp-common
parameters:
ntp:
pkg: ntp
service: ntpd
ntpserver:
- 2.asia.pool.ntp.org
- 3.asia.pool.ntp.org
配置node, /srv/reclass/nodes/salt-minion-01.yml
classes:
- ntp-redhat
測試節點分類信息
bc(sourceCode bash). reclass -b /srv/reclass --nodeinfo salt-minion-01
輸出結果
__reclass__:
environment: base
name: salt-minion-01
node: salt-minion-01
timestamp: Mon Feb 17 09:29:53 2014
uri: yaml_fs:///srv/reclass/nodes/salt-minion-01.yml
applications: []
classes:
- ntp-common
- ntp-redhat
environment: base
parameters:
ntp:
ntpserver:
- 0.asia.pool.ntp.org
- 1.asia.pool.ntp.org
- 2.asia.pool.ntp.org
- 3.asia.pool.ntp.org
pkg: ntp
service: ntpd
從輸出結果看, 與reclass手冊描述一致
reclass與salt整合測試
Salt在0.17版本中,增長了 reclass的支持 .
Salt與reclass元素對應關係
reclass元素 Salt術語
nodes hosts
classes (none)
applications states
parameters pillar
測試目標: 經過reclass爲salt minion提供對應的ntp pillar信息
測試環境: Salt Master/Minion結構, 版本0.17.5
配置salt master, /etc/salt/master
......
reclass: &reclass
storage_type: yaml_fs
inventory_base_uri: /srv/reclass
master_tops:
reclass: *reclass
ext_pillar:
- reclass: *reclass
重啓salt master
service salt-master restart
測試salt-minion-01對應的ntp pillar
salt 'salt-minion-01' pillar.item ntp
輸出結果
salt-minion-01:
----------
ntp:
----------
ntpserver:
- 0.asia.pool.ntp.org
- 1.asia.pool.ntp.org
- 2.asia.pool.ntp.org
- 3.asia.pool.ntp.org
pkg:
ntp
service:
ntpd
達成測試目標
總結
salt pillar當前較弱, 只支持include, 並不支持extend等更高級的功能. 經過與reclass的整合, 藉助reclass靈活的繼承功能(支持多級繼承), 爲Salt提供專業的ENC服務, 彌補了pillar的不足.
當前reclass的功能相對較弱, 不過能夠看到的是如Class subdirectories這類實用的功能已經在to-do list中, 期待reclass功能更爲強大.