Chef

如何通過 chefzero vagrant provisioner 配置 jenkins

  • May 18, 2015

使用詹金斯食譜 2.2.2

==> https://supermarket.chef.io/cookbooks/jenkins

我可以使用 chef_zero 配置器在 vagrant vm 中調出 jenkins

chef.run_list = [ 'recipe[jenkins::master]', ]

但是,我正在嘗試安裝外掛並從 erb 模板創建新工作,但我沒有運氣。我的理解是配置應該使用廚師零的“chef.json”資料結構傳遞。我嘗試了很多語法配置,但沒有運氣(也沒有錯誤,如果不正確,它就會被忽略)

這是一個安裝不起作用的外掛的範例(我想問題是如何使用 chef_zero 配置在 vagrant 內部的食譜中配置廚師資源):

chef.json = { 'java' => { 'jdk_version' => '7', }, 'jenkins' => { 'master' => { 'jenkins_plugin' => [ 'job-dsl', 'groovy', 'git', 'packer' ] } } }

如果有人能提供 vagrant chef_zero provisioner 想要安裝 jenkins 外掛(和/或從 erb 模板或 xml 文件安裝新工作)的 chef.json 工作範例,我將不勝感激

答案是社區詹金斯食譜不能直接呼叫外掛和作業。需要製作一個包裝食譜(這取決於詹金斯)。

這是通過創建一個空白食譜來完成的: knife cookbook create jenkins_wrapper

添加社區食譜依賴(jenkins_wrapper/metadata.rb): depends 'jenkins'

然後讓它做一些事情(jenkins_wrapper/recipes/default.rb): jenkins_plugin 'git' jenkins_plugin 'job-dsl'

另外,如果使用 berkshelf,您必須在 Berksfile 中添加食譜的路徑:( cookbook 'jenkins_wrapper', path: '/path/to/jenkins_wrapper' 此路徑可以是相對的)

我花了幾個小時才弄清楚這一切,所以希望這能幫助其他人節省一些時間

引用自:https://serverfault.com/questions/688754