]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ssh/manifests/init.pp
Install libpam-systemd on systemd hosts
[dsa-puppet.git] / modules / ssh / manifests / init.pp
index 452ce5dfbaaa24e91e047650d03b00e9dc4aceee..d86093ef347e658258c5861f266af8de9c2966e8 100644 (file)
@@ -1,50 +1,53 @@
 class ssh {
-       package {
-                openssh-client: ensure => installed;
-                openssh-server: ensure => installed;
-        }
 
-        case $hostname {
-                bartok, beethoven: {
-                    $keyinfo = allnodeinfo("sshRSAHostKey", "ipHostNumber")
-                }
-        }
+       package { [ 'openssh-client', 'openssh-server']:
+               ensure => installed
+       }
+
+       service { 'ssh':
+               ensure  => running,
+               require => Package['openssh-server']
+       }
 
+       @ferm::rule { 'dsa-ssh':
+               description => 'Allow SSH from DSA',
+               rule        => '&SERVICE_RANGE(tcp, ssh, $SSH_SOURCES)'
+       }
+       @ferm::rule { 'dsa-ssh-v6':
+               description => 'Allow SSH from DSA',
+               domain      => 'ip6',
+               rule        => '&SERVICE_RANGE(tcp, ssh, $SSH_V6_SOURCES)'
+       }
 
-       file { "/etc/ssh/ssh_config":
-               source  => [ "puppet:///ssh/ssh_config" ],
-               require => Package["openssh-client"]
-                ;
-              "/etc/ssh/sshd_config":
-               content => template("ssh/sshd_config.erb"),
-               require => Package["openssh-server"],
-                notify  => Exec["ssh restart"]
-                ;
-              "/etc/ssh/userkeys":
+       file { '/etc/ssh/ssh_config':
+               content => template('ssh/ssh_config.erb'),
+               require => Package['openssh-client']
+       }
+       file { '/etc/ssh/sshd_config':
+               content => template('ssh/sshd_config.erb'),
+               require => Package['openssh-server'],
+               notify  => Service['ssh']
+       }
+       file { '/etc/ssh/userkeys':
                ensure  => directory,
-               owner   => root,
-               group   => root,
-               mode    => 755,
-                ;
-              "/etc/ssh/userkeys/root":
-                content => template("ssh/authorized_keys.erb"),
-                mode    => 444,
-                require => Package["openssh-server"]
-                ;
+               mode    => '0755',
+               require => Package['openssh-server']
+       }
+       file { '/etc/ssh/userkeys/root':
+               content => template('ssh/authorized_keys.erb'),
        }
 
-        exec { "ssh restart":
-            path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
-            refreshonly => true,
-        }
+       if ($::lsbmajdistrelease >= 8) {
+               if ! $has_etc_ssh_ssh_host_ed25519_key {
+                       exec { 'create-ed25519-host-key':
+                               command => 'ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -q -P "" -t ed25519',
+                       }
+               }
 
-        ferm::rule { "dsa-ssh":
-                description     => "Allow SSH from DSA",
-                rule            => "proto tcp mod state state (NEW) dport (ssh) @subchain 'ssh' { saddr (\$SSH_SOURCES) ACCEPT; }"
-        }
-        ferm::rule { "dsa-ssh-v6":
-                description     => "Allow SSH from DSA",
-                domain          => "ip6",
-                rule            => "proto tcp mod state state (NEW) dport (ssh) @subchain 'ssh' { saddr (\$SSH_V6_SOURCES) ACCEPT; }"
-        }
+               if $systemd {
+                       package { [ 'libpam-systemd' ]:
+                               ensure => installed
+                       }
+               }
+       }
 }