我正在使用Jenkins在测试服务器中构建应用程序,之后,jenkins执行一个结构脚本,其中chef脚本将在生产服务器中执行。如何在使用Chef部署应用程序时获取版本号
在厨师脚本中,首先我必须从github获取jar部署,并且我想要在测试阶段生成版本,所以问题是如何获取此版本号。
我正在使用Jenkins在测试服务器中构建应用程序,之后,jenkins执行一个结构脚本,其中chef脚本将在生产服务器中执行。如何在使用Chef部署应用程序时获取版本号
在厨师脚本中,首先我必须从github获取jar部署,并且我想要在测试阶段生成版本,所以问题是如何获取此版本号。
应用程序的版本应该保存在属性中。然后你可以在每个厨师跑上很容易地覆盖它。只需创建一个应用程序需要一个版本的JSON文件,并给它厨师客户端或独奏下次运行:从其他地点,如从一本食谱中或由角色设定
chef-client --json-attributes path/to/file.json
这种覆盖属性。
这里有一些选择:
使用chef-client -j ...
。当您定位单个服务器或一组服务器时,这是可以的。对于多个/复杂的部署,它可能会变得很复杂,因为您必须为每个应用程序设置和分配不同的json属性。
将工件版本写入数据袋项目例如: knife data bag from file applications myapp.json
。您的myapp
食谱编码为在applications/myapp
数据包项目中查找所需的应用程序版本信息。 我创建了一个詹金斯插件,这是否:https://github.com/zhelyan/jenkins-chef-artifact-release
代码你的食谱,以抓住从詹金斯服务器本身例如,从神器:https://jenkins.mycompany.com:8080/job/myapp/lastSuccessfulBuild/artifact/target/myapp.war
,看看这里的细节:https://github.com/woohgit/jenkins-chef-traceability-example
实施选项2或3也会给你一个部署仪表板页面,显示部署在哪里。