Puppet - 识别新的构建版本并进行部署

时间:2014-07-23 06:51:30

标签: deployment build version puppet

我有一个木偶大师将我的应用程序构建到一个主文件夹中。例如。 xxxxx_v1.0.0.zip和yyyyy_v1.0.8.zip [xxxxx部署到一系列服务器,yyyyy部署到另一组服务器]。

在我的应用程序版本的新版本上处理puppet master上的源代码的最佳方法是什么,而不编辑master上的.pp文件以引用文件名上的新内部版本号,最好是自动生成。

由于

1 个答案:

答案 0 :(得分:0)

为您的操作系统构建合适的包的好方法。 Puppet可以使用

package { 'application-x': ensure => latest }

如果做不到,你解决了这个问题

  • 在代理端,通过从某处获取应用程序元数据,例如使用exec wget,然后让它运行脚本以在必要时执行部署
  • 主要方面的
  • 使用像Puppet Dashboard这样的ENC,或者更好,Hiera来保存您的最新版本信息

如果您真的希望通过Puppet的fileserver执行此操作而不触及任何元数据并只删除模块中的文件,则可以尝试使用generate函数。

$latest_zip_application_x = generate("/usr/local/bin/find_latest application_x")
file { 'application_x.zip':
    ...
    source => "puppet:///modules/application_x/path/to/$latest_zip_application_x",
}

其中/usr/local/bin/find_latest是一个脚本,可以找到包的最新版本并将其写入stdout。

这是非常糟糕的做法 - 你真的不能满足Puppet在这些结构方面的优势。