484f57c36789ae833946c5568f894e81de716cf2
[chaosvm.git] / modules / common / manifests / init.pp
1 class common {
2   
3   define set_mountpoint_option($mount, $option) {
4     augeas{ "fstab-$mount-$option":
5       context => "/files/etc/fstab/*[file = '$mount'][count(opt[. = '$option']) = 0]",
6       changes => [
7         "ins opt after opt[last()]",
8         "set opt[last()] $option",
9         ],
10       onlyif => "match /files/etc/fstab/*[file = '$mount'][count(opt[. = '$option']) = 0] size > 0",
11     }
12   }
13   
14   set_mountpoint_option { '/usr-nodev':
15     mount => '/usr',
16     option => 'nodev',
17   }
18
19   set_mountpoint_option { '/var-nodev':
20     mount => '/var',
21     option => 'nosuid',
22   }
23   
24   # packages without configuration
25   $packages = [ 'git-core',
26                 'puppet',
27                 'screen',
28                 'rsync',
29                 'vim',
30                 'lsof',
31                 'pv',
32                 'tcpdump',
33                ]
34   
35   package { $packages:
36     ensure => installed,
37   }
38   
39   package { 'sudo':
40     ensure => installed,
41   }
42   
43   augeas { 'enable NOPASSWD for %sudo':
44     context => '/files/etc/sudoers/spec[2]/host_group/command/',
45     changes => [ 'set tag NOPASSWD' ],
46     require => Package['sudo'],
47   }
48   
49   # Zeitabgleich
50   package { 'chrony':
51     ensure => installed,
52   }
53   
54   service { 'chrony':
55     ensure => running,
56     enable => true,
57     hasstatus  => false,
58     hasrestart => true,
59     require => Package['chrony'],
60   }
61
62   # E-Mail via Smart Host
63   package { 'nullmailer':
64     ensure => installed,
65   }
66   
67   file { '/etc/nullmailer/adminaddr':
68     ensure => present,
69     content => "infra@ccc-ffm.de\n",
70     require => Package['nullmailer'],
71     notify => Service['nullmailer'],
72   }
73
74   file { '/etc/nullmailer/defaultdomain':
75     ensure => present,
76     content => "ccc-ffm.de\n",
77     require => Package['nullmailer'],
78     notify => Service['nullmailer'],
79   }
80
81   file { '/etc/nullmailer/remotes':
82     ensure => present,
83     content => "mx01.ccc-ffm.de\n",
84     require => Package['nullmailer'],
85     notify => Service['nullmailer'],
86   }
87
88   service { 'nullmailer':
89     ensure => running,
90     enable => true,
91     hasstatus  => true,
92     hasrestart => true,
93   }
94
95   # Software Updates
96   package { 'apt-dater':
97     ensure => installed,
98   }
99   
100   file { '/etc/sudoers.d/apt-dater-host':
101     ensure => present,
102     mode => 'ug=r,o=',
103     owner => 'root',
104     group => 'root',
105     content => "# apt-dater may run aptitude as root\napt-dater ALL=NOPASSWD: /usr/bin/apt-get\n",
106     require => [ Package['nullmailer'], Package['sudo'] ],
107   }
108   
109   user { 'apt-dater':
110     ensure => $ensure,
111     comment => $comment,
112     gid => 'nogroup',
113     membership => inclusive,
114     home => '/home/apt-dater',
115     managehome => true,
116     shell => '/bin/bash',
117     system => true,
118     require => Package['nullmailer'],
119   }
120   
121   ssh_authorized_key { 'apt-dater noc.cash-zone.de':
122     ensure => present,
123     user => 'apt-dater',
124     type => 'ssh-rsa',
125     key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAp+P0huFZ8h5GjZhtN2ZzM78pc30u2ZVrbmjLoGq9vYXBk2/jCIEWqg+L63EWg2EZcDsbxuKaf4/CYYnB213FYjhlhi8kvt/Gt3GTOxpf1/vEx+VZWpafeTDiTlKzqDHuFMHe+pEMe/OwIuK561ubttUAk6raixgkjxk0WYQX8HWLrO+jyyXstPmqs6lvQ7TYQajC8HmHb5vQWWSNWdcoeybMY+iD7H6e+4oAINs3yVMJN7Lfso7CySN1eYlFfsKExWJ59U1CrUbOgGfz5K6ommtSUqtxl+DOfmXVO40lpQ8iuTZ3YFZPuVunkw5Ce185DfZhKCSQqr+k+gKy2UFnVw==',
126   }
127   
128   ssh_authorized_key { 'backuppc systemgemisch':
129     ensure => present,
130     user => 'root',
131     type => 'ssh-rsa',
132     options => [ 'no-port-forwarding',
133                  'no-X11-forwarding',
134                  'no-agent-forwarding',
135                  'from="5.231.239.2,::ffff:5.231.239.2"'
136                ],
137     key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAygsqWq5lKygdAqO+GZGRB3t2P5FeQO8a3FZHKCOTpiI8CTycDZpiQnc6a/IsTHP4YvqhX9Swofu9jFDlVQXAExvuKmOlg5HZWAlCPxwMRarwN4QJvOowx+zoK0GVh3X/uNzMwKaNtk4GWek64KaLNx3TmO/UNBJhz9MxsUYvzCTTwi7361Nytko3v9BoJOGYLBYwbnseHsu3oLOYThL+KK8gNFuEMuCTIYK5wipbMbtIcCAIlnNrZTFJz0/6fbEj2A59oCeV98JWWYjmoIDqGTR5RflkuTS1LQnd/NlD+vCJdzf81hIBCbYXsy7+wc1bWj9SJuc2Lt91Qaf1DbT9Lw==',
138   }
139   
140   include common::accountsetup
141   include common::users
142   
143 }