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