Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 class roundup($tracker_name, $domain) inherits private::roundup { | 1 class roundup($tracker_name, $domain) inherits private::roundup { |
2 package {['roundup', 'python-mysqldb']: ensure => present} | 2 package {['roundup', 'python-mysqldb']: ensure => present} |
3 | 3 |
4 include nginx | 4 include nginx |
5 | 5 |
6 nginx::hostconfig {$domain: | 6 nginx::hostconfig {$domain: |
7 content => template('roundup/site.erb'), | 7 content => template('roundup/site.erb'), |
8 enabled => true | 8 enabled => true |
9 } | 9 } |
10 | 10 |
11 include postfix | |
Wladimir Palant
2014/01/22 09:05:29
Why do we need that? It is already included in the
Felix Dahlke
2014/01/22 13:53:58
Done.
| |
12 | |
13 class {'mysql::server': | 11 class {'mysql::server': |
14 config_hash => {'root_password' => $database_root_password} | 12 config_hash => {'root_password' => $database_root_password} |
15 } | 13 } |
Wladimir Palant
2014/01/22 09:05:29
Any particular reason why we are using MySQL rathe
Felix Dahlke
2014/01/22 13:53:58
Discourse doesn't support MySQL, that's why I went
| |
16 | 14 |
17 mysql::db {'roundup': | 15 mysql::db {'roundup': |
18 user => 'roundup', | 16 user => 'roundup', |
19 password => $database_password, | 17 password => $database_password, |
20 host => 'localhost', | 18 host => 'localhost', |
21 grant => ['all'], | 19 grant => ['all'], |
22 require => Class['mysql::config'] | 20 require => Class['mysql::config'] |
23 } | 21 } |
24 | 22 |
25 file {'/etc/roundup/roundup-server.ini': | 23 file {'/etc/roundup/roundup-server.ini': |
26 ensure => present, | 24 ensure => present, |
27 content => template('roundup/roundup-server.ini.erb'), | 25 content => template('roundup/roundup-server.ini.erb'), |
28 require => Package['roundup'] | 26 require => Package['roundup'], |
27 notify => Service['roundup'] | |
29 } | 28 } |
30 | 29 |
31 $tracker_home = "/var/lib/roundup/trackers/${tracker_name}" | 30 $tracker_home = "/var/lib/roundup/trackers/${tracker_name}" |
32 | 31 |
33 Exec { | 32 Exec { |
34 path => ['/bin', '/usr/bin'], | 33 path => ['/bin', '/usr/bin'], |
35 } | 34 } |
36 | 35 |
37 exec {'install': | 36 exec {'install': |
38 command => "roundup-admin -i ${tracker_home} install classic mysql", | 37 command => "roundup-admin -i ${tracker_home} install classic mysql", |
39 onlyif => "test ! -d ${tracker_home}", | 38 onlyif => "test ! -d ${tracker_home}", |
40 require => Package['roundup', 'python-mysqldb'] | 39 require => Package['roundup', 'python-mysqldb'] |
41 } | 40 } |
42 | 41 |
43 file {"${tracker_home}/config.ini": | 42 file {"${tracker_home}/config.ini": |
44 ensure => present, | 43 ensure => present, |
45 content => template('roundup/config.ini.erb'), | 44 content => template('roundup/config.ini.erb'), |
46 require => Exec['install'] | 45 require => Exec['install'], |
46 notify => Service['roundup'] | |
47 } | 47 } |
48 | |
49 $db_path = "${tracker_home}/db" | |
Wladimir Palant
2014/01/22 09:05:29
Nit: move this further down where it is used?
Felix Dahlke
2014/01/22 13:53:58
Done.
| |
50 | 48 |
51 service {'roundup': | 49 service {'roundup': |
52 ensure => running, | 50 ensure => running, |
53 hasstatus => false, | 51 hasstatus => false |
54 require => Package['roundup'] | |
Wladimir Palant
2014/01/22 09:05:29
Doesn't that require config.ini or at least roundu
Felix Dahlke
2014/01/22 13:53:58
Yes, both apparently. Added a notify to those.
| |
55 } | 52 } |
56 | |
57 # The following wrapper script is a hack that solves two problems: | |
58 # 1. roundup-admin initialise insists on user input when initialising the | |
59 # MySQL database. | |
60 # 2. Puppet commands can apparently not do input redirection, hence the | |
61 # wrapper script. It doesn't seem to be possible to create temporary | |
62 # files with Puppet either, so it has to stick around. | |
63 | |
64 $roundup_initialise_wrapper = '/root/roundup-initialise' | |
65 | 53 |
66 file {$roundup_initialise_wrapper: | 54 $db_path = "${tracker_home}/db" |
67 content => "echo y | roundup-admin -i ${tracker_home} initialise ${admin_pas sword}" | |
68 } | |
69 | 55 |
70 exec {'initialise': | 56 exec {'initialise': |
71 command => "bash ${roundup_initialise_wrapper}", | 57 command => "bash -c 'echo y | roundup-admin -i ${tracker_home} initialise ${ admin_password}'", |
Wladimir Palant
2014/01/22 09:05:29
Why use a script file? "bash -c 'echo y | roundup-
Felix Dahlke
2014/01/22 13:53:58
Well that's embarrassing, didn't think of -c. Done
| |
72 onlyif => "test ! -d ${db_path}/lock", | 58 onlyif => "test ! -d ${db_path}/lock", |
73 require => [Package['roundup'], File[$roundup_initialise_wrapper], | 59 require => [Package['roundup'], Mysql::Db['roundup']], |
74 Mysql::Db['roundup']], | |
75 notify => File[$db_path] | 60 notify => File[$db_path] |
76 } | 61 } |
77 | 62 |
78 file {$db_path: | 63 file {$db_path: |
79 owner => 'roundup', | 64 owner => 'roundup', |
80 notify => Service['roundup'] | 65 notify => Service['roundup'] |
81 } | 66 } |
82 } | 67 } |
LEFT | RIGHT |