$username = "animal" $homedir = $username ? { "root" => "/root/", default => "/home/${username}", } File { mode => 0644, owner => $username, group => $username, } user { $username: ensure => present, managehome => true, } file { $homedir: ensure => directory, require => User[$username], mode => 0750; "${homedir}/.vimrc": ensure => present, replace => false, require => File[$homedir], source => "/etc/vimrc"; "${homedir}/.vim": ensure => directory, require => File[$homedir]; "${homedir}/.ssh": ensure => directory, require => File[$homedir], mode => 0700; } file { "${homedir}/.ssh/authorized_keys": ensure => $username ? { "root" => absent, default => present, }, require => User[$username], }