Continuous integration 在新生成可用后触发连续部署

Continuous integration 在新生成可用后触发连续部署,continuous-integration,teamcity,chef-infra,continuous-deployment,Continuous Integration,Teamcity,Chef Infra,Continuous Deployment,我是chef的新手,我在Google上尝试了所有可能的搜索词,但我找不到一个关于如何使用chef触发连续部署的文档/博客。 Chef服务器和Chef客户端均已设置;但我不知道如何触发部署。如何使chef客户端在新版本可用后运行特定步骤/食谱 用例非常简单: 我将teamcity作为我的持续集成工具,一旦分支上发生合并,teamcity就会创建归档并将其上传到构建的中心repo。 现在我想使用chef从central repo下载这些构建,停止以前运行的构建并部署新构建。但是如何触发chef客户端

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

用例非常简单: 我将teamcity作为我的持续集成工具,一旦分支上发生合并,teamcity就会创建归档并将其上传到构建的中心repo。 现在我想使用chef从central repo下载这些构建,停止以前运行的构建并部署新构建。但是如何触发chef客户端下载新版本,以及如何触发此用例处理的特定cookbook。(我不希望每次触发部署时都运行系统配置cookbooks)

任何帮助都将不胜感激。

我将使用。您只需在其周围编写一个包装器来处理应用程序的任何特殊情况(这种定制非常灵活),并更新指定应用程序版本的属性。有几个选项可用于更新属性

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

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

其他属性位置 遵循与环境属性相同的模式,也可以使用刀子更新节点或角色属性。当chef client运行时,这些都被合并在一起,所以它们中的任何一个都可以工作。

有一个特殊的“部署”资源被严重误解。请参阅:。这个底层资源被其他烹饪书(如下面提到的“工件”)和更复杂的烹饪书(如“应用程序”)所利用