All pastes #628260 Raw Edit

micah

public text v1 · immutable
#628260 ·published 2007-07-20 20:59 UTC
rendered paste body
class ssh_base {
  file { "/etc/ssh":
    ensure => directory,
    mode => 0755,
  }
}

class ssh_client inherits ssh_base {
  # Collect all the keys                                                                                                                                      
  Sshkey <<||>>

  package { "openssh-client":
    ensure => installed,
    before => File["/etc/ssh"],
  }
}

class ssh_server inherits ssh_base {
  # every server is a client also                                                                                                                             
  include ssh_client

  package { "openssh-server":
    ensure => installed,
  }

  service { ssh:
    ensure => running,
    pattern => "sshd",
    require => Package["openssh-server"],
  }

  # Add the key, if there is one                                                                                                                              
  case $sshrsakey {
    "": {
      err("no sshkey on $fqdn")
      }
      default: {
        debug ( "Storing rsa key for $hostname.$domain" )
        @@sshkey { "$hostname.$domain": type => ssh-rsa, key => $sshrsakey, ensure => present }
      }
    }

  $real_ssh_port = $ssh_port ? { '' => 22, default => $ssh_port }
  sshd_config{ "Port": ensure => $real_ssh_port }

}

define sshd_config($ensure) {
  replace { "sshd_config_$name":
    file => "/etc/ssh/sshd_config",
    pattern => "^$name +(?!\\Q$ensure\\E\\D).*",
    replacement => "$name $ensure # set by puppet",
    notify => Service[ssh],
  }
}