This content shows puppet setup of jenkins winstone way. This script follows http://pkg.jenkins-ci.org/debian/ and http://pkg.jenkins-ci.org/redhat/
root@puppet:/etc/puppet/modules/jenkins/manifests# cat init.pp
class jenkins {
case $::operatingsystem {
'RedHat', 'CentOS', 'Scientific', 'OracleLinux', 'OEL': {
$service_name = "jenkins"
#java install
#class { 'java': }
if ! defined(Service['jenkins']){
include jenkins::get_jenkins_centos
}
# do something RHEL specific
#running service
# running tomcat8
service { 'jenkins':
provider => "systemd",
name => $service_name,
ensure => running,
enable => true,
}
}
'ubuntu': {
$service_name = "jenkins"
#java install
#class { 'java': }
#$java_home = "/usr/lib/jvm/java-7-oracle"
if ! defined(Service['jenkins']){
include jenkins::get_jenkins_ubuntu
}
#package { 'jenkins':
# ensure => 'installed',
# install_options => [ '--force-yes' ],
#}
# running tomcat8
service { 'jenkins':
name => $service_name,
ensure => running,
enable => true,
}
}
default: {
# ...
}
}
}
root@puppet:/etc/puppet/modules/jenkins/manifests# cat get_jenkins_ubuntu.pp
class jenkins::get_jenkins_ubuntu {
exec { 'wget-repo-key':
path => ['/bin','/usr/bin','/usr/sbin','/sbin'],
command => 'wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -',
}
include jenkins::ubuntu_config
exec { 'update':
command => '/usr/bin/apt-get update',
}
exec { 'install-jenkins':
command => '/usr/bin/apt-get install -y --force-yes jenkins',
timeout => 0,
require => Exec['update'],
}
}
root@puppet:/etc/puppet/modules/jenkins/manifests# cat get_jenkins_centos.pp
class jenkins::get_jenkins_centos {
exec { 'wget-repo-key':
path => ['/bin','/usr/bin','/usr/sbin','/sbin'],
command => 'sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo && sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key',
}
exec { 'yum-update-jenkins':
command => '/bin/yum -y update',
require => Exec['wget-repo-key'],
}
exec { 'install-jenkins':
path => ['/bin','/usr/bin','/usr/sbin','/sbin'],
command => 'sudo yum -y install jenkins',
timeout => 0,
require => Exec['yum-update-jenkins'],
}
}
root@puppet:/etc/puppet/modules/jenkins/manifests# cat ubuntu_config.pp
class jenkins::ubuntu_config {
file { "/etc/apt/sources.list.d/jenkins.list":
ensure => present,
owner => 'root',
group => 'root',
mode => 0644,
source => "puppet:///modules/jenkins/jenkins_ubuntu.repo",
}
}
root@puppet:/etc/puppet/modules/jenkins/manifests# cat ../files/jenkins_ubuntu.repo
deb http://pkg.jenkins-ci.org/debian binary/
root@puppet:/etc/puppet/modules/jenkins/manifests#
No comments:
Post a Comment