同一环境中不同版本的木偶模块

时间:2015-10-29 17:57:08

标签: puppet

我们采用了http://garylarizza.com/blog/2014/02/17/puppet-workflow-part-2/中概述的概念,其中介绍了组件模块,概要文件和角色的概念。

假设我们有一个组件模块“moduleA”,可以由不同的配置文件模块使用。由于不同的开发团队可能会在任何给定时刻对“moduleA”进行更改并将其推向生产(我们所有的生产服务器都订阅了Puppetmaster“生产”环境),这有点像依赖于模块的快照版本。

我在Java和Maven世界中将pom.xml指向“moduleA”的特定版本,以避免依赖于快照发布。但是,在Puppet中,我不认为这是开箱即用的。

有没有任何方法可以将Puppet打包类似于Maven或任何其他可能应用的方法,这样可以确保配置文件模块可以依赖于组件模块的特定版本?其他木偶用户如何管理?这种情况下的模块版本?

此致 肯尼斯霍尔特

1 个答案:

答案 0 :(得分:1)

您不能在同一环境中多次使用同一模块。如果您需要同一模块的多个版本,则必须使用不同的环境。

我将如何实现这一点:

  • 版本1.0的配置文件模块取决于版本y的模块moduleA。这将安装在环境env1
  • 当您需要新版本的moduleA时,您将在版本1.1(或2.0,无关紧要)上创建一个取决于新版本的新配置文件。您将在env2
  • 上安装它

如果您使用puppet forge来保存模块,则只需更新metadata.json并使用以下命令提取新配置文件:

puppet module install profile --target-dir /etc/puppet/environments/envX