使用Chef部署应用程序时如何获取版本号

时间:2013-07-23 02:44:13

标签: jenkins chef fabric

我正在使用Jenkins在测试服务器中构建应用程序,之后,jenkins执行一个结构脚本,在该脚本中将在生产服务器中执行一个主厨脚本。

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

2 个答案:

答案 0 :(得分:0)

应用程序的版本应保存在属性中。然后,您可以在每次厨师运行时轻松覆盖它。只需创建一个包含所需应用程序版本的json文件,并在下次运行时将其提供给Chef客户端或solo:

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

此覆盖从其他位置设置的属性,例如从食谱或角色中设置。

答案 1 :(得分:0)

以下是一些选项:

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

  2. 将工件版本写入数据包项目,例如: knife data bag from file applications myapp.json。您的myapp食谱已编码为在applications/myapp数据包项目中查找所需的应用版本信息。 我创建了一个Jenkins插件来执行此操作:https://github.com/zhelyan/jenkins-chef-artifact-release

  3. 对您的食谱进行编码,以便从Jenkins服务器本身获取工件,例如:https://jenkins.mycompany.com:8080/job/myapp/lastSuccessfulBuild/artifact/target/myapp.war,详情请点击此处:https://github.com/woohgit/jenkins-chef-traceability-example

  4. 实施选项2或3还将为您提供部署仪表板页面,显示已部署的位置。