Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: modules/roundup/manifests/init.pp

Issue 4553114493386752: Initial configuration for issues.adblockplus.org (Closed)
Patch Set: Created Dec. 13, 2013, 6:22 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 class roundup($tracker_name, $domain) inherits private::roundup {
2 package {['roundup', 'python-mysqldb']: ensure => present}
3
4 include nginx
5
6 nginx::hostconfig {$domain:
7 content => template('roundup/site.erb'),
8 enabled => true
9 }
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':
14 config_hash => {'root_password' => $database_root_password}
15 }
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
17 mysql::db {'roundup':
18 user => 'roundup',
19 password => $database_password,
20 host => 'localhost',
21 grant => ['all'],
22 require => Class['mysql::config']
23 }
24
25 file {'/etc/roundup/roundup-server.ini':
26 ensure => present,
27 content => template('roundup/roundup-server.ini.erb'),
28 require => Package['roundup']
29 }
30
31 $tracker_home = "/var/lib/roundup/trackers/${tracker_name}"
32
33 Exec {
34 path => ['/bin', '/usr/bin'],
35 }
36
37 exec {'install':
38 command => "roundup-admin -i ${tracker_home} install classic mysql",
39 onlyif => "test ! -d ${tracker_home}",
40 require => Package['roundup', 'python-mysqldb']
41 }
42
43 file {"${tracker_home}/config.ini":
44 ensure => present,
45 content => template('roundup/config.ini.erb'),
46 require => Exec['install']
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
51 service {'roundup':
52 ensure => running,
53 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 }
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
66 file {$roundup_initialise_wrapper:
67 content => "echo y | roundup-admin -i ${tracker_home} initialise ${admin_pas sword}"
68 }
69
70 exec {'initialise':
71 command => "bash ${roundup_initialise_wrapper}",
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",
73 require => [Package['roundup'], File[$roundup_initialise_wrapper],
74 Mysql::Db['roundup']],
75 notify => File[$db_path]
76 }
77
78 file {$db_path:
79 owner => 'roundup',
80 notify => Service['roundup']
81 }
82 }
OLDNEW

Powered by Google App Engine
This is Rietveld