- 论坛徽章:
- 0
|
本帖最后由 yuxcer 于 2013-12-18 15:48 编辑
Puppet代码管理
我通常使用git做代码版本控制,git和svn之争我觉得已经没有什么必要了。
说一下代码的管理流程:
每次新的提交会走内部CI流程,新的patch会先上传到gerrit上,主动trigger Jenkins上对应的自动测试jobs,这个jobs会做三件事情:运行rspec跑单元测试,lint格式检查以及ruby erb模板语法检查,如果通过就可以merge到master分支,最后由gerrit把代码推送到内部git repo。
为了在灵活和统一管理上做到最好的平衡,每个module作为一个独立的repo,相关联的repo会使用submodule的方式进行管理,目前我大概管理了60多个puppet module。
关于puppet
Puppet DSL上手容易,文档齐全,class,define,module的结合使得代码有不错的重用能力。在扩展性上,使用ruby对resource,facter,function进行定制扩展也很方便。
要说缺点的话,puppet dsl对一些logic statement的支持力度有待提高,目前在我管理的某些module中,需要使用geek的办法来解决。
关于市场和社区
Puppet目前在cms领域排名第一,许多大公司在使用它做配置管理。puppet是开源软件,使用apache协议,经过了多年的发展,因此社区非常活跃,本人亦是puppet-openstack core developer。
关于puppet的发展,可以参看我以前写的一篇博文:http://www.cnblogs.com/yuxc/p/3197094.html
关于和provision的结合
目前来看,Foreman比puppet Dashboad强多了,而且1.3版本修复了许多重要的bug,与puppet的结合能力大大提高,作为服务器的生命周期管理平台是一个不错的选择。目前我们改变一台服务器的角色,从下线到重新上线不超过30分钟。
|
评分
-
查看全部评分
|