Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1067351
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: 系统运维

2015-07-18 10:44:35

      最近tomcat由于安全问题需要升级,但是在研发类型的公司做过运维的人应该都了解,这种公司的产品都是给客户提供的商业产品,可用性是非常的关键。所以最少有2个环境,staging/production, 所有的puppet agent都在运行,一旦你改了version,那么staging还未进行测试都apply to production了,这样有很大的风险,虽然之前都做过很多评估。在Puppet没有Hiera之前若要解决此类问题,就有点麻烦了,写2个module,里面指定不同的version。这样就要维护2个不同的代码库。staging/production的puppet master 分别去check out自己的,这样又涉及到改git/svn的url的问题了。

    用了hiera非常简单,不同的environment的version值不同,非常简单。

### module/tomcat/manifests/init.pp####
class tomcat ( $tomcat_version="7.0.54"......)

    {   ......

      }


从这里看 />

从puppet 3.3 and later,无需改init.pp,只需要在对应的hieradata/XXX.yaml加一行

tomcat::tomcat_version: 7.0.61

而低于3.3的需要改init.pp和yaml.

$tomcat_ver = hiera('tomcat_version', '7.0.61'),   # 从hiera查找版本,default是7.0.61
......
#hiera.yaml指定查找的顺序,根据情况,设定production/staging YAML的不同值。

    那么staging上tomcat的版本和production的就不同了,互不影响,维护代价非常的小。
   tips:可以debug 结果如下: hiera  -d tomcat_version ::environment=staging ::role=multi_tomcat ( -a 就是array)




阅读(1531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~