如何通過 chefzero vagrant provisioner 配置 jenkins
使用詹金斯食譜 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'
此路徑可以是相對的)我花了幾個小時才弄清楚這一切,所以希望這能幫助其他人節省一些時間