remove portforwarder files if we do not have a portforwarding user
[mirror/dsa-puppet.git] / modules / portforwarder / manifests / init.pp
1 class portforwarder {
2         # do not depend on xinetd, yet.  it might uninstall other inetds
3         # for now this will have to be done manually
4
5         if $::portforwarder_user_exists {
6                 if ! $::portforwarder_key {
7                         exec { 'create-portforwarder-key':
8                                 command => '/bin/su - portforwarder -c \'mkdir -p -m 02700 .ssh && ssh-keygen -C "`whoami`@`hostname` (`date +%Y-%m-%d`)" -P "" -f .ssh/id_rsa -q\'',
9                                 onlyif  => '/usr/bin/getent passwd portforwarder > /dev/null && ! [ -e /home/portforwarder/.ssh/id_rsa ]'
10                         }
11                 }
12
13                 file { '/etc/ssh/userkeys/portforwarder':
14                         content => template('portforwarder/authorized_keys.erb'),
15                 }
16                 file { '/etc/xinetd.d':
17                         ensure  => directory,
18                         owner   => root,
19                         group   => root,
20                         mode    => '0755',
21                 }
22                 file { '/etc/xinetd.d/dsa-portforwader':
23                         content => template('portforwarder/xinetd.erb'),
24                         notify  => Exec['service xinetd reload']
25                 }
26
27                 exec { 'service xinetd reload':
28                         refreshonly => true,
29                 }
30         } else {
31                 file { [
32                         '/etc/ssh/userkeys/portforwarder',
33                         '/etc/xinetd.d/dsa-portforwader',
34                         ]:
35                         ensure => 'absent',
36                 }
37         }
38 }