2013-07-23 34 views
0

我正在使用Jenkins在测试服务器中构建应用程序,之后,jenkins执行一个结构脚本,其中chef脚本将在生产服务器中执行。如何在使用Chef部署应用程序时获取版本号

在厨师脚本中,首先我必须从github获取jar部署,并且我想要在测试阶段生成版本,所以问题是如何获取此版本号。

回答

0

应用程序的版本应该保存在属性中。然后你可以在每个厨师跑上很容易地覆盖它。只需创建一个应用程序需要一个版本的JSON文件,并给它厨师客户端或独奏下次运行:从其他地点,如从一本食谱中或由角色设定

chef-client --json-attributes path/to/file.json 

这种覆盖属性。

0

这里有一些选择:

  1. 使用chef-client -j ...。当您定位单个服务器或一组服务器时,这是可以的。对于多个/复杂的部署,它可能会变得很复杂,因为您必须为每个应用程序设置和分配不同的json属性。

  2. 将工件版本写入数据袋项目例如: knife data bag from file applications myapp.json。您的myapp食谱编码为在applications/myapp数据包项目中查找所需的应用程序版本信息。 我创建了一个詹金斯插件,这是否:https://github.com/zhelyan/jenkins-chef-artifact-release

  3. 代码你的食谱,以抓住从詹金斯服务器本身例如,从神器:https://jenkins.mycompany.com:8080/job/myapp/lastSuccessfulBuild/artifact/target/myapp.war,看看这里的细节:https://github.com/woohgit/jenkins-chef-traceability-example

实施选项2或3也会给你一个部署仪表板页面,显示部署在哪里。

相关问题