Trying to use a case statement with a setup.pp file that uses hiera and parameters. We have pulled a module from the forge and are trying to make it fit our needs.
The issue I'm trying to resolve is to have the user's home directories created on /home/$user on Red hat systems and /export/home/$user on Solaris nodes. So far I've tried to use a case statement based on osfamily, but I'm getting an error.
Code:
define sysusers::setup($hash) {
if(!defined(User[$name])) {
user { $name :
case $osfamily {
'RedHat': { home => "/home/$hash[$name]['name']"}
'Solaris': { home => "/export/home/$hash[$name]['name']"}
default: { home => "/home/$hash[$name]['name']"}
}
ensure => $hash[$name]['ensure'],
comment => $hash[$name]['comment'],
expiry => $hash[$name]['expiry'],
gid => $hash[$name]['gid'],
Error:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Syntax error at 'osfamily'; expected '}' at /etc/puppetlabs/puppet/environments/theblack/modules/sysusers/manifests/setup.pp:5
Module:
https://forge.puppetlabs.com/mthibaut/usersCase statement reference:
https://docs.puppetlabs.com/puppet/latest/reference/lang_conditional.html#case-statements