2015-10-29 87 views
1

我们采用了http://garylarizza.com/blog/2014/02/17/puppet-workflow-part-2/中概述的想法,其中介绍了组件模块,配置文件和角色的概念。相同环境中不同版本的傀儡模块

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

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

是否有任何方法将Puppet打包成与Maven相似的或者其他任何可以应用的方式,以便确保配置文件模块可以依赖于特定版本的组件模块?其他puppet用户在这种情况下管理模块版本?

问候, 肯尼斯·霍尔特

回答

1

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

如何我会实现这个:

  • 必须在1.0版本数据模块,在版本Ÿ取决于你的模块moduleA。这将安装在环境env1
  • 当您需要新版本的moduleA时,您将创建一个新的配置文件在版本1.1(或2.0,无所谓),将取决于新版本。如果您使用的木偶锻造,让您的模块,您将在ENV2

安装这个,你只需要更新metadata.json与拉新的配置文件:

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

感谢您的答复。这似乎是要走的路。尽管可能会有相当多的环境,但取决于将模块迁移到最新版本的速度有多快。 – kenneho