我目前正在使用Jenkins supermarket cookbook在我的Chef受管节点上部署作为服务运行的Jenkins实例。到目前为止,我已经修改了_master_war_配方文件以安装Jenkins,并使用runit将Jenkins作为服务启动,安装我需要的所有插件版本,以及启用基于矩阵的安全性并创建基本管理员帐户。还应注意,我们使用BitBucket进行源代码控制。

我还想将作业添加为自动Jenkins部署的一部分。据我了解,执行此操作的方法是将作业配置文件从我的Chef工作站上的目录复制到受管节点上的目录(Chef的缓存路径)。

根据Jenkins public supermarket cookbook自述文件:

:create操作需要Jenkins作业config.xml。这个配置文件
必须存在于目标节点上并且包含有效的Jenkins作业
配置文件。因为Jenkins CLI实际上读取
生成此文件的副本,请勿编写此配置
在詹金斯工作中。我们建议将它们放入Chef的文件中
缓存路径。

由于这些作业配置确实会定期更改,因此我想知道在厨师工作站上维护作业配置文件的最新副本以部署到受管节点的最佳方法是什么?

我是否正确理解了食谱文档,因为我们需要作业配置文件的本地副本(在Chef工作站上),然后将其复制到受管节点上Chef的缓存文件路径?

在此先感谢任何人都可以提供的帮助。

最佳答案

就个人而言,我认为在詹金斯(Jenkins)领域而不是在Chef(Chef)领域设置更多的詹金斯工作。 Jenkins社区已经开发了几种“将代码作为工作”的方法,最受欢迎的方法是Job DSLJenkins Pipelines,而后者可能是更好的起点。

厨师食谱的主要工作是定义种子作业,例如用于“Bitbucket组织文件夹”插件(以及在BitBucket上指向您的组织的一项工作),或用于工作DSL的所谓的“种子工作”。

关于管道的自动设置,我建议看看Torben Knerr's examples。这使用

实际构建作业的

  • 管道(在Jenkinsfile中定义)
  • Job DSL种子作业,用于设置管道作业

  • 关于Chef中的实际实现,您可以在a cookbook of mine中看到一个示例。 template资源将菜谱中的文件(位于templates/子目录中)复制到某个临时路径,该路径由jenkins_job资源从中拾取(在Jenkins服务器上)。

    所以我不确定,如果您对以下方面做对了:

    将需要作业配置文件的本地副本(在Chef工作站上)

    因此,您只需要在工作站上将其添加一次,即可。

    关于jenkins - 厨师: Jenkins 超市食谱自动部署工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44500881/

    10-10 00:12
    查看更多