触发器厨师在新的构建可用后继续部署



我是chef的新手,我在谷歌上尝试了所有可能的搜索词,但我找不到一个关于如何使用chef触发连续部署的文档/博客。厨师服务器和厨师客户端均已设置;但我不知道如何触发部署。一旦有了新的构建,如何让厨师客户端运行特定的步骤/食谱。

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

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

我会使用部署工件食谱。你只需要在它周围写一个包装器来处理你的应用程序的任何特殊情况(它对这种定制非常灵活),并更新一个指定你的应用版本的属性。您有几个更新属性的选项。

环境属性

如果您运行定期运行chef的chef客户端服务,您可以让CI使用刀具编辑chef环境。CI发布的每个新版本都会调用chef服务器来更新环境以使用新版本的应用程序。下一次厨师客户端运行将接收版本更改,并更新您的应用程序。

传递JSON

您可以让CI直接在所需的节点上运行chef客户端,并传入带有-j标志的节点json文件。在这种情况下,您的CI将直接在中传递新版本。

其他属性位置

按照与环境属性相同的模式,您也可以使用knife来更新节点或角色属性。当厨师客户端运行时,这些都会合并在一起,所以它们中的任何一个都可以工作。

最新更新