Saltstack整合reclass測試

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功能更爲強大.

相關文章
相關標籤/搜索