]> WPIA git - infra.git/blob - environments/production/manifests/site.pp
add: systemd module for executing daemon-reload
[infra.git] / environments / production / manifests / site.pp
1 class { 'apt':
2   update => {
3     frequency => 'daily',
4   },
5 }
6 Exec["apt_update"] -> Package <| |>
7
8 node  cassiopeia {
9   include container::contained
10 if $signerLocation == 'self' {
11   include container::no_ssh
12 } else {
13   include container::ssh
14 }
15   apt_key{ 'E643C483A426BB5311D26520A631B6AF9FD3DF94':
16     source => 'http://deb.dogcraft.de/signer.gpg',
17     ensure => 'present'
18   } ->
19   file { '/etc/apt/sources.list.d/dogcraft.list':
20     source => 'puppet:///modules/lxc/dogcraft.list',
21     ensure => 'present',
22     notify => Exec['apt_update']
23   } ->
24   package { 'wpia-cassiopeia-signer':
25     ensure => 'installed',
26     require => Exec['apt_update']
27   }
28 if $signerLocation == 'self' {
29   package { 'tcpserial':
30     ensure => 'installed',
31     require => Exec['apt_update']
32   }
33   $cass_ip='';
34   systemd::unit_file {'tcpserial.service':
35     ensure => 'file',
36     content => epp('gigi/tcpserial'),
37     require => Package['tcpserial']
38   }->
39   service{'tcpserial.service':
40     ensure => 'running',
41     enable => true,
42     provider => 'systemd',
43     before => Service['cassiopeia-signer.service']
44   }
45 } elsif  $signerLocation == '/dev/ttyS0' {
46   exec {'/bin/mknod /dev/ttyS0 c 4 64':
47     creates => "/dev/ttyS0",
48     before => Service['cassiopeia-signer.service']
49   }
50 } else {
51   fail("unknown signerLocation")
52 }
53   file {'/var/lib/cassiopeia/':
54     ensure => 'directory',
55   }->
56   exec {'/usr/bin/openssl dhparam -out dh_param.pem 2048':
57     timeout => '0',
58     creates => '/var/lib/cassiopeia/dh_param.pem',
59     cwd => '/var/lib/cassiopeia/',
60     require => File['/var/lib/cassiopeia/']
61   } # TODO: make this unneded and fix cassiopeia dh-param-generation
62
63   file {'/var/lib/cassiopeia/logs':
64     ensure => 'directory',
65   }
66
67   file {'/var/lib/cassiopeia/profiles':
68     ensure => 'directory',
69     source => 'puppet:///modules/cassiopeia_signer/profiles',
70     recurse => true,
71     purge => true
72   }
73   file {'/var/lib/cassiopeia/ca':
74     ensure => 'directory',
75     source => 'puppet:///modules/cassiopeia_signer/ca',
76     recurse => true,
77   }
78
79   file {'/var/lib/cassiopeia/keys':
80     ensure => 'directory',
81     require => File['/var/lib/cassiopeia/']
82   }
83   file {'/var/lib/cassiopeia/keys/ca.crt':
84     ensure => 'file',
85     source => 'puppet:///modules/cassiopeia/ca.crt',
86   }
87   file {'/var/lib/cassiopeia/keys/signer_server.crt':
88     ensure => 'file',
89     source => 'puppet:///modules/cassiopeia/signer_server.crt',
90   }
91   file {'/var/lib/cassiopeia/keys/signer_server.key':
92     ensure => 'file',
93     source => 'puppet:///modules/cassiopeia/signer_server.key',
94   }
95   $gigi_pg_ip=""
96   $gigi_pg_password=""
97   file {'/var/lib/cassiopeia/config.txt':
98     ensure => 'file',
99     content => epp('gigi/cassiopeia-client-conf'),
100   }
101
102   systemd::unit_file {'cassiopeia-signer.service':
103     ensure => 'file',
104     source => 'puppet:///modules/gigi/cassiopeia-signer.service',
105   }->
106   service{'cassiopeia-signer.service':
107     ensure => 'running',
108     enable => true,
109     provider => 'systemd',
110     require => [Exec['/usr/bin/openssl dhparam -out dh_param.pem 2048'],
111                 Package['wpia-cassiopeia-signer'],
112                 File['/var/lib/cassiopeia/logs'],
113                 File['/var/lib/cassiopeia/profiles'],
114                 File['/var/lib/cassiopeia/ca'],
115                 File['/var/lib/cassiopeia/config.txt'],
116                 File['/var/lib/cassiopeia/keys/ca.crt'],
117                 File['/var/lib/cassiopeia/keys/signer_server.crt'],
118                 File['/var/lib/cassiopeia/keys/signer_server.key']]
119   }
120
121 }
122
123
124 node exim{
125   include container::contained;
126   include container::no_ssh;
127
128   package{ 'exim4-daemon-light':
129     ensure => 'installed'
130   } ->
131   file{ '/etc/exim4/update-exim4.conf.conf':
132     ensure => 'file',
133     content => epp('exim/update-exim4.conf.conf'),
134     notify => Exec['/usr/sbin/update-exim4.conf']
135   }
136   exec{ '/usr/sbin/update-exim4.conf':
137     refreshonly => 'true',
138     notify => Service['exim4']
139   }
140   service{ 'exim4':
141     ensure => 'running',
142     enable => true,
143   }
144 }