tubaobaoya3 发表于 2018-8-1 09:48:15

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>  提供组(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术语
  nodeshosts
  classes(none)
  applicationsstates
  parameterspillar
  测试目标: 通过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功能更为强大.
页: [1]
查看完整版本: Saltstack整合reclass测试