Update openstack_project::base to support Red Hat.
Exclude apt specific resources from running on Red Hat distros. Long term it would be nice to isolate apt specific changes into a common module... but this seems reasonable for now. Change-Id: Iab8f592d6b91eaf0c4f6346fe1d27b388119f880 Reviewed-on: https://review.openstack.org/18905 Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Reviewed-by: Jeremy Stanley <fungi@yuggoth.org> Reviewed-by: James E. Blair <corvus@inaugust.com> Approved: James E. Blair <corvus@inaugust.com> Tested-by: Jenkins
This commit is contained in:
parent
0bdc3b0cf4
commit
3c0bc92e5a
82
modules/jenkins/manifests/params.pp
Normal file
82
modules/jenkins/manifests/params.pp
Normal file
@ -0,0 +1,82 @@
|
||||
# Class: jenkins::params
|
||||
#
|
||||
# This class holds parameters that need to be
|
||||
# accessed by other classes.
|
||||
class jenkins::params {
|
||||
case $::osfamily {
|
||||
'Redhat': {
|
||||
#yum groupinstall "Development Tools"
|
||||
# common packages
|
||||
$jdk_package = 'java-1.7.0-openjdk'
|
||||
$ccache_package = 'ccache'
|
||||
$python_netaddr_package = 'python-netaddr'
|
||||
# packages needed by slaves
|
||||
$asciidoc_package = 'asciidoc'
|
||||
$curl_package = 'curl'
|
||||
$docbook_xml_package = 'docbook-style-xsl'
|
||||
$docbook5_xml_package = 'docbook5-schemas'
|
||||
$docbook5_xsl_package = 'docbook5-style-xsl'
|
||||
$firefox_package = 'firefox'
|
||||
$mod_wsgi_package = 'mod_wsgi'
|
||||
$libcurl_dev_package = 'libcurl-devel'
|
||||
$ldap_dev_package = 'openldap-devel'
|
||||
$mysql_dev_package = 'mysql-devel'
|
||||
$nspr_dev_package = 'nspr-devel'
|
||||
$sqlite_dev_package = 'sqlite-devel'
|
||||
$libxml2_package = 'libxml2'
|
||||
$libxml2_dev_package = 'libxml2-devel'
|
||||
$libxslt_dev_package = 'libxslt-devel'
|
||||
# FIXME: No Maven packages on RHEL
|
||||
#$maven_package = 'maven'
|
||||
$pandoc_package = 'pandoc'
|
||||
$pkgconfig_package = 'pkgconfig'
|
||||
$pyflakes_package = 'pyflakes'
|
||||
$python_libvirt_package = 'libvirt-python'
|
||||
$python_zmq_package = 'python-zmq'
|
||||
# FIXME: No Python3 packages on RHEL
|
||||
#$python3_dev_package = 'python3-devel'
|
||||
$rubygems_package = 'rubygems'
|
||||
$sqlite_package = 'sqlite'
|
||||
$unzip_package = 'unzip'
|
||||
$xslt_package = 'libxslt'
|
||||
$xvfb_package = 'xorg-x11-server-Xvfb'
|
||||
}
|
||||
'Debian', 'Ubuntu': {
|
||||
# common packages
|
||||
$jdk_package = 'default-jdk'
|
||||
$ccache_package = 'ccache'
|
||||
$python_netaddr_package = 'python-netaddr'
|
||||
# packages needed by slaves
|
||||
$asciidoc_package = 'asciidoc'
|
||||
$curl_package = 'curl'
|
||||
$docbook_xml_package = 'docbook-xml'
|
||||
$docbook5_xml_package = 'docbook5-xml'
|
||||
$docbook5_xsl_package = 'docbook-xsl'
|
||||
$firefox_package = 'firefox'
|
||||
$mod_wsgi_package = 'libapache2-mod-wsgi'
|
||||
$libcurl_dev_package = 'libcurl4-gnutls-dev'
|
||||
$ldap_dev_package = 'libldap2-dev'
|
||||
$mysql_dev_package = 'libmysqlclient-dev'
|
||||
$nspr_dev_package = 'libnspr4-dev'
|
||||
$sqlite_dev_package = 'libsqlite3-dev'
|
||||
$libxml2_package = 'libxml2-utils'
|
||||
$libxml2_dev_package = 'libxml2-dev'
|
||||
$libxslt_dev_package = 'libxslt1-dev'
|
||||
$maven_package = 'maven2'
|
||||
$pandoc_package = 'pandoc'
|
||||
$pkgconfig_package = 'pkg-config'
|
||||
$pyflakes_package = 'pyflakes'
|
||||
$python_libvirt_package = 'python-libvirt'
|
||||
$python_zmq_package = 'python-zmq'
|
||||
$python3_dev_package = 'python3-all-dev'
|
||||
$rubygems_package = 'rubygems'
|
||||
$sqlite_package = 'sqlite3'
|
||||
$unzip_package = 'unzip'
|
||||
$xslt_package = 'xsltproc'
|
||||
$xvfb_package = 'xvfb'
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily: ${::osfamily} The 'jenkins' module only supports osfamily Ubuntu or Redhat(slaves only).")
|
||||
}
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ class jenkins::slave(
|
||||
) {
|
||||
|
||||
include pip
|
||||
include jenkins::params
|
||||
|
||||
if ($user == true) {
|
||||
class { 'jenkins::jenkinsuser':
|
||||
@ -19,44 +20,39 @@ class jenkins::slave(
|
||||
|
||||
# Packages that all jenkins slaves need
|
||||
$common_packages = [
|
||||
'default-jdk', # jdk for building java jobs
|
||||
'build-essential',
|
||||
'ccache',
|
||||
'python-netaddr', # Needed for devstack address_in_net()
|
||||
$::jenkins::params::jdk_package, # jdk for building java jobs
|
||||
$::jenkins::params::ccache_package,
|
||||
$::jenkins::params::python_netaddr_package, # Needed for devstack address_in_net()
|
||||
]
|
||||
|
||||
# Packages that most jenkins slaves (eg, unit test runners) need
|
||||
$standard_packages = [
|
||||
'asciidoc', # for building gerrit/building openstack docs
|
||||
'curl',
|
||||
'docbook-xml', # for building openstack docs
|
||||
'docbook5-xml', # for building openstack docs
|
||||
'docbook-xsl', # for building openstack docs
|
||||
'firefox', # for selenium tests
|
||||
'libapache2-mod-wsgi',
|
||||
'libcurl4-gnutls-dev',
|
||||
'libldap2-dev',
|
||||
'libmysqlclient-dev',
|
||||
'libnspr4-dev', # for spidermonkey, used by ceilometer
|
||||
'libsasl2-dev', # for keystone ldap auth integration
|
||||
'libsqlite3-dev',
|
||||
'libxml2-dev',
|
||||
'libxml2-utils', # for xmllint, need for wadl
|
||||
'libxslt1-dev',
|
||||
'maven2',
|
||||
'mercurial',
|
||||
'pandoc', #for docs, markdown->docbook, bug 924507
|
||||
'pkg-config', # for spidermonkey, used by ceilometer
|
||||
'pyflakes',
|
||||
'python-libvirt',
|
||||
'python-subunit', # for subunit2html.py
|
||||
'python-zmq', # zeromq unittests (not pip installable)
|
||||
'python3-all-dev',
|
||||
'rubygems',
|
||||
'sqlite3',
|
||||
'unzip',
|
||||
'xsltproc', # for building openstack docs
|
||||
'xvfb', # for selenium tests
|
||||
$::jenkins::params::asciidoc_package, # for building gerrit/building openstack docs
|
||||
$::jenkins::params::curl_package,
|
||||
$::jenkins::params::docbook_xml_package, # for building openstack docs
|
||||
$::jenkins::params::docbook5_xml_package, # for building openstack docs
|
||||
$::jenkins::params::docbook5_xsl_package, # for building openstack docs
|
||||
$::jenkins::params::firefox_package, # for selenium tests
|
||||
$::jenkins::params::mod_wsgi_package,
|
||||
$::jenkins::params::libcurl_dev_package,
|
||||
$::jenkins::params::ldap_dev_package,
|
||||
$::jenkins::params::libsasl_dev, # for keystone ldap auth integration
|
||||
$::jenkins::params::mysql_dev_package,
|
||||
$::jenkins::params::nspr_dev_package, # for spidermonkey, used by ceilometer
|
||||
$::jenkins::params::sqlite_dev_package,
|
||||
$::jenkins::params::libxml2_package,
|
||||
$::jenkins::params::libxml2_dev_package, # for xmllint, need for wadl
|
||||
$::jenkins::params::libxslt_dev_package,
|
||||
$::jenkins::params::pandoc_package, #for docs, markdown->docbook, bug 924507
|
||||
$::jenkins::params::pkgconfig_package, # for spidermonkey, used by ceilometer
|
||||
$::jenkins::params::pyflakes_package,
|
||||
$::jenkins::params::python_libvirt_package,
|
||||
$::jenkins::params::python_zmq_package, # zeromq unittests (not pip installable)
|
||||
$::jenkins::params::rubygems_package,
|
||||
$::jenkins::params::sqlite_package,
|
||||
$::jenkins::params::unzip_package,
|
||||
$::jenkins::params::xslt_package, # for building openstack docs
|
||||
$::jenkins::params::xvfb_package, # for selenium tests
|
||||
]
|
||||
|
||||
if ($bare == false) {
|
||||
@ -69,6 +65,31 @@ class jenkins::slave(
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
if ($::operatingsystem == 'Redhat') {
|
||||
|
||||
exec { 'yum Group Install':
|
||||
unless => '/usr/bin/yum grouplist "Development tools" | /bin/grep "^Installed Groups"',
|
||||
command => '/usr/bin/yum -y groupinstall "Development tools"',
|
||||
}
|
||||
|
||||
}
|
||||
if ($::operatingsystem == 'Ubuntu') {
|
||||
|
||||
# install build-essential package group
|
||||
package { 'build-essential':
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
package { $::jenkins::params::maven_package:
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
package { $::jenkins::params::python3_dev_package:
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($bare == false) {
|
||||
$gem_packages = [
|
||||
'puppet-lint',
|
||||
@ -84,6 +105,7 @@ class jenkins::slave(
|
||||
|
||||
# Packages that need to be installed from pip
|
||||
$pip_packages = [
|
||||
'python-subunit',
|
||||
'setuptools-git',
|
||||
'tox',
|
||||
]
|
||||
@ -181,17 +203,23 @@ class jenkins::slave(
|
||||
|
||||
# Temporary for debugging glance launch problem
|
||||
# https://lists.launchpad.net/openstack/msg13381.html
|
||||
file { '/etc/sysctl.d/10-ptrace.conf':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/jenkins/10-ptrace.conf',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0444',
|
||||
# NOTE(dprince): ubuntu only as RHEL6 doesn't have sysctl.d yet
|
||||
if ($::operatingsystem == 'Ubuntu') {
|
||||
|
||||
file { '/etc/sysctl.d/10-ptrace.conf':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/jenkins/10-ptrace.conf',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0444',
|
||||
}
|
||||
|
||||
exec { 'ptrace sysctl':
|
||||
subscribe => File['/etc/sysctl.d/10-ptrace.conf'],
|
||||
refreshonly => true,
|
||||
command => '/sbin/sysctl -p /etc/sysctl.d/10-ptrace.conf',
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
exec { 'ptrace sysctl':
|
||||
subscribe => File['/etc/sysctl.d/10-ptrace.conf'],
|
||||
refreshonly => true,
|
||||
command => '/sbin/sysctl -p /etc/sysctl.d/10-ptrace.conf',
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,9 @@ class openstack_project::base(
|
||||
$certname = $::fqdn,
|
||||
$install_users = true
|
||||
) {
|
||||
include apt
|
||||
if ($::operatingsystem == 'Ubuntu') {
|
||||
include apt
|
||||
}
|
||||
include openstack_project::users
|
||||
include sudoers
|
||||
|
||||
@ -61,30 +63,34 @@ class openstack_project::base(
|
||||
}
|
||||
|
||||
# Use upstream puppet and pin to version 2.7.*
|
||||
apt::source { 'puppetlabs':
|
||||
location => 'http://apt.puppetlabs.com',
|
||||
repos => 'main',
|
||||
key => '4BD6EC30',
|
||||
key_server => 'pgp.mit.edu',
|
||||
if ($::operatingsystem == 'Ubuntu') {
|
||||
apt::source { 'puppetlabs':
|
||||
location => 'http://apt.puppetlabs.com',
|
||||
repos => 'main',
|
||||
key => '4BD6EC30',
|
||||
key_server => 'pgp.mit.edu',
|
||||
}
|
||||
|
||||
file { '/etc/apt/preferences.d/00-puppet.pref':
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0444',
|
||||
source => 'puppet:///modules/openstack_project/00-puppet.pref',
|
||||
replace => true,
|
||||
}
|
||||
|
||||
file { '/etc/puppet/puppet.conf':
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0444',
|
||||
content => template('openstack_project/puppet.conf.erb'),
|
||||
replace => true,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
file { '/etc/apt/preferences.d/00-puppet.pref':
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0444',
|
||||
source => 'puppet:///modules/openstack_project/00-puppet.pref',
|
||||
replace => true,
|
||||
}
|
||||
|
||||
file { '/etc/puppet/puppet.conf':
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0444',
|
||||
content => template('openstack_project/puppet.conf.erb'),
|
||||
replace => true,
|
||||
}
|
||||
}
|
||||
|
||||
# vim:sw=2:ts=2:expandtab:textwidth=79
|
||||
|
Loading…
x
Reference in New Issue
Block a user