system-config/modules/jenkins_slave/manifests/init.pp
David Shrewsbury 781200ac4d Adds ccache to jenkins slaves.
Creates symlinks in /usr/local/bin to automatically use ccache
and also fix some spacing issues. Symlink files depend on ccache
to prevent dangling links.

Addresses bug 989724.

Change-Id: I889ef377efd9a512dfec78c3c417931a764e514c
2012-05-01 07:49:05 -04:00

154 lines
3.8 KiB
Puppet

class jenkins_slave($ssh_key) {
jenkinsuser { "jenkins":
ensure => present,
ssh_key => "${ssh_key}"
}
slavecirepo { "openstack-ci":
ensure => present,
require => [ Package[git], File[jenkinshome] ],
}
devstackrepo { "devstack":
ensure => present,
require => [ Package[git], File[jenkinshome] ],
}
apt::ppa { "ppa:openstack-ci/build-depends":
ensure => present
}
$packages = ["apache2",
"asciidoc", # for building gerrit
"autoconf",
"automake",
"build-essential",
"ccache",
"cdbs",
"curl",
"debootstrap",
"devscripts",
"dnsmasq-base",
"ebtables",
"gawk",
"graphviz",
"iptables",
"kpartx",
"kvm",
"libapache2-mod-wsgi",
"libcurl4-gnutls-dev",
"libldap2-dev",
"libmysqlclient-dev",
"libsasl2-dev",
"libsqlite3-dev",
"libtool",
"libvirt-bin",
"libxml2-dev",
"libxslt1-dev",
"lxc",
"maven2",
"mercurial", # needed by pip bundle
"default-jdk", # jdk for building java jobs
"pandoc", #for docs, markdown->docbook, bug 924507
"parted",
"pep8",
"psmisc",
"pylint",
"python-all-dev",
"python-cheetah",
"python-libvirt",
"python-libxml2",
"python-pip",
"python-sphinx",
"python-unittest2",
"python-vm-builder",
"python3-all-dev",
"screen",
"socat",
"sqlite3",
"swig",
"unzip",
"vlan",
"wget"]
package { $packages:
ensure => "latest",
require => Apt::Ppa["ppa:openstack-ci/build-depends"],
}
package { "apache-libcloud":
ensure => latest,
provider => pip,
require => Package[python-pip]
}
package { "git-review":
ensure => latest,
provider => pip,
require => Package[python-pip],
}
cron { "updateci":
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',
group => 'root',
mode => 644,
ensure => 'present',
source => [
"puppet:///modules/jenkins_slave/rubygems.sh",
],
}
cron { "tmpreaper":
user => jenkins,
ensure => 'absent',
}
file { 'jenkinslogs':
name => '/var/log/jenkins/tmpreaper.log*',
ensure => 'absent',
}
file { 'jenkinslogdir':
name => '/var/log/jenkins',
ensure => 'absent',
force => true,
}
file { 'ccachegcc':
name => '/usr/local/bin/gcc',
ensure => link,
target => '/usr/bin/ccache',
require => Package['ccache'],
}
file { 'ccacheg++':
name => '/usr/local/bin/g++',
ensure => link,
target => '/usr/bin/ccache',
require => Package['ccache'],
}
file { 'ccachecc':
name => '/usr/local/bin/cc',
ensure => link,
target => '/usr/bin/ccache',
require => Package['ccache'],
}
file { 'ccachec++':
name => '/usr/local/bin/c++',
ensure => link,
target => '/usr/bin/ccache',
require => Package['ccache'],
}
}