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 pip
|
||||||
|
include jenkins::params
|
||||||
|
|
||||||
if ($user == true) {
|
if ($user == true) {
|
||||||
class { 'jenkins::jenkinsuser':
|
class { 'jenkins::jenkinsuser':
|
||||||
@ -19,44 +20,39 @@ class jenkins::slave(
|
|||||||
|
|
||||||
# Packages that all jenkins slaves need
|
# Packages that all jenkins slaves need
|
||||||
$common_packages = [
|
$common_packages = [
|
||||||
'default-jdk', # jdk for building java jobs
|
$::jenkins::params::jdk_package, # jdk for building java jobs
|
||||||
'build-essential',
|
$::jenkins::params::ccache_package,
|
||||||
'ccache',
|
$::jenkins::params::python_netaddr_package, # Needed for devstack address_in_net()
|
||||||
'python-netaddr', # Needed for devstack address_in_net()
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Packages that most jenkins slaves (eg, unit test runners) need
|
# Packages that most jenkins slaves (eg, unit test runners) need
|
||||||
$standard_packages = [
|
$standard_packages = [
|
||||||
'asciidoc', # for building gerrit/building openstack docs
|
$::jenkins::params::asciidoc_package, # for building gerrit/building openstack docs
|
||||||
'curl',
|
$::jenkins::params::curl_package,
|
||||||
'docbook-xml', # for building openstack docs
|
$::jenkins::params::docbook_xml_package, # for building openstack docs
|
||||||
'docbook5-xml', # for building openstack docs
|
$::jenkins::params::docbook5_xml_package, # for building openstack docs
|
||||||
'docbook-xsl', # for building openstack docs
|
$::jenkins::params::docbook5_xsl_package, # for building openstack docs
|
||||||
'firefox', # for selenium tests
|
$::jenkins::params::firefox_package, # for selenium tests
|
||||||
'libapache2-mod-wsgi',
|
$::jenkins::params::mod_wsgi_package,
|
||||||
'libcurl4-gnutls-dev',
|
$::jenkins::params::libcurl_dev_package,
|
||||||
'libldap2-dev',
|
$::jenkins::params::ldap_dev_package,
|
||||||
'libmysqlclient-dev',
|
$::jenkins::params::libsasl_dev, # for keystone ldap auth integration
|
||||||
'libnspr4-dev', # for spidermonkey, used by ceilometer
|
$::jenkins::params::mysql_dev_package,
|
||||||
'libsasl2-dev', # for keystone ldap auth integration
|
$::jenkins::params::nspr_dev_package, # for spidermonkey, used by ceilometer
|
||||||
'libsqlite3-dev',
|
$::jenkins::params::sqlite_dev_package,
|
||||||
'libxml2-dev',
|
$::jenkins::params::libxml2_package,
|
||||||
'libxml2-utils', # for xmllint, need for wadl
|
$::jenkins::params::libxml2_dev_package, # for xmllint, need for wadl
|
||||||
'libxslt1-dev',
|
$::jenkins::params::libxslt_dev_package,
|
||||||
'maven2',
|
$::jenkins::params::pandoc_package, #for docs, markdown->docbook, bug 924507
|
||||||
'mercurial',
|
$::jenkins::params::pkgconfig_package, # for spidermonkey, used by ceilometer
|
||||||
'pandoc', #for docs, markdown->docbook, bug 924507
|
$::jenkins::params::pyflakes_package,
|
||||||
'pkg-config', # for spidermonkey, used by ceilometer
|
$::jenkins::params::python_libvirt_package,
|
||||||
'pyflakes',
|
$::jenkins::params::python_zmq_package, # zeromq unittests (not pip installable)
|
||||||
'python-libvirt',
|
$::jenkins::params::rubygems_package,
|
||||||
'python-subunit', # for subunit2html.py
|
$::jenkins::params::sqlite_package,
|
||||||
'python-zmq', # zeromq unittests (not pip installable)
|
$::jenkins::params::unzip_package,
|
||||||
'python3-all-dev',
|
$::jenkins::params::xslt_package, # for building openstack docs
|
||||||
'rubygems',
|
$::jenkins::params::xvfb_package, # for selenium tests
|
||||||
'sqlite3',
|
|
||||||
'unzip',
|
|
||||||
'xsltproc', # for building openstack docs
|
|
||||||
'xvfb', # for selenium tests
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if ($bare == false) {
|
if ($bare == false) {
|
||||||
@ -69,6 +65,31 @@ class jenkins::slave(
|
|||||||
ensure => present,
|
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) {
|
if ($bare == false) {
|
||||||
$gem_packages = [
|
$gem_packages = [
|
||||||
'puppet-lint',
|
'puppet-lint',
|
||||||
@ -84,6 +105,7 @@ class jenkins::slave(
|
|||||||
|
|
||||||
# Packages that need to be installed from pip
|
# Packages that need to be installed from pip
|
||||||
$pip_packages = [
|
$pip_packages = [
|
||||||
|
'python-subunit',
|
||||||
'setuptools-git',
|
'setuptools-git',
|
||||||
'tox',
|
'tox',
|
||||||
]
|
]
|
||||||
@ -181,17 +203,23 @@ class jenkins::slave(
|
|||||||
|
|
||||||
# Temporary for debugging glance launch problem
|
# Temporary for debugging glance launch problem
|
||||||
# https://lists.launchpad.net/openstack/msg13381.html
|
# https://lists.launchpad.net/openstack/msg13381.html
|
||||||
file { '/etc/sysctl.d/10-ptrace.conf':
|
# NOTE(dprince): ubuntu only as RHEL6 doesn't have sysctl.d yet
|
||||||
ensure => present,
|
if ($::operatingsystem == 'Ubuntu') {
|
||||||
source => 'puppet:///modules/jenkins/10-ptrace.conf',
|
|
||||||
owner => 'root',
|
file { '/etc/sysctl.d/10-ptrace.conf':
|
||||||
group => 'root',
|
ensure => present,
|
||||||
mode => '0444',
|
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,
|
$certname = $::fqdn,
|
||||||
$install_users = true
|
$install_users = true
|
||||||
) {
|
) {
|
||||||
include apt
|
if ($::operatingsystem == 'Ubuntu') {
|
||||||
|
include apt
|
||||||
|
}
|
||||||
include openstack_project::users
|
include openstack_project::users
|
||||||
include sudoers
|
include sudoers
|
||||||
|
|
||||||
@ -61,30 +63,34 @@ class openstack_project::base(
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Use upstream puppet and pin to version 2.7.*
|
# Use upstream puppet and pin to version 2.7.*
|
||||||
apt::source { 'puppetlabs':
|
if ($::operatingsystem == 'Ubuntu') {
|
||||||
location => 'http://apt.puppetlabs.com',
|
apt::source { 'puppetlabs':
|
||||||
repos => 'main',
|
location => 'http://apt.puppetlabs.com',
|
||||||
key => '4BD6EC30',
|
repos => 'main',
|
||||||
key_server => 'pgp.mit.edu',
|
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
|
# vim:sw=2:ts=2:expandtab:textwidth=79
|
||||||
|
Loading…
x
Reference in New Issue
Block a user