使用puppetpipe理(和固定)软件包版本

我有一个安装,我试图用傀儡pipe理。 对于我们想要对版本进行严格控制的一些软件包。 由于它们对于我们的应用程序至关重要,因此我们只在testing环境中进行testing后才对其进行升级,并且在低stream量时间安排升级。 我不希望puppet每当有新的软件包出现时升级我的数据库。 我指定了我的puppet清单中的版本,以防止软件包自动升级,但是当我去使用相同的configuration生成另一个实例时,该软件包的版本从Ubuntu回购中消失了。 只有最近的那些在那里。

对于一些软件包,我已经把自己打包到自己的repo中,但是封装数据库(postgresql)也被certificate是太多的开销。

任何解决scheme或想法?

我们正在使用Ubuntu 12.04.1 LTS。

这不是Puppet问题,而是您如何pipe理软件包储存库的问题。

如果你绝对需要坚持特定版本的包装,那么你不能依靠任何第二方或第三方继续为你提供。 至less你需要把它保存在你所控制的仓库中,就像你在做的那样。 而且,如果你自己的软件包对你来说是非常重要的,那么你自己的软件包就不会有“太多的开销”,所以这个论点是不成立的。

您应该考虑镜像上游存储库(apt-mirror,rsync),并决定何时过期软件包。 这样,你总是有你需要的版本。

关于PostgreSQL,我可以告诉你,Ubuntu和Debian软件包可以轻松安全地升级; 没有必要坚持一个特定的(旧)版本的包害怕破坏的东西。 只要确保你能控制软件包升级和后续服务重启的时间和地点,但这是不言而喻的。