gpt4 book ai didi

continuous-integration - 新版本可用后触发 Chef 持续部署

转载 作者:行者123 更新时间:2023-12-02 06:18:25 26 4
gpt4 key购买 nike

我是 Chef 新手,我已经在 Google 上尝试了所有可能的搜索词,但我找不到关于如何使用 Chef 触发持续部署的单个文档/博客。Chef-server 和 Chef-client 均已设置;但我不知道如何触发部署。一旦新版本可用,如何使 Chef 客户端运行特定步骤/Recipe 。

用例非常简单:我将 teamcity 作为我的持续集成工具,一旦分支上发生合并,teamcity 就会创建存档并将其上传到构建的中央存储库。现在我想使用 Chef 从中央存储库下载这些构建,停止之前正在运行的构建并部署新的构建。但是如何触发 Chef 客户端下载新版本以及如何触发特定的 Recipe 来处理此用例。 (我不想运行系统配置说明书以在每次触发部署时运行)

如有任何帮助,我们将不胜感激。

最佳答案

我会使用deploy artifact cookbook 。您只需要围绕它编写一个包装器来处理您的应用程序的任何特殊情况(对于这种自定义非常灵活),并更新指定您的应用程序版本的属性。您有几个更新属性的选项。

环境属性

如果您运行 Chef-client 服务(该服务定期运行 Chef),您可以让 CI 使用 Knife 编辑 Chef 环境。 CI 的每个新版本都会调用 Chef 服务器来更新环境以使用应用程序的新版本。下一次 Chef 客户端运行将拾取该版本更改,并更新您的应用程序。

传递 JSON

您可以让 CI 直接在所需节点上运行 Chef-client,并使用 -j 标志传入节点 json 文件。在这种情况下,您的 CI 将直接传入新版本。

其他属性位置

遵循与环境属性相同的模式,您也可以使用 Knife 来更新节点或角色属性。当 Chef-client 运行时,这些都会合并在一起,因此它们中的任何一个都可以工作。

关于continuous-integration - 新版本可用后触发 Chef 持续部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com