usando o livro de receitas Jenkins 2.2.2
==> https://supermarket.chef.io/cookbooks/jenkins
eu posso criar jenkins no vagrant vm usando chef_zero provisioner com
chef.run_list = [
'recipe[jenkins::master]',
]
no entanto, estou tentando instalar plug-ins e criar um novo trabalho a partir do modelo erb e não estou tendo sorte. meu entendimento é que a configuração deve ser passada usando a estrutura de dados "chef.json" com chef zero. Eu tentei muitas configurações de sintaxe, mas sem sorte (e sem erro, pois parece que se não estiver correto, é simplesmente ignorado)
aqui está um exemplo de instalação de um plugin que não está funcionando (acho que a questão é como configurar um recurso chef dentro de uma receita dentro do vagrant com chef_zero provision):
chef.json = {
'java' => {
'jdk_version' => '7',
},
'jenkins' => {
'master' => {
'jenkins_plugin' => [ 'job-dsl', 'groovy', 'git', 'packer' ]
}
}
}
Eu ficaria muito grato se alguém pudesse fornecer um exemplo de trabalho do chef.json que o vagrant chef_zero provisioner deseja instalar o plug-in jenkins (e/ou instalar um novo trabalho a partir do modelo erb ou arquivo xml)
a resposta é plugins e trabalhos não podem ser invocados diretamente pelo livro de receitas jenkins da comunidade. um livro de receitas de wrapper precisa ser feito (que depende de Jenkins).
isso é feito criando um livro de receitas em branco:
knife cookbook create jenkins_wrapper
adicionando a dependência do livro de receitas da comunidade (jenkins_wrapper/metadata.rb):
depends 'jenkins'
e então fazê-lo fazer algo (jenkins_wrapper/recipes/default.rb):
jenkins_plugin 'git' jenkins_plugin 'job-dsl'
adicionalmente, se estiver usando o berkshelf, você deve adicionar o caminho para o livro de receitas no Berksfile:
cookbook 'jenkins_wrapper', path: '/path/to/jenkins_wrapper'
(este caminho pode ser relativo)levei algumas horas para descobrir tudo isso, então espero que isso ajude alguém a economizar algum tempo
Você pode dar uma olhada nisso . Talvez possa ser útil