]> WPIA git - infra.git/blob - environments/production/manifests/quiz.pp
5d5e3a0804f4fd21da29c4d6ba22d1808b4539b3
[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   file {'/etc/apache2/sites-available/000-default.conf':
55       require => Package['apache2'],
56       ensure => 'file',
57       source => 'puppet:///modules/quiz/000-default.conf',
58       notify => Service['apache2'],
59   }
60   package{'mariadb-server':
61       ensure => 'purged'
62   }
63   package{'mariadb-client':
64       ensure => 'purged'
65   }
66 }
67 node quiz{
68   include container::contained;
69   include container::no_ssh;
70
71   teracara_quiz{ 'quiz': }
72   service {'apache2':
73       require => Teracara_quiz['quiz'],
74       ensure => 'running',
75   }
76
77 }
78