]> WPIA git - infra.git/blob - environments/production/manifests/quiz.pp
fix: postgres for quiz
[infra.git] / environments / production / manifests / quiz.pp
1 define teracara_quiz (){
2   apt_key{ 'E643C483A426BB5311D26520A631B6AF9FD3DF94':
3     source => 'http://deb.dogcraft.de/signer.gpg',
4     ensure => 'present'
5   } ->
6   file { '/etc/apt/sources.list.d/dogcraft.list':
7     source => 'puppet:///modules/lxc/dogcraft.list',
8     ensure => 'present',
9     notify => Exec['apt_update']
10   }
11   package { 'teracara-quiz':
12     require => Exec['apt_update'],
13     ensure => 'installed',
14   }
15   package { 'apache2':
16     ensure => 'installed',
17   }
18   file {'/etc/teracara-quiz/config.php':
19       require => Package['teracara-quiz'],
20       ensure => 'file',
21       content => epp('quiz/config.php'),
22   }
23   file {'/etc/teracara-quiz/client.crt':
24       require => Package['teracara-quiz'],
25       ensure => 'file',
26       show_diff => 'false',
27       source => 'puppet:///modules/quiz/client.crt',
28   }
29   file {'/etc/teracara-quiz/client.key':
30       require => Package['teracara-quiz'],
31       ensure => 'file',
32       show_diff => 'false',
33       source => 'puppet:///modules/quiz/client.key',
34   }
35   file {'/etc/teracara-quiz/sq_config.php':
36       require => Package['teracara-quiz'],
37       ensure => 'file',
38       content => epp('quiz/sq_config'),
39   }
40   file{'/etc/teracara-quiz/root.crt':
41       require => Package['teracara-quiz'],
42       ensure => 'file',
43       source => ['puppet:///modules/nre/config/ca/root.crt'],
44       show_diff => 'no'
45   }
46   include postgresql::client
47   exec { 'import quiz schema':
48     command => "/usr/bin/psql -U quiz -h ${ips[postgres]} < /usr/share/teracara-quiz/sql/db_postgresql.sql",
49     environment => ["PGPASSWORD=${passwords[postgres][quiz]}"],
50     unless  => "/usr/bin/psql -U quiz -h ${ips[postgres]} -tc \"select * from pg_tables where schemaname='public';\" | /bin/grep -q '.'",
51     require => [Package['teracara-quiz'], Class['postgresql::client']],
52     before => File['/etc/apache2/sites-available/000-default.conf']
53   }
54   package{'php-pgsql':
55     ensure => 'installed',
56     before => File['/etc/apache2/sites-available/000-default.conf'],
57     notify => Service['apache2'],
58   }
59   file {'/etc/apache2/sites-available/000-default.conf':
60       require => Package['apache2'],
61       ensure => 'file',
62       source => 'puppet:///modules/quiz/000-default.conf',
63       notify => Service['apache2'],
64   }
65   package{'mariadb-server':
66       ensure => 'purged'
67   }
68   package{'mariadb-client':
69       ensure => 'purged'
70   }
71 }
72 node quiz{
73   include container::contained;
74   include container::no_ssh;
75
76   teracara_quiz{ 'quiz': }
77   service {'apache2':
78       require => Teracara_quiz['quiz'],
79       ensure => 'running',
80   }
81
82 }
83