如何根据数组参数在 Puppet 定义中请求资源?

如何根据数组参数在 Puppet 定义中请求资源?

我有一个如下所示的定义:

define user::sys_user($fullname, $uid, $groups, $shell='/bin/bash', $authkey, $authkey_type=rsa) {
        $username = "sys_${name}"
        group { $username:
                gid =>  $uid,
        }

        user { $username:
                require => Group[$username],
                ensure => present,
                uid => $uid,
                gid => $uid,
                groups => $groups,
                comment => $fullname,
                shell => $shell,
                managehome => true,
                allowdupe => false,
        }

        ssh_authorized_key { "${username}_authkey":
                user => $username,
                ensure => present,
                key => $authkey,
                type => $authkey_type,
        }
}

user资源中,我需要用户的默认组。如果参数 $groups 提供了补充组,我还想要求提供补充组。

groups => $groups此外,如果它是空的或者只是一个字符串(即只定义一个组而不是一个数组),我的方法会失败吗?

答案1

是的,groups => $groups很可能会失败。这里可能不会失败,但这个特定的模式并不安全。

放置一个if语句来测试它是否被设置,并在和主体user上定义有和没有它。ifelse

相关内容