关于 Puppet 2 到 3 的升级

2014-06-16 21:40:33 +08:00
 Livid
目前 Ubuntu 12.04 LTS 里的 Puppet 是 2.7 版本。

是否有任何必要折腾到 3 呢?

3 有什么你觉得非升级不可的好功能么?
7591 次点击
所在节点    Puppet
10 条回复
ericFork
2014-06-17 00:29:06 +08:00
没想到 Livid 还在用 puppet 2.7…

2 升级到 3 最直观的感受是性能的明显提升,至少 30%(从执行时间来看)

以及 puppet 3.5 引入的 puppetdb,十分实用,我已经抛弃了臃肿复杂的 foreman 转投 puppetdb + puppetboard 了。

至于 repo,使用 puppetlabs 的官方源 http://apt.puppetlabs.com/ 即可,目前已更新到 3.6.2。
NewpTone
2014-06-17 00:38:08 +08:00
1. 非常显著的性能提升,官方说与2.7.x相比有50%的提升,我实测大约提升30%(仅针对我自己的代码)
2. 默认支持hiera,福音啊
3. 慢到死的activerecord + SQL的storeconfigs终于被标记为弃用,PuppetDB+ PostgreSQL 性能提升非常明显,不止快了一倍,测试数据我忘记放哪了
4. 变量的动态范围(Dynamic Scope )被移除,终于不会被人乱用了
Livid
2014-06-17 00:38:56 +08:00
@ericFork 因为当时部署的时候,用的就是 Ubuntu 12.04 LTS 自带的 Puppet。Puppet Master 也是。

历史问题……

PuppetDB 确实是一个我很想有的功能。
NewpTone
2014-06-17 00:43:54 +08:00
补充一点,唯一不爽的地方:
你可能会遇到一堆deprecation warning,主要在template,就是我前一条提到的第4点。
我是花了半天时间把所有不兼容的代码修复了(量太大了...)。
NewpTone
2014-06-17 00:52:41 +08:00
@ericFork

额, 其实Foreman的主要优势在于Provision,这是puppetdashboard不具备的。

不仅支持bare metal,还支持Libvirt,Openstack,EC2等。

现在新版的foreman(应该是1.3就有了)还支持自己编写plugin,可以做大量扩展,比如使用mco代替puppet kick来运行puppetrun等等。

不过我没有使用foreman来管理puppet,一是不想使用foreman的enc脚本,太烂; 二是图形界面再快,也没我命令行下快 :D
Livid
2014-06-17 00:56:17 +08:00
那如果我就把 Puppet Labs 的源加入,然后 apt-get update && apt-get install puppet 的话,会有什么可能踩到的坑么?
NewpTone
2014-06-17 01:01:20 +08:00
@Livid
虽然Ubuntu的包管理有点糟糕,但是在依赖性不会遇到什么问题。我的开发机是Ubuntu 12.04,去年就已升级到3.x。

你应该会升级以下puppet相关的核心包:
facter
hiera
puppet-common
puppet
Livid
2014-06-17 01:10:14 +08:00
@NewpTone 谢谢。

我想我还是先用 Vagrant 实验一下。
ericFork
2014-06-17 09:39:30 +08:00
@NewpTone 感谢为 foreman 正名,不过我们的使用场景比较简陋,gentoo 下升级 foreman 是一件很耗精力的事情,人力成本不低;而且我们都没有使用 puppet 管理包(gentoo 的包管理方面,puppet 做得还不好)和 mco 进行批量执行命令(使用了 ansible),我们只是用 foreman 来查看 reports,这一点 puppetboard 就够用了(不是 puppet-dashboard)。
seerchen
2014-07-04 11:58:20 +08:00
@Livid

建议: Ubuntu 12.04 x64
1.使用puppetlabs repo,foreman repo
2.先安装puppetmaster puppetmaster-common puppet puppet-common
!但如果要使用foreman-proxy的话不要安装最新版本3.6.x, 需要安装3.5.1-1puppetlabs1


3.安装hiera,augeas-tools,vim-puppet(3.5.1),puppet-el
4.配置puppet.conf中内容,如autosign.conf,name.conf等
5.puppet agent (server/client)
6.在puppetmaster端安装puppetdb
#puppet module install puppetlabs/puppetdb
7.去掉puppetmaster update-rc.d 启动
#update-rc.d -f puppetmaster remove
8.安装foreman,foreman-proxy
#apt-get install foreman-installer
#foreman-installer -i
!把需要配置的选上即可,现在中文资料中安装配置方式基本都是错误的,更详细的看官方文档
9.puppet-dashboard不建议用了.
10.我不用foreman provision,建议EMC razor(puppetlabs下有模块,可参看)
!解决什么? 呵呵 每台机器的IPMI,BIOS,RAID卡,固件升级,硬盘等具体管理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/117862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX