]> WPIA git - infra.git/blob - environments/production/manifests/quiz.pp
70577ff640395c20f5ca0e4f28a755a139ec2004
[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/apache2/sites-available/000-default.conf':
19       require => Package['apache2'],
20       ensure => 'file',
21       source => 'puppet:///modules/quiz/000-default.conf',
22       notify => Service['apache2'],
23   }
24   file {'/etc/teracara-quiz/config.php':
25       require => Package['teracara-quiz'],
26       ensure => 'file',
27       content => epp('quiz/config.php'),
28   }
29   file {'/etc/teracara-quiz/client.crt':
30       require => Package['teracara-quiz'],
31       ensure => 'file',
32       show_diff => 'false',
33       source => 'puppet:///modules/quiz/client.crt',
34   }
35   file {'/etc/teracara-quiz/client.key':
36       require => Package['teracara-quiz'],
37       ensure => 'file',
38       show_diff => 'false',
39       source => 'puppet:///modules/quiz/client.key',
40   }
41   file {'/etc/teracara-quiz/sq_config.php':
42       require => Package['teracara-quiz'],
43       ensure => 'file',
44       content => epp('quiz/sq_config'),
45   }
46   file{'/etc/teracara-quiz/root.crt':
47       require => Package['teracara-quiz'],
48       ensure => 'file',
49       source => ['puppet:///modules/nre/config/ca/root.crt'],
50       show_diff => 'no'
51   }
52   class {'::mysql::client':
53     package_name    => 'mariadb-client'
54   }
55   class { '::mysql::server':
56     package_name            => 'mariadb-server',
57     root_password           => $passwords[quiz-mysql][root]
58   }
59   mysql::db { 'quiz':
60     require => Package['teracara-quiz'],
61     user     => 'quiz',
62     password => $passwords[quiz-mysql][quiz],
63     host     => 'localhost',
64     grant    => ['SELECT', 'INSERT', 'UPDATE', 'DELETE'],
65     sql      => '/usr/share/teracara-quiz/sql/db.sql',
66     import_timeout => 900,
67   }
68 }
69 node quiz{
70   include container::contained;
71   include container::no_ssh;
72
73   teracara_quiz{ 'quiz': }
74   service {'apache2':
75       require => Teracara_quiz['quiz'],
76       ensure => 'running',
77   }
78
79 }
80