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