class kerberos::client { case $operatingsystem { centos,fedora: { package { ["krb5-workstation", "pam_krb5"]: ensure => installed, } } } file { "/etc/krb5.conf": ensure => present, mode => 0644, owner => root, group => $operatingsystem ? { openbsd => wheel, default => root, }, } } class kerberos::server inherits kerberos::client { package { "heimdal-server": ensure => installed, } } define kerberos::keytab($principals = [], $ensure = present, $owner = "root", $group = "root", $mode = "0600") { file { "${name}": ensure => $ensure, content => template("kerberos/keytab.erb"), mode => "${mode}", owner => "${owner}", group => "${group}", } }