V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Puppet

关于 Puppet 2 到 3 的升级

  •  
  •   Livid · 2014-06-16 21:40:33 +08:00 · 7282 次点击
    这是一个创建于 3563 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前 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
       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
       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
       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   ·   我们的愿景   ·   实用小工具   ·   5464 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:10 · PVG 16:10 · LAX 01:10 · JFK 04:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.