diff --git a/manifests/openstack.pp b/manifests/openstack.pp index d1d18b5454..e78d1fb9cd 100644 --- a/manifests/openstack.pp +++ b/manifests/openstack.pp @@ -2,28 +2,47 @@ import "users" # # Abstract classes: # -class openstack_base ($iptables_public_tcp_ports) { +class openstack_base { include openstack_project::users - include ssh - include snmpd include sudoers - class { 'iptables': - public_tcp_ports => $iptables_public_tcp_ports, - } - file { '/etc/profile.d/Z98-byobu.sh': ensure => 'absent' } - package { "ntp": - ensure => installed - } - package { "popularity-contest": ensure => purged } + $packages = ["puppet", + "git", + "python-setuptools", + "python-virtualenv"] + package { $packages: ensure => "latest" } + + realize ( + User::Virtual::Localuser["mordred"], + User::Virtual::Localuser["corvus"], + User::Virtual::Localuser["soren"], + User::Virtual::Localuser["linuxjedi"], + User::Virtual::Localuser["devananda"], + ) +} + +# A template host with no running services +class openstack_template ($iptables_public_tcp_ports) { + include openstack_base + include ssh + include snmpd + + class { 'iptables': + public_tcp_ports => $iptables_public_tcp_ports, + } + + package { "ntp": + ensure => installed + } + service { 'ntpd': name => 'ntp', ensure => running, @@ -33,29 +52,11 @@ class openstack_base ($iptables_public_tcp_ports) { } $packages = ["python-software-properties", - "puppet", "bzr", - "git", - "python-setuptools", - "python-virtualenv", "byobu"] package { $packages: ensure => "latest" } } -# A template host with no running services -class openstack_template ($iptables_public_tcp_ports) { - class { 'openstack_base': - iptables_public_tcp_ports => $iptables_public_tcp_ports - } - realize ( - User::Virtual::Localuser["mordred"], - User::Virtual::Localuser["corvus"], - User::Virtual::Localuser["soren"], - User::Virtual::Localuser["linuxjedi"], - User::Virtual::Localuser["devananda"], - ) -} - # A server that we expect to run for some time class openstack_server ($iptables_public_tcp_ports) { class { 'openstack_template': diff --git a/manifests/site.pp b/manifests/site.pp index 6e53974e15..1871f4b200 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -433,3 +433,14 @@ node /^oneiric.*\.slave\.openstack\.org$/ { } } +# bare-bones slaves spun up by jclouds. Specifically need to not set ssh +# login limits, because it screws up jclouds provisioning +node /^.*\.jclouds\.openstack\.org$/ { + + include openstack_base + + class { 'jenkins_slave': + ssh_key => "", + user => false + } +} diff --git a/manifests/stackforge.pp b/manifests/stackforge.pp index 2d28336704..c277e0ec26 100644 --- a/manifests/stackforge.pp +++ b/manifests/stackforge.pp @@ -88,3 +88,14 @@ node /^build.*\.slave\.stackforge\.org$/ { include stackforge_jenkins_slave } +# bare-bones slaves spun up by jclouds. Specifically need to not set ssh +# login limits, because it screws up jclouds provisioning +node /^.*\.jclouds\.stackforge\.org$/ { + + include openstack_base + + class { 'jenkins_slave': + ssh_key => "", + user => false + } +} diff --git a/modules/jenkins_slave/manifests/init.pp b/modules/jenkins_slave/manifests/init.pp index 0cb84d19a8..d1823968e5 100644 --- a/modules/jenkins_slave/manifests/init.pp +++ b/modules/jenkins_slave/manifests/init.pp @@ -1,18 +1,11 @@ -class jenkins_slave($ssh_key, $sudo = false, $bare = false) { +class jenkins_slave($ssh_key, $sudo = false, $bare = false, $user = true) { - jenkinsuser { "jenkins": - ensure => present, - sudo => $sudo, - ssh_key => "${ssh_key}" - } - - slavecirepo { "openstack-ci": - ensure => absent, - require => [ Package[git], File[jenkinshome] ], - } - - apt::ppa { "ppa:openstack-ci/build-depends": - ensure => absent + if ($user == true) { + jenkinsuser { "jenkins": + ensure => present, + sudo => $sudo, + ssh_key => "${ssh_key}" + } } # Packages that all jenkins slaves need @@ -92,14 +85,6 @@ class jenkins_slave($ssh_key, $sudo = false, $bare = false) { require => Package[python-pip], } - cron { "updateci": - ensure => absent, - user => jenkins, - minute => "*/15", - command => "cd /home/jenkins/openstack-ci && /usr/bin/git pull -q origin master", - require => [ File[jenkinshome] ], - } - file { 'profilerubygems': name => '/etc/profile.d/rubygems.sh', owner => 'root',