summaryrefslogtreecommitdiff
path: root/puppet/modules/site_webapp/manifests/init.pp
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/modules/site_webapp/manifests/init.pp')
-rw-r--r--puppet/modules/site_webapp/manifests/init.pp95
1 files changed, 60 insertions, 35 deletions
diff --git a/puppet/modules/site_webapp/manifests/init.pp b/puppet/modules/site_webapp/manifests/init.pp
index e8134521..e743dc07 100644
--- a/puppet/modules/site_webapp/manifests/init.pp
+++ b/puppet/modules/site_webapp/manifests/init.pp
@@ -3,20 +3,19 @@ class site_webapp {
$definition_files = hiera('definition_files')
$provider = $definition_files['provider']
$eip_service = $definition_files['eip_service']
+ $soledad_service = $definition_files['soledad_service']
+ $smtp_service = $definition_files['smtp_service']
$node_domain = hiera('domain')
$provider_domain = $node_domain['full_suffix']
$webapp = hiera('webapp')
+ $api_version = $webapp['api_version']
+ $secret_token = $webapp['secret_token']
- Class[Ruby] -> Class[rubygems] -> Class[bundler::install]
-
- class { 'ruby': ruby_version => '1.9.3' }
-
- class { 'bundler::install': install_method => 'package' }
-
- include rubygems
+ include site_config::ruby
include site_webapp::apache
include site_webapp::couchdb
include site_webapp::client_ca
+ include site_webapp::haproxy
group { 'leap-webapp':
ensure => present,
@@ -28,19 +27,20 @@ class site_webapp {
allowdupe => false,
gid => 'leap-webapp',
groups => 'ssl-cert',
- home => '/srv/leap-webapp',
+ home => '/srv/leap/webapp',
require => [ Group['leap-webapp'] ];
}
- file { '/srv/leap-webapp':
+ file { '/srv/leap/webapp':
ensure => directory,
owner => 'leap-webapp',
group => 'leap-webapp',
require => User['leap-webapp'];
}
- vcsrepo { '/srv/leap-webapp':
+ vcsrepo { '/srv/leap/webapp':
ensure => present,
+ force => true,
revision => 'origin/master',
provider => git,
source => 'git://code.leap.se/leap_web',
@@ -51,17 +51,17 @@ class site_webapp {
}
exec { 'bundler_update':
- cwd => '/srv/leap-webapp',
- command => '/bin/bash -c "/usr/bin/bundle check || /usr/bin/bundle install --path vendor/bundle"',
+ cwd => '/srv/leap/webapp',
+ command => '/bin/bash -c "/usr/bin/bundle check || /usr/bin/bundle install --path vendor/bundle --without test development"',
unless => '/usr/bin/bundle check',
user => 'leap-webapp',
timeout => 600,
- require => [ Class['bundler::install'], Vcsrepo['/srv/leap-webapp'] ],
+ require => [ Class['bundler::install'], Vcsrepo['/srv/leap/webapp'] ],
notify => Service['apache'];
}
exec { 'compile_assets':
- cwd => '/srv/leap-webapp',
+ cwd => '/srv/leap/webapp',
command => '/bin/bash -c "/usr/bin/bundle exec rake assets:precompile"',
user => 'leap-webapp',
require => Exec['bundler_update'],
@@ -69,47 +69,72 @@ class site_webapp {
}
file {
- '/srv/leap-webapp/public/provider.json':
+ '/srv/leap/webapp/public/provider.json':
content => $provider,
+ require => Vcsrepo['/srv/leap/webapp'],
owner => leap-webapp, group => leap-webapp, mode => '0644';
- '/srv/leap-webapp/public/ca.crt':
+ '/srv/leap/webapp/public/ca.crt':
ensure => link,
+ require => Vcsrepo['/srv/leap/webapp'],
target => '/usr/local/share/ca-certificates/leap_api.crt';
- '/srv/leap-webapp/public/config':
+ "/srv/leap/webapp/public/${api_version}":
ensure => directory,
+ require => Vcsrepo['/srv/leap/webapp'],
owner => leap-webapp, group => leap-webapp, mode => '0755';
- '/srv/leap-webapp/public/config/eip-service.json':
+ "/srv/leap/webapp/public/${api_version}/config/":
+ ensure => directory,
+ require => Vcsrepo['/srv/leap/webapp'],
+ owner => leap-webapp, group => leap-webapp, mode => '0755';
+
+ "/srv/leap/webapp/public/${api_version}/config/eip-service.json":
content => $eip_service,
+ require => Vcsrepo['/srv/leap/webapp'],
owner => leap-webapp, group => leap-webapp, mode => '0644';
- }
- try::file {
- '/srv/leap-webapp/public/favicon.ico':
- ensure => 'link',
- target => $webapp['favicon'];
-
- '/srv/leap-webapp/app/assets/stylesheets/tail.scss':
- ensure => 'link',
- target => $webapp['tail_scss'];
+ "/srv/leap/webapp/public/${api_version}/config/soledad-service.json":
+ content => $soledad_service,
+ require => Vcsrepo['/srv/leap/webapp'],
+ owner => leap-webapp, group => leap-webapp, mode => '0644';
- '/srv/leap-webapp/app/assets/stylesheets/head.scss':
- ensure => 'link',
- target => $webapp['head_scss'];
+ "/srv/leap/webapp/public/${api_version}/config/smtp-service.json":
+ content => $smtp_service,
+ require => Vcsrepo['/srv/leap/webapp'],
+ owner => leap-webapp, group => leap-webapp, mode => '0644';
+ }
- '/srv/leap-webapp/public/img':
- ensure => 'link',
- target => $webapp['img_dir'];
+ try::file {
+ '/srv/leap/webapp/public/favicon.ico':
+ ensure => 'link',
+ require => Vcsrepo['/srv/leap/webapp'],
+ target => $webapp['favicon'];
+
+ '/srv/leap/webapp/app/assets/stylesheets/tail.scss':
+ ensure => 'link',
+ require => Vcsrepo['/srv/leap/webapp'],
+ target => $webapp['tail_scss'];
+
+ '/srv/leap/webapp/app/assets/stylesheets/head.scss':
+ ensure => 'link',
+ require => Vcsrepo['/srv/leap/webapp'],
+ target => $webapp['head_scss'];
+
+ '/srv/leap/webapp/public/img':
+ ensure => 'link',
+ require => Vcsrepo['/srv/leap/webapp'],
+ target => $webapp['img_dir'];
}
file {
- '/srv/leap-webapp/config/config.yml':
+ '/srv/leap/webapp/config/config.yml':
content => template('site_webapp/config.yml.erb'),
owner => leap-webapp,
group => leap-webapp,
- mode => '0600';
+ mode => '0600',
+ require => Vcsrepo['/srv/leap/webapp'],
+ notify => Service['apache'];
}
include site_shorewall::webapp