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

Deployment Puppet-识别新的构建版本并部署,deployment,build,version,puppet,Deployment,Build,Version,Puppet,我有一个傀儡主源,我的应用程序构建到主文件夹中。例如,xxxxx_v1.0.0.zip和yyyyy_v1.0.8.zip[xxxxx被部署到一系列服务器,YYYY被部署到另一组服务器] 在我的应用程序版本的新版本上,在puppet master上处理寻源的最佳方法是什么,无需编辑master上的.pp文件以引用文件名上的新版本号,最好是自动的 感谢您为您的操作系统构建合适的软件包的好方法。傀儡可以使用那些 package { 'application-x': ensure => lates

我有一个傀儡主源,我的应用程序构建到主文件夹中。例如,xxxxx_v1.0.0.zip和yyyyy_v1.0.8.zip[xxxxx被部署到一系列服务器,YYYY被部署到另一组服务器]

在我的应用程序版本的新版本上,在puppet master上处理寻源的最佳方法是什么,无需编辑master上的.pp文件以引用文件名上的新版本号,最好是自动的


感谢您为您的操作系统构建合适的软件包的好方法。傀儡可以使用那些

package { 'application-x': ensure => latest }
如果不行,你就解决这个问题

在代理端,通过从某处获取应用程序元数据,例如使用wget的exec,然后让它运行脚本来执行部署(如果需要) 在主机端,使用类似Puppet Dashboard的ENC,或者更好的方式,保存您的最新版本信息 如果您真的想通过Puppet的文件服务器实现这一点,而不需要接触任何元数据,只需将文件放到模块中,那么可以尝试使用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


不过,这是一个非常可怕的做法——你真的没有用这样的结构来迎合木偶的优势。

谢谢Felix。我从主控端问了更多问题,如何选择folderon主控中丢弃的新构建进行部署。有什么建议吗?顺便说一句,我也使用mco。@user1882828我更新了我的答案,加入了一个丑陋的替代方案。