используя поваренную книгу Дженкинса 2.2.2
==> https://supermarket.chef.io/cookbooks/jenkins
я могу вырастить Дженкинса в vagrant vm, используя инициатор chef_zero с
chef.run_list = [
'recipe[jenkins::master]',
]
однако я пытаюсь установить плагины и создать новое задание из шаблона erb, и мне не повезло. Насколько я понимаю, конфигурация должна передаваться с использованием структуры данных "chef.json" с нулевым значением chef. Я пробовал много разных конфигураций синтаксиса, но не повезло (и без ошибок, поскольку кажется, что если он не правильный, он просто игнорируется)
вот пример установки плагина, который не работает (я предполагаю, что вопрос в том, как настроить ресурс шеф-повара в рецепте внутри бродяги с предоставлением chef_zero):
chef.json = {
'java' => {
'jdk_version' => '7',
},
'jenkins' => {
'master' => {
'jenkins_plugin' => [ 'job-dsl', 'groovy', 'git', 'packer' ]
}
}
}
Я был бы очень благодарен, если бы кто-нибудь мог предоставить рабочий пример chef.json, который бродячий провайдер chef_zero хочет установить плагин jenkins (и / или установить новое задание из шаблона erb или xml файла)
Ответ - плагины и задания не могут быть напрямую вызваны из поваренной книги сообщества jenkins. необходимо сделать кулинарную книгу обертки (это зависит от Дженкинса).
это делается путем создания пустой кулинарной книги:
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'
(этот путь может быть относительным)
мне потребовалось несколько часов, чтобы разобраться во всем этом, так что, надеюсь, это поможет кому-то еще сэкономить время
Вы можете взглянуть на этот. Может быть, это может быть полезно