7d8c838038
Change-Id: Idd712a8ee5ec81c6b88b7d3e2270dce4da254927 Reviewed-on: https://review.openstack.org/10838 Approved: Monty Taylor <mordred@inaugust.com> Reviewed-by: Monty Taylor <mordred@inaugust.com> Tested-by: Jenkins
76 lines
2.1 KiB
Puppet
76 lines
2.1 KiB
Puppet
define lodgeit::site($vhost_name="paste.$name.org", $port, $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":
|
|
mode => 755,
|
|
replace => true,
|
|
content => template("lodgeit/manage.py.erb"),
|
|
notify => Service["${name}-paste"]
|
|
}
|
|
|
|
file { "/srv/lodgeit/${name}/lodgeit/views/layout.html":
|
|
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 openstack >/dev/null",
|
|
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":
|
|
provider => upstart,
|
|
ensure => running,
|
|
require => [Service["drizzle", "nginx"], Exec["create_database_${name}"]]
|
|
}
|
|
|
|
}
|