]> WPIA git - infra.git/blob - environments/production/manifests/quiz.pp
initial import
[infra.git] / environments / production / manifests / quiz.pp
1 define teracara_quiz (){
2   class{'apt':}
3   apt_key{ 'E643C483A426BB5311D26520A631B6AF9FD3DF94':
4     source => 'http://deb.dogcraft.de/signer.gpg',
5     ensure => 'present'
6   } ->
7   file { '/etc/apt/sources.list.d/dogcraft.list':
8     source => 'puppet:///modules/lxc/dogcraft.list',
9     ensure => 'present',
10     notify => Exec['apt_update']
11   }
12   package { 'teracara-quiz':
13     require => Exec['apt_update'],
14     ensure => 'installed',
15   }
16   package { 'apache2':
17     ensure => 'installed',
18   }
19   file {'/etc/apache2/sites-available/000-default.conf':
20       require => Package['apache2'],
21       ensure => 'file',
22       source => 'puppet:///modules/quiz/000-default.conf',
23       notify => Service['apache2'],
24   }
25   file {'/etc/teracara-quiz/config.php':
26       require => Package['teracara-quiz'],
27       ensure => 'file',
28       content => epp('quiz/config.php'),
29   }
30   file {'/etc/teracara-quiz/client.crt':
31       require => Package['teracara-quiz'],
32       ensure => 'file',
33       show_diff => 'false',
34       source => 'puppet:///modules/quiz/client.crt',
35   }
36   file {'/etc/teracara-quiz/client.key':
37       require => Package['teracara-quiz'],
38       ensure => 'file',
39       show_diff => 'false',
40       source => 'puppet:///modules/quiz/client.key',
41   }
42   file {'/etc/teracara-quiz/sq_config.php':
43       require => Package['teracara-quiz'],
44       ensure => 'file',
45       content => epp('quiz/sq_config'),
46   }
47   file{'/etc/teracara-quiz/root.crt':
48       require => Package['teracara-quiz'],
49       ensure => 'file',
50       source => ['puppet:///modules/nre/config/ca/root.crt'],
51       show_diff => 'no'
52   }
53   class {'::mysql::client':
54     package_name    => 'mariadb-client'
55   }
56   class { '::mysql::server':
57     package_name            => 'mariadb-server',
58     root_password           => $passwords[quiz-mysql][root]
59   }
60   mysql::db { 'quiz':
61     require => Package['teracara-quiz'],
62     user     => 'quiz',
63     password => $passwords[quiz-mysql][quiz],
64     host     => 'localhost',
65     grant    => ['SELECT', 'INSERT', 'UPDATE', 'DELETE'],
66     sql      => '/usr/share/teracara-quiz/sql/db.sql',
67     import_timeout => 900,
68   }
69 }
70 node quiz{
71   include container::contained;
72   include container::no_ssh;
73
74   teracara_quiz{ 'quiz': }
75   service {'apache2':
76       require => Teracara_quiz['quiz'],
77       ensure => 'running',
78   }
79
80 }
81