我正在使用Jenkins在测试服务器中构建应用程序,之后,jenkins执行一个结构脚本,在该脚本中将在生产服务器中执行一个主厨脚本。
在厨师脚本中,首先我必须从github部署jar,我想获得在测试阶段生成的版本,所以问题是如何获得此版本号。
答案 0 :(得分:0)
应用程序的版本应保存在属性中。然后,您可以在每次厨师运行时轻松覆盖它。只需创建一个包含所需应用程序版本的json文件,并在下次运行时将其提供给Chef客户端或solo:
chef-client --json-attributes path/to/file.json
此覆盖从其他位置设置的属性,例如从食谱或角色中设置。
答案 1 :(得分:0)
以下是一些选项:
使用chef-client -j ...
。当您定位单个服务器或一组服务器时,这是可以的。对于多个/复杂的部署,它可能会变得复杂,因为您必须为每个应用程序设置和分发不同的json属性。
将工件版本写入数据包项目,例如:
knife data bag from file applications myapp.json
。您的myapp
食谱已编码为在applications/myapp
数据包项目中查找所需的应用版本信息。
我创建了一个Jenkins插件来执行此操作:https://github.com/zhelyan/jenkins-chef-artifact-release
对您的食谱进行编码,以便从Jenkins服务器本身获取工件,例如:https://jenkins.mycompany.com:8080/job/myapp/lastSuccessfulBuild/artifact/target/myapp.war
,详情请点击此处:https://github.com/woohgit/jenkins-chef-traceability-example
实施选项2或3还将为您提供部署仪表板页面,显示已部署的位置。