0

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

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

4

2 回答 2

0

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

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

这会覆盖从其他位置设置的属性,例如从说明书中或由角色设置的属性。

于 2013-07-23T06:15:33.383 回答
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

实施选项 2 或 3 还将为您提供一个部署仪表板页面,显示部署在何处。

于 2016-03-14T16:37:53.237 回答