# manifests/client.pp class sshd::client { case $operatingsystem { debian: { include sshd::client::debian } default: { case $kernel { linux: { include sshd::client::linux } default: { include sshd::client::base } } } } } class sshd::client::base { # this is needed because the gid might have changed file { '/etc/ssh/ssh_known_hosts': mode => 0644, owner => root, group => 0; } # Now collect all server keys Sshkey <<||>> } class sshd::client::linux inherits sshd::client::base { if $ssh_ensure_version == '' { $ssh_ensure_version = 'installed' } package {'openssh-clients': ensure => $ssh_ensure_version, } } class sshd::client::debian inherits sshd::client::linux { Package['openssh-clients']{ name => 'openssh-client', } }