Index: modules/rietveld/manifests/init.pp |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/modules/rietveld/manifests/init.pp |
@@ -0,0 +1,81 @@ |
+class rietveld($domain) inherits private::rietveld { |
+ |
+ include nginx |
+ |
+ nginx::hostconfig {$domain: |
+ content => template('rietveld/site.erb'), |
+ enabled => true |
+ } |
+ |
+ package {['python-django', 'make', 'patch', 'gunicorn']: ensure => present} |
+ |
+ user {'rietveld': |
+ ensure => present, |
+ comment => 'User of the rietveld installation', |
+ home => '/home/rietveld', |
+ managehome => true |
+ } |
+ |
+ exec { "get_rietveld": |
Felix Dahlke
2014/02/07 15:27:36
No space after {, and ' instead of ". Likewise bel
christian
2014/02/07 17:17:21
Done.
|
+ command => "hg clone https://code.google.com/p/django-gae2django/ /home/rietveld/django-gae2django/", |
Felix Dahlke
2014/02/07 15:27:36
' instead of ", likewise various times below. Acco
christian
2014/02/07 17:17:21
Done.
|
+ require => Package['mercurial'], |
+ user => rietveld, |
+ onlyif => "test ! -d /home/rietveld/django-gae2django", |
Felix Dahlke
2014/02/07 15:27:36
This path (/home/rietveld/django-gae2django) is be
christian
2014/02/07 17:17:21
Done.
|
+ path => "/usr/bin:/usr/sbin:/bin:/usr/local/bin", |
Felix Dahlke
2014/02/07 15:27:36
This is repeated below, you can have this above in
christian
2014/02/07 17:17:21
Done.
|
+ #refreshonly => true, |
Felix Dahlke
2014/02/07 15:27:36
Let's remove this if we don't need it. Likewise be
christian
2014/02/07 17:17:21
Done.
|
+ } |
+ |
+ file {'/home/rietveld/django-gae2django/examples/rietveld/Makefile': |
Felix Dahlke
2014/02/07 15:27:36
This path (/home/rietveld/django-gae2django/exampl
christian
2014/02/07 17:17:21
Done.
|
+ ensure => file, |
+ owner => rietveld, |
+ require => Exec['get_rietveld'], |
+ source => 'puppet:///modules/rietveld/Makefile', |
+ } |
+ |
+ file {'/home/rietveld/django-gae2django/examples/rietveld/settings.py': |
+ ensure => file, |
+ owner => rietveld, |
+ require => Exec['get_rietveld'], |
+ source => 'puppet:///modules/rietveld/settings.py', |
+ } |
+ |
+ exec { "install_rietveld": |
+ command => "make all", |
Felix Dahlke
2014/02/07 15:27:36
"all" is not necessary
christian
2014/02/07 17:17:21
Actual it is,see Makefile
default:
@echo "Run 'm
Felix Dahlke
2014/02/07 20:09:45
Ah. Well that's peculiar :)
|
+ cwd => "/home/rietveld/django-gae2django/examples/rietveld", |
+ user => rietveld, |
+ require => [ |
+ File['/home/rietveld/django-gae2django/examples/rietveld/Makefile'], |
Felix Dahlke
2014/02/07 15:27:36
Should be indented just one level deeper than the
christian
2014/02/07 17:17:21
Done.
|
+ File['/home/rietveld/django-gae2django/examples/rietveld/settings.py']], |
+ onlyif => "test ! -f /home/rietveld/django-gae2django/examples/rietveld/dev.db", |
+ path => "/usr/bin:/usr/sbin:/bin:/usr/local/bin", |
+ #refreshonly => true, |
+ } |
+ |
+ file {'/etc/init/rietveld.conf': |
+ ensure => file, |
+ owner => root, |
+ source => 'puppet:///modules/rietveld/rietveld.conf', |
+ notify => Service['rietveld'], |
+ } |
+ |
+ #work around puppets limitation towards upstart |
Felix Dahlke
2014/02/07 15:27:36
This is not really clear, what particular limitati
christian
2014/02/07 17:17:21
It is simple, puppet is not aware of upstart so it
Felix Dahlke
2014/02/07 20:09:45
If Puppet can't do Upstart at all, I don't think t
christian
2014/02/12 14:14:26
Done.
|
+ file { '/etc/init.d/rietveld': |
+ ensure => link, |
+ target => '/lib/init/upstart-job', |
+ require => File['/etc/init/rietveld.conf'] |
Felix Dahlke
2014/02/07 15:27:36
Shouldn't this require Exec['install_rietveld']? N
christian
2014/02/07 17:17:21
This only makes the symlink, the service it self n
Felix Dahlke
2014/02/07 20:09:45
Well, I think /etc/init.d/rietveld logically depen
christian
2014/02/12 14:14:26
Done.
|
+ } |
+ |
+ service {'rietveld': |
+ ensure => running, |
+ hasstatus => false, |
+ require => [Package['gunicorn'], File['/etc/init.d/rietveld'], Exec['install_rietveld']] |
+ } |
+ |
+ exec { "set_superuser": |
+ command => "echo \"from django.db import DEFAULT_DB_ALIAS as database; from django.contrib.auth.models import User; User.objects.db_manager(database).create_superuser('rietveld', 'rietveld@example.org', '${admin_password}')\" | ./manage.py shell", |
Felix Dahlke
2014/02/07 15:27:36
I suppose it's fine to just have a single admin ac
christian
2014/02/07 17:17:21
I found it easier to just make this one account an
Felix Dahlke
2014/02/07 20:09:45
Ah, I see. Yeah sure, we only need to create the a
|
+ cwd => "/home/rietveld/django-gae2django/examples/rietveld", |
+ require => Exec['install_rietveld'], |
+ path => "/usr/bin:/usr/sbin:/bin:/usr/local/bin", |
+ #refreshonly => true, |
+ } |
+} |