想象一下Jenkins正在生成3个不同的发行版--一个是在NodeJS上运行的javascript上,另一个是在带有python模块的apache上运行的python上,另一个是使用Springboot的Java上。如何编写一本Chef cookbook,将它们全部安装在具有最小linux ubuntu发行版的本地基础设施上。问题的范围涉及从Jenkins捕获触发器,然后启动Chef书籍来部署这三个应用程序。根据配置,所有3个应用程序都应该部署在相同的基础设施或不同的部署基础设施上。
发布于 2017-02-22 15:38:03
所以有几件事:
chef-client。但是,这可能会带来您不喜欢的安全隐患。您可以考虑更专用的命令推送系统,如MCollective、SaltStack,或者厨师推送作业(尽管我会跳过最后一个)。您还可以将您的节点设置为每5分钟自动聚合一次,这样所有Jenkins都会更新Chef Server中的一些内容,以确定要部署的版本,然后等待10分钟。发布于 2017-02-22 18:45:47
我有一个与您类似的案例,使用TeamCity而不是Jenkins。(但您可以复制类似的行为)
在我的例子中,我使用policy_files来管理我的基础设施,我将构建信息作为属性传递,这样我就可以下载配方中的工件。主要的技巧是有一个由你提到的服务触发的构建(Python,Java...无论如何),更新属性(build id,artefact ...)在policy_file中,当提交GIT结果时。
简单回顾一下:
服务的
为了下载工件,您可以使用remote_file chef资源,进行校验和验证,以避免在每次chef运行时下载相同的文件。
https://stackoverflow.com/questions/42383213
复制相似问题