]> WPIA git - infra.git/blob - environments/production/manifests/quiz.pp
upd: move quiz to postgres
[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   exec { 'import quiz schema':
47     command => "/usr/bin/psql -U quiz -h ${ips[postgres]} < /usr/share/teracara-quiz/sql/db_postgresql.sql",
48     environment => ["PGPASSWORD=${passwords[postgres][quiz]}"],
49     unless  => "/usr/bin/psql -U quiz -h ${ips[postgres]} -tc \"select * from pg_tables where schemaname='public';\" | /bin/grep -q '.'",
50     require => [Package['teracara-quiz']],
51     before => File['/etc/apache2/sites-available/000-default.conf']
52   }
53   file {'/etc/apache2/sites-available/000-default.conf':
54       require => Package['apache2'],
55       ensure => 'file',
56       source => 'puppet:///modules/quiz/000-default.conf',
57       notify => Service['apache2'],
58   }
59   package{'mariadb-server':
60       ensure => 'purged'
61   }
62   package{'mariadb-client':
63       ensure => 'purged'
64   }
65 }
66 node quiz{
67   include container::contained;
68   include container::no_ssh;
69
70   teracara_quiz{ 'quiz': }
71   service {'apache2':
72       require => Teracara_quiz['quiz'],
73       ensure => 'running',
74   }
75
76 }
77