puppet-odsreg/manifests/init.pp

115 lines
2.4 KiB
Puppet

# == Class: odsreg
#
# Full description of class odsreg here.
#
# === Parameters
#
# [*sample_parameter*]
# Explanation of what this parameter affects and what it defaults to.
#
class odsreg(
$vhost_name = $::fqdn,
) {
include ::httpd
include ::httpd::mod::wsgi
include ::pip
package { 'django':
ensure => '1.4',
provider => openstack_pip,
}
package { 'python-openid':
ensure => present,
provider => openstack_pip,
}
package { 'django-openid-auth':
ensure => present,
provider => openstack_pip,
}
user { 'odsreg':
ensure => present,
home => '/home/odsreg',
shell => '/bin/bash',
gid => 'odsreg',
managehome => true,
require => Group['odsreg'],
}
group { 'odsreg':
ensure => present,
}
# for the local wsgi app
file { '/var/www/odsreg':
ensure => directory,
mode => '0755',
}
# for our data storage
file { '/var/lib/odsreg':
ensure => directory,
mode => '0755',
owner => 'www-data',
}
# a plain git checkout
vcsrepo { '/opt/odsreg':
ensure => latest,
provider => git,
revision => 'master',
source => 'https://git.openstack.org/openstack-infra/odsreg',
}
file { '/usr/local/odsreg':
ensure => directory,
}
# "install" a copy of it
file { '/usr/local/odsreg/odsreg':
ensure => directory,
owner => 'root',
group => 'root',
source => '/opt/odsreg',
subscribe => Vcsrepo['/opt/odsreg'],
recurse => true,
}
file { '/usr/local/odsreg/local_settings.py':
ensure => present,
content => template('odsreg/local_settings.py.erb'),
mode => '0444',
owner => 'root',
group => 'root',
}
exec { 'odsreg_sync_db':
user => 'www-data',
command => 'python /usr/local/odsreg/odsreg/manage.py syncdb --noinput',
cwd => '/usr/local/odsreg',
path => '/bin:/usr/bin',
onlyif => 'test ! -f /var/lib/odsreg/summit.db',
require => [
File['/usr/local/odsreg/local_settings.py'],
File['/var/lib/odsreg'],
],
}
file { '/var/www/odsreg/django.wsgi':
ensure => present,
source => 'puppet:///modules/odsreg/django.wsgi',
mode => '0555',
owner => 'root',
group => 'root',
}
::httpd::vhost { $vhost_name:
port => 80,
priority => '50',
docroot => 'MEANINGLESS_ARGUMENT',
template => 'odsreg/odsreg.vhost.erb',
}
}