使用詹金斯食谱 2.2.2
==> https://supermarket.chef.io/cookbooks/jenkins
我可以使用 chef_zero 配置器在 vagrant vm 中调出 jenkins
chef.run_list = [
'recipe[jenkins::master]',
]
但是,我正在尝试安装插件并从 erb 模板创建新工作,但我没有运气。我的理解是配置应该使用厨师零的“chef.json”数据结构传递。我尝试了很多语法配置,但没有运气(也没有错误,如果不正确,它就会被忽略)
这是一个安装不起作用的插件的示例(我想问题是如何在 vagrant 内部的食谱中使用 chef_zero 配置配置厨师资源):
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'
此路径可以是相对的)我花了几个小时才弄清楚这一切,所以希望这能帮助其他人节省一些时间
你可以看看这个。也许它会有所帮助