avoid top-scope variable being used without an explicit namespace
[mirror/dsa-puppet.git] / modules / ssh / manifests / init.pp
1 class ssh {
2   package { [ 'openssh-client', 'openssh-server']:
3     ensure => installed
4   }
5
6   service { 'ssh':
7     ensure  => running,
8     require => Package['openssh-server']
9   }
10
11   ferm::rule::simple { 'dsa-ssh':
12     description => 'check ssh access',
13     port        => 'ssh',
14     target      => 'ssh',
15   }
16   ferm::rule { 'dsa-ssh-sources':
17     description => 'Allow SSH from DSA',
18     chain       => 'ssh',
19     rule        => 'saddr ($SSH_SOURCES) ACCEPT'
20   }
21
22   file { '/etc/ssh/ssh_config':
23     content => template('ssh/ssh_config.erb'),
24     require => Package['openssh-client']
25   }
26   file { '/etc/ssh/sshd_config':
27     content => template('ssh/sshd_config.erb'),
28     require => Package['openssh-server'],
29     notify  => Service['ssh']
30   }
31   file { '/etc/ssh/userkeys':
32     ensure  => directory,
33     mode    => '0755',
34     require => Package['openssh-server']
35   }
36   file { '/etc/ssh/puppetkeys':
37     ensure  => directory,
38     mode    => '0755',
39     purge   => true,
40     recurse => true,
41     force   => true,
42     source  => 'puppet:///files/empty/',
43     require => Package['openssh-server']
44   }
45   file { '/etc/ssh/userkeys/root':
46     content => template('ssh/authorized_keys.erb'),
47   }
48
49   if (versioncmp($::lsbmajdistrelease, '8') >= 0) {
50     if ! $facts['has_etc_ssh_ssh_host_ed25519_key'] {
51       exec { 'create-ed25519-host-key':
52         command => 'ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -q -P "" -t ed25519',
53       }
54     }
55
56     if $facts['systemd'] {
57       package { [ 'libpam-systemd' ]:
58         ensure => installed
59       }
60     }
61   }
62 }