Files
limetime/puppet/manifests/vagrant.pp

59 lines
1.9 KiB
Puppet

import "classes/*.pp"
include apt
include python
include nginx
include mysql
include supervisor
$database = "mysql://limetime:randompassword1234@localhost/limetime"
mysql::database{'limetime':
user => 'limetime',
password => 'randompassword1234'
}
python::venv {'limetime':
path => "/usr/local/${name}-venv",
requirements => '/vagrant/requirements.txt',
}
file{'/usr/local/bin/limetime-init.sh':
content => "#!/bin/bash\n. /usr/local/main-venv/bin/activate\nDATABASE_URL=$database /usr/bin/env python manage.py run_gunicorn -c gunicorn_config --preload",
ensure => present,
mode => 755,
}
supervisor::program {'limetime':
command => '/usr/local/bin/limetime-init.sh',
directory => '/vagrant/app/',
user => 'vagrant',
require => [File['/usr/local/bin/limetime-init.sh'], Python::Venv['limetime'], Mysql::Database['limetime']],
}
nginx::gunicorn { 'limetime':
ensure => enabled,
host => '_',
port => 3322,
root => '/vagrant/root/',
static => '/vagrant/static/',
}
exec{'limetime-collectstatic':
command => "/usr/bin/env bash -c 'source /usr/local/main-venv/bin/activate; cd /vagrant/app;DATABASE_URL=$database /usr/bin/env python ./manage.py collectstatic --noinput'",
path => '/usr/local/bin:/usr/bin:/bin',
require => Python::Venv['limetime'],
}
exec{'limetime-syncdb':
command => "/usr/bin/env bash -c 'source /usr/local/main-venv/bin/activate; cd /vagrant/app;DATABASE_URL=$database /usr/bin/env python ./manage.py syncdb --all --noinput'",
path => '/usr/local/bin:/usr/bin:/bin',
require => [Python::Venv['limetime'], Mysql::Database['limetime']],
}
exec{'limetime-migrationfake':
command => "/usr/bin/env bash -c 'source /usr/local/main-venv/bin/activate; cd /vagrant/app;DATABASE_URL=$database /usr/bin/env python ./manage.py migrate --fake --noinput'",
path => '/usr/local/bin:/usr/bin:/bin',
require => Exec['limetime-syncdb'],
}