Saltstack整合reclass測試

Salt整合reclass測試


reclass基本介紹

reclass安裝

reclass配置及測試

reclass與salt整合測試

總結

reclass基本介紹

項目地址: https://github.com/madduck/reclass/tree

手冊地址: 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功能更爲強大.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章