如何处理Linux发行版本之间的Puppet版本差异

我们是一个小型的webdev商店,正在调查在各种开发和生产服务器上推出Puppet。

puppetmaster是一个Ubuntu 10.04服务器,来自Ubuntu的repo,Puppet 0.25.4。 一些puppet客户端是使用puppet 0.25.4的Ubuntu,而另外一些则是基于RedHat或Centos的,他们正在使用提供puppet 0.25.5包的EPEL存储库。

这些较新的客户不能与“老”木偶大师交谈,所以我可以升级主人或降级客户。 不过,我无法findrpm将客户端降级到0.25.4。 build立我自己的软件包是一件麻烦的事情,因为我是公司内唯一的系统pipe理员,所以我无法做到这一点。

如何处理异构环境中的不同客户端/服务器版本?

我build议在最新的稳定puppetmasterd你可以。 这将大大简化客户升级过程。 这种相对年轻和快速移动的项目往往会产生次要的function和错误修正相当频繁的版本,这可以certificate是非常宝贵的。 您当然仍然应该仔细阅读每个ChangeLog,以便在升级过程中预先避免可能会影响您环境的任何事情。

打包自己的版本不应该那么困难,这是一种技巧,将来你应该find有价值的东西来花时间掌握。 我不得不将自己的预发布包发布到Puppet,以解决我之前遇到的问题。

不过,在这个特殊情况下,您可能会发现Debian不稳定树中的新软件包会为您工作。 另外,如果你想要的话,甚至会有一个出血的PPA 。

你应该升级你的Ubuntu的版本..但如果你需要一个旧的红帽版本

http://rpm.pbone.net/index.php3/stat/4/idpl/13712760/dir/redhat_el_5/com/puppet-0.25.4-1.el5.noarch.rpm.html

为了参考:

新的Pro Puppet书提供了一个很好的概述在不同的平台上安装Puppet,从源代码或软件包,以及编写模块,使他们可以灵活地处理多个分布。