From fd60552663366216d7a0d2b4f27b7c1bcaca0bda Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Wed, 16 Sep 2015 23:45:11 +0000 Subject: [PATCH] Deploy as a wsgi app Also, correct vcsrepo so it is continuously deployed. Change-Id: Ibd06de25f0d277d7c8ccb652b50d6a44743934cd --- files/django.wsgi | 11 +++++++++++ manifests/init.pp | 30 ++++++++++++++++++++++++++++-- templates/odsreg.vhost.erb | 28 ++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 files/django.wsgi create mode 100644 templates/odsreg.vhost.erb diff --git a/files/django.wsgi b/files/django.wsgi new file mode 100644 index 0000000..f8d323a --- /dev/null +++ b/files/django.wsgi @@ -0,0 +1,11 @@ +import os +import sys + +path = '/usr/local/odsreg' +if path not in sys.path: + sys.path.append(path) + +os.environ['DJANGO_SETTINGS_MODULE'] = 'odsreg.settings' + +import django.core.handlers.wsgi +application = django.core.handlers.wsgi.WSGIHandler() diff --git a/manifests/init.pp b/manifests/init.pp index baf0a26..796a093 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -12,6 +12,7 @@ class odsreg( ) { include ::httpd + include ::httpd::mod::wsgi include ::pip package { 'django': @@ -40,6 +41,12 @@ class odsreg( ensure => present, } + # for the local wsgi app + file { '/var/www/odsreg': + ensure => directory, + mode => '0755', + } + # for our data storage file { '/var/lib/odsreg': ensure => directory, @@ -51,15 +58,19 @@ class odsreg( # a plain git checkout vcsrepo { '/opt/odsreg': - ensure => present, + ensure => latest, provider => git, revision => 'master', source => 'https://git.openstack.org/openstack-infra/odsreg', } - # "install" a copy of it file { '/usr/local/odsreg': ensure => directory, + } + + # "install" a copy of it + file { '/usr/local/odsreg/odsreg': + ensure => directory, owner => 'root', group => 'root', source => '/opt/odsreg', @@ -87,4 +98,19 @@ class odsreg( ], } + file { '/var/www/odsreg/django.wsgi': + ensure => present, + source => 'puppet:///modules/odsreg/django.wsgi', + mode => '0555', + owner => 'root', + group => 'root', + } + + ::httpd::vhost { $vhost_name: + port => 80, + priority => '50', + docroot => 'MEANINGLESS_ARGUMENT', + template => 'odsreg/odsreg.vhost.erb', + } + } diff --git a/templates/odsreg.vhost.erb b/templates/odsreg.vhost.erb new file mode 100644 index 0000000..2da60ce --- /dev/null +++ b/templates/odsreg.vhost.erb @@ -0,0 +1,28 @@ + + ServerName <%= scope.lookupvar("odsreg::vhost_name") %> + + WSGIScriptAlias / /var/www/odsreg/django.wsgi + Alias /media/ /usr/local/odsreg/cfp/static/ + Alias /static/admin/ /usr/share/pyshared/django/contrib/admin/media/ + + + Order deny,allow + Allow from all + + + + Order deny,allow + Allow from all + + + + Order deny,allow + Allow from all + + + ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/odsreg_error.log + LogLevel warn + CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/odsreg_access.log combined + ServerSignature Off + +