diff --git a/manifests/site.pp b/manifests/site.pp index 1793b2fd9c..1ca616e32f 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -184,6 +184,12 @@ node "jenkins.openstack.org" { include jenkins_master } +node "jenkins-dev.openstack.org" { + $iptables_public_tcp_ports = [80, 443, 4155] + include openstack_server + include jenkins_master +} + node "community.openstack.org" { $iptables_public_tcp_ports = [80, 443, 8099, 8080] include openstack_server diff --git a/modules/apt/manifests/key.pp b/modules/apt/manifests/key.pp new file mode 100644 index 0000000000..7b76834287 --- /dev/null +++ b/modules/apt/manifests/key.pp @@ -0,0 +1,28 @@ +define apt::key($keyid, $ensure, $keyserver = "keyserver.ubuntu.com") { + case $ensure { + present: { + exec { "Import $keyid to apt keystore": + path => "/bin:/usr/bin", + environment => "HOME=/root", + command => "gpg --keyserver $keyserver --recv-keys $keyid && gpg --export --armor $keyid | apt-key add -", + user => "root", + group => "root", + unless => "apt-key list | grep $keyid", + logoutput => on_failure, + } + } + absent: { + exec { "Remove $keyid from apt keystore": + path => "/bin:/usr/bin", + environment => "HOME=/root", + command => "apt-key del $keyid", + user => "root", + group => "root", + onlyif => "apt-key list | grep $keyid", + } + } + default: { + fail "Invalid 'ensure' value '$ensure' for apt::key" + } + } +} diff --git a/modules/jenkins_master/manifests/init.pp b/modules/jenkins_master/manifests/init.pp index e0aff2ba86..c32b1ded14 100644 --- a/modules/jenkins_master/manifests/init.pp +++ b/modules/jenkins_master/manifests/init.pp @@ -1,8 +1,10 @@ class jenkins_master { - #TODO: apache modules: ssl, proxy, rewrite - #TODO: wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - - #TODO: or something like: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYID + #This key is at http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key + apt::key { "D50582E6": + keyid => "D50582E6", + ensure => present, + } file { '/etc/apt/sources.list.d/jenkins.list': owner => 'root', @@ -11,6 +13,7 @@ class jenkins_master { ensure => 'present', content => "deb http://pkg.jenkins-ci.org/debian binary/", replace => 'true', + require => Apt::Key['D50582E6'], } file { '/etc/apache2/sites-available/jenkins': @@ -26,14 +29,58 @@ class jenkins_master { file { '/etc/apache2/sites-enabled/jenkins': target => '/etc/apache2/sites-available/jenkins', ensure => link, - require => File['/etc/apache2/sites-available/jenkins'], + require => [ + File['/etc/apache2/sites-available/jenkins'], + File['/etc/apache2/mods-enabled/ssl.conf'], + File['/etc/apache2/mods-enabled/ssl.load'], + File['/etc/apache2/mods-enabled/rewrite.load'], + File['/etc/apache2/mods-enabled/proxy.conf'], + File['/etc/apache2/mods-enabled/proxy.load'], + File['/etc/apache2/mods-enabled/proxy_http.load'], + ], } file { '/etc/apache2/sites-enabled/000-default': - require => File['/etc/apache2/sites-enabled/jenkins'], + require => File['/etc/apache2/sites-available/jenkins'], ensure => absent, } + file { '/etc/apache2/mods-enabled/ssl.conf': + target => '/etc/apache2/mods-available/ssl.conf', + ensure => link, + require => Package['apache2'], + } + + file { '/etc/apache2/mods-enabled/ssl.load': + target => '/etc/apache2/mods-available/ssl.load', + ensure => link, + require => Package['apache2'], + } + + file { '/etc/apache2/mods-enabled/rewrite.load': + target => '/etc/apache2/mods-available/rewrite.load', + ensure => link, + require => Package['apache2'], + } + + file { '/etc/apache2/mods-enabled/proxy.conf': + target => '/etc/apache2/mods-available/proxy.conf', + ensure => link, + require => Package['apache2'], + } + + file { '/etc/apache2/mods-enabled/proxy.load': + target => '/etc/apache2/mods-available/proxy.load', + ensure => link, + require => Package['apache2'], + } + + file { '/etc/apache2/mods-enabled/proxy_http.load': + target => '/etc/apache2/mods-available/proxy_http.load', + ensure => link, + require => Package['apache2'], + } + $packages = [ "jenkins", "python-pip", @@ -43,7 +90,7 @@ class jenkins_master { package { $packages: ensure => "latest", - require => File['/etc/apt/sources.list.d/jenkins.list'], + require => [File['/etc/apt/sources.list.d/jenkins.list'], Exec["update apt cache"]], } service { "versions":