Назад | Перейти на главную страницу

Как мне потребовать ресурс в определении марионетки на основе параметра массива?

У меня есть определение, которое выглядит так:

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 потерпит неудачу, если он пуст или это просто строка (т.е. определяет только одну группу вместо массива)?

Да, groups => $groups скорее всего выйдет из строя. В частности, здесь он может не выйти из строя, но этот конкретный шаблон небезопасен.

Положить if оператор проверки, установлен он или нет, и определить user с ним и без него на if и else тела.