system-config/modules/jenkins/manifests/job_builder.pp
Mathieu Gagné fd8c25e293 Set ownership of JJB config file to root
This removes the dependency on the jenkins user which might
not always be present on the system on which JJB is installed.

Change-Id: I872c9ad9a94708246bf03d409c1e4d1ef862035b
2013-07-30 18:49:03 -04:00

62 lines
1.6 KiB
Puppet

# == Class: jenkins::job_builder
#
class jenkins::job_builder (
$url = '',
$username = '',
$password = '',
) {
# A lot of things need yaml, be conservative requiring this package to avoid
# conflicts with other modules.
if ! defined(Package['python-yaml']) {
package { 'python-yaml':
ensure => present,
}
}
if ! defined(Package['python-jenkins']) {
package { 'python-jenkins':
ensure => present,
}
}
vcsrepo { '/opt/jenkins_job_builder':
ensure => latest,
provider => git,
revision => 'master',
source => 'https://github.com/openstack-infra/jenkins-job-builder.git',
}
exec { 'install_jenkins_job_builder':
command => 'python setup.py install',
cwd => '/opt/jenkins_job_builder',
path => '/bin:/usr/bin',
refreshonly => true,
subscribe => Vcsrepo['/opt/jenkins_job_builder'],
}
file { '/etc/jenkins_jobs':
ensure => directory,
}
exec { 'jenkins_jobs_update':
command => 'jenkins-jobs update /etc/jenkins_jobs/config',
path => '/bin:/usr/bin:/usr/local/bin',
refreshonly => true,
require => [
File['/etc/jenkins_jobs/jenkins_jobs.ini'],
Package['python-jenkins'],
Package['python-yaml'],
],
}
# TODO: We should put in notify Exec['jenkins_jobs_update']
# at some point, but that still has some problems.
file { '/etc/jenkins_jobs/jenkins_jobs.ini':
ensure => present,
mode => '0400',
content => template('jenkins/jenkins_jobs.ini.erb'),
require => File['/etc/jenkins_jobs'],
}
}