system-config/modules/zuul/manifests/init.pp
James E. Blair 2b44017725 Stop installing pip packages on zuul.
Let setup.py install handle it instead.

Change-Id: I7f143dcc4c19af267ef820973184c45e2020a3de
Reviewed-on: https://review.openstack.org/25551
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
2013-03-27 18:52:25 +00:00

179 lines
3.6 KiB
Puppet

# == Class: zuul
#
class zuul (
$vhost_name = $::fqdn,
$serveradmin = "webmaster@${::fqdn}",
$jenkins_server = '',
$jenkins_user = '',
$jenkins_apikey = '',
$gerrit_server = '',
$gerrit_user = '',
$zuul_ssh_private_key = '',
$url_pattern = '',
$status_url = "https://${::fqdn}/",
$git_source_repo = 'https://github.com/openstack-infra/zuul.git',
$push_change_refs = false,
$statsd_host = ''
) {
include apache
$packages = [
'python-webob',
'python-lockfile',
'python-paste',
]
package { $packages:
ensure => present,
}
# A lot of things need yaml, be conservative requiring this package to avoid
# conflicts with other modules.
if ! defined(Package['python-yaml']) {
package { 'python-yaml':
ensure => present,
}
}
if ! defined(Package['python-paramiko']) {
package { 'python-paramiko':
ensure => present,
}
}
if ! defined(Package['python-daemon']) {
package { 'python-daemon':
ensure => present,
}
}
user { 'zuul':
ensure => present,
home => '/home/zuul',
shell => '/bin/bash',
gid => 'zuul',
managehome => true,
require => Group['zuul'],
}
group { 'zuul':
ensure => present,
}
vcsrepo { '/opt/zuul':
ensure => latest,
provider => git,
revision => 'master',
source => $git_source_repo,
}
exec { 'install_zuul' :
command => 'python setup.py install',
cwd => '/opt/zuul',
path => '/bin:/usr/bin',
refreshonly => true,
subscribe => Vcsrepo['/opt/zuul'],
}
file { '/etc/zuul':
ensure => directory,
}
# TODO: We should put in notify either Service['zuul'] or Exec['zuul-reload']
# at some point, but that still has some problems.
file { '/etc/zuul/zuul.conf':
ensure => present,
owner => 'zuul',
mode => '0400',
content => template('zuul/zuul.conf.erb'),
require => [
File['/etc/zuul'],
User['zuul'],
],
}
file { '/etc/default/zuul':
ensure => present,
mode => '0444',
content => template('zuul/zuul.default.erb'),
}
file { '/var/log/zuul':
ensure => directory,
owner => 'zuul',
require => User['zuul'],
}
file { '/var/run/zuul':
ensure => directory,
owner => 'zuul',
require => User['zuul'],
}
file { '/var/lib/zuul':
ensure => directory,
owner => 'zuul',
require => User['zuul'],
}
file { '/var/lib/zuul/git':
ensure => directory,
owner => 'zuul',
require => File['/var/lib/zuul'],
}
file { '/var/lib/zuul/ssh':
ensure => directory,
owner => 'zuul',
group => 'zuul',
mode => '0500',
require => File['/var/lib/zuul'],
}
file { '/var/lib/zuul/ssh/id_rsa':
owner => 'zuul',
group => 'zuul',
mode => '0400',
require => File['/var/lib/zuul/ssh'],
content => $zuul_ssh_private_key,
}
file { '/etc/init.d/zuul':
ensure => present,
owner => 'root',
group => 'root',
mode => '0555',
source => 'puppet:///modules/zuul/zuul.init',
}
exec { 'zuul-reload':
command => '/etc/init.d/zuul reload',
require => File['/etc/init.d/zuul'],
refreshonly => true,
}
service { 'zuul':
name => 'zuul',
enable => true,
hasrestart => true,
require => File['/etc/init.d/zuul'],
}
apache::vhost { $vhost_name:
port => 443,
docroot => 'MEANINGLESS ARGUMENT',
priority => '50',
template => 'zuul/zuul.vhost.erb',
}
a2mod { 'rewrite':
ensure => present,
}
a2mod { 'proxy':
ensure => present,
}
a2mod { 'proxy_http':
ensure => present,
}
}