Puppet Class: profile::ci::slave::labs::common
- Defined in:
- modules/profile/manifests/ci/slave/labs/common.pp
Overview
SPDX-License-Identifier: Apache-2.0 Common configuration to be applied on any labs Jenkins slave
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'modules/profile/manifests/ci/slave/labs/common.pp', line 4
class profile::ci::slave::labs::common (
Boolean $manage_srv = lookup('profile::ci::slave::labs::common::manage_srv')
) {
# The slaves on labs use the `jenkins-deploy` user which is already
# configured in labs LDAP. Thus, we only need to install the dependencies
# needed by the slave agent, eg the java jre.
include profile::java
# The `deployment-prep` deployment host has ferm rules injected by
# production profiles which bring in ferm rule and enable firewalling. The
# defaulting policy being DROP, we need explicit rules.
include ::profile::ci::firewall::jenkinsagent
# Anything that needs publishing to doc.wikimedia.org relies on rsync to
# fetch files from the agents.
ensure_packages('rsync')
if $manage_srv {
# Need the labs instance extended disk space. T277078.
include profile::wmcs::lvm
include profile::labs::lvm::srv
$require_srv = Mount['/srv']
} else {
$require_srv = undef
}
# base directory
file {
default:
ensure => directory,
owner => 'jenkins-deploy',
group => 'wikidev',
mode => '0775';
['/srv/home']:
owner => 'root',
group => 'root',
mode => '0755',
require => $require_srv;
['/srv/jenkins']:
require => $require_srv;
['/srv/jenkins/cache', '/srv/jenkins/workspace', '/srv/home/jenkins-deploy']: ;
}
git::userconfig { '.gitconfig for jenkins-deploy user':
homedir => '/srv/home/jenkins-deploy',
settings => {
'user' => {
'name' => 'Wikimedia Jenkins Deploy',
'email' => "jenkins-deploy@${::fqdn}",
},
},
require => File['/srv/home/jenkins-deploy'],
}
profile::gerrit::sshkey { 'gerrit': }
}
|