关于 Puppet 2 到 3 的升级 - V2EX
Livid
74.2D
458.42D
V2EX    Puppet

关于 Puppet 2 到 3 的升级

  •  
  •   Livid
    PRO
    2014-06-16 21:40:33 +08:00 8147 次点击
    这是一个创建于 4134 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前 Ubuntu 12.04 LTS 里的 Puppet 是 2.7 版本。

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

    3 有什么你觉得非升级不可的好功能么?
    10 条回复    2014-07-04 11:58:20 +08:00
    ericFork
        1
    ericFork  
       2014-06-17 00:29:06 +08:00   1
    没想到 Livid 还在用 puppet 2.7…

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

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

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

    历史问题……

    PuppetDB 确实是一个我很想有的功能。
    NewpTone
        4
    NewpTone  
       2014-06-17 00:43:54 +08:00   1
    补充一点,唯一不爽的地方:
    你可能会遇到一堆deprecation warning,主要在template,就是我前一条提到的第4点。
    我是花了半天时间把所有不兼容的代码修复了(量太大了...)。
    NewpTone
        5
    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
        6
    Livid  
    MOD
    OP
    PRO
       2014-06-17 00:56:17 +08:00
    那如果我就把 Puppet Labs 的源加入,然后 apt-get update && apt-get install puppet 的话,会有什么可能踩到的坑么?
    NewpTone
        7
    NewpTone  
       2014-06-17 01:01:20 +08:00
    @Livid
    虽然Ubuntu的包管理有点糟糕,但是在依赖性不会遇到什么问题。我的开发机是Ubuntu 12.04,去年就已升级到3.x。

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

    我想我还是先用 Vagrant 实验一下。
    ericFork
        9
    ericFork  
       2014-06-17 09:39:30 +08:00
    @NewpTone 感谢为 foreman 正名,不过我们的使用场景比较简陋,gentoo 下升级 foreman 是一件很耗精力的事情,人力成本不低;而且我们都没有使用 puppet 管理包(gentoo 的包管理方面,puppet 做得还不好)和 mco 进行批量执行命令(使用了 ansible),我们只是用 foreman 来查看 reports,这一点 puppetboard 就够用了(不是 puppet-dashboard)。
    seerchen
        10
    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卡,固件升级,硬盘等具体管理
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2425 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 15:34 PVG 23:34 LAX 08:34 JFK 11:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86