234804ed84
Change-Id: Iec09a46b4c3a540154d962989dcf02b1a4605b52 Reviewed-on: https://review.openstack.org/14825 Reviewed-by: Paul Belanger <paul.belanger@polybeacon.com> Reviewed-by: Monty Taylor <mordred@inaugust.com> Approved: James E. Blair <corvus@inaugust.com> Reviewed-by: James E. Blair <corvus@inaugust.com> Tested-by: Jenkins
88 lines
2.3 KiB
Puppet
88 lines
2.3 KiB
Puppet
# == Define: site
|
|
#
|
|
|
|
define lodgeit::site(
|
|
$port,
|
|
$vhost_name="paste.${name}.org",
|
|
$image='') {
|
|
|
|
include remove_nginx
|
|
|
|
apache::vhost::proxy { $vhost_name:
|
|
port => 80,
|
|
dest => "http://localhost:${port}",
|
|
require => File["/srv/lodgeit/${name}"],
|
|
}
|
|
|
|
file { "/etc/init/${name}-paste.conf":
|
|
ensure => present,
|
|
content => template('lodgeit/upstart.erb'),
|
|
replace => true,
|
|
require => Package['nginx'],
|
|
notify => Service["${name}-paste"],
|
|
}
|
|
|
|
file { "/srv/lodgeit/${name}":
|
|
ensure => directory,
|
|
recurse => true,
|
|
source => '/tmp/lodgeit-main',
|
|
}
|
|
|
|
if $image != '' {
|
|
file { "/srv/lodgeit/${name}/lodgeit/static/${image}":
|
|
ensure => present,
|
|
source => "puppet:///lodgeit/${image}",
|
|
}
|
|
}
|
|
|
|
file { "/srv/lodgeit/${name}/manage.py":
|
|
ensure => present,
|
|
mode => '0755',
|
|
replace => true,
|
|
content => template('lodgeit/manage.py.erb'),
|
|
notify => Service["${name}-paste"],
|
|
}
|
|
|
|
file { "/srv/lodgeit/${name}/lodgeit/views/layout.html":
|
|
ensure => present,
|
|
replace => true,
|
|
content => template('lodgeit/layout.html.erb'),
|
|
}
|
|
|
|
exec { "create_database_${name}":
|
|
command => "drizzle --user=root \
|
|
-e \"create database if not exists ${name};\"",
|
|
path => '/bin:/usr/bin',
|
|
unless => 'drizzle --disable-column-names -r --batch \
|
|
-e "show databases like \'openstack\'" | grep -q openstack',
|
|
require => Service['drizzle'],
|
|
}
|
|
|
|
# create a backup .sql file in git
|
|
|
|
exec { "create_db_backup_${name}":
|
|
command => "touch ${name}.sql && git add ${name}.sql && git commit \
|
|
-am \"Initial commit for ${name}\"",
|
|
cwd => '/var/backups/lodgeit_db/',
|
|
path => '/bin:/usr/bin',
|
|
onlyif => "test ! -f /var/backups/lodgeit_db/${name}.sql",
|
|
}
|
|
|
|
# cron to take a backup and commit it in git
|
|
|
|
cron { "update_backup_${name}":
|
|
user => root,
|
|
hour => 6,
|
|
minute => 23,
|
|
command => "sleep $((RANDOM\\%60+60)) && cd /var/backups/lodgeit_db \
|
|
&& drizzledump -uroot ${name} > ${name}.sql \
|
|
&& git commit -qam \"Updating DB backup for ${name}\""
|
|
}
|
|
|
|
service { "${name}-paste":
|
|
ensure => running,
|
|
provider => upstart,
|
|
require => [Service['drizzle', 'nginx'], Exec["create_database_${name}"]],
|
|
}
|
|
}
|