Andrew Hutchings 546136ce52 Cleanup puppet modules
Make files notify services to restart when changed
Improve planet's cron, spit out a date/time and append instead of overwrite log

Change-Id: I0c2ee96c4aff5512a891c49b8b2df5c20c9cab44
2012-02-06 16:32:34 +00:00

81 lines
2.1 KiB
Puppet

define lodgeit::site($port, $image="") {
file { "/etc/nginx/sites-available/${name}":
ensure => 'present',
content => template("lodgeit/nginx.erb"),
replace => 'true',
require => Package[nginx],
notify => Service[nginx]
}
file { "/etc/nginx/sites-enabled/${name}":
ensure => link,
target => "/etc/nginx/sites-available/${name}",
require => Package[nginx]
}
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",
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 -am \"Updating DB backup for ${name}\""
}
service { "${name}-paste":
provider => upstart,
ensure => running,
require => [Service["drizzle", "nginx"], Exec["create_database_${name}"]]
}
}