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