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

Невозможно использовать группы в виртуальном пользователе

Я пытаюсь настроить виртуальных пользователей в марионетке. Обычные пользователи работают нормально, но по какой-то причине, когда я пытаюсь добавить «группы» к определению пользователя, запуск не получается.

Вот базовая конфигурация виртуального пользователя ...

class users::virtual {
    define localuser ($uid,$gid) {

            user { $title:
                    ensure  =>      "present",
                    uid     =>      $uid,
                    gid     =>      $gid,
                    shell   =>      "/bin/bash",
                    home    =>      "/home/$title",
                    comment =>      $realname,
                    managehome =>   true,
            }
      }
}

и вот пользователь вызвал ...

class my::users {
include users::virtual
    @users::virtual::localuser { "jdehnert": 
    uid =>  "504",
    gid =>  "users",
    groups  =>  ["wheel", "rvm"],
    require =>  Group["rvm"],
    }
}

init.pp - это ...

class people {
include my::users
realize (
    Users::Virtual::Localuser["jdehnert"],
    )
}

Когда я запускаю тест --noop на клиенте, я получаю это сообщение на клиенте ...

# puppetd --test --noop
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter groups at /etc/puppet/manifests/users/users.pp:7 on node dev-web-1.

а этот на сервере ...

Aug 23 04:29:38 centos63 puppet-master[21713]: Invalid parameter groups at /etc/puppet/manifests/users/users.pp:7 on node dev-web-1

Если я вытащу строку «группы», эта конфигурация будет работать нормально.

Я также обнаружил, что если я просто сделаю простой пользовательский ресурс, я могу передать параметр «группы». Итак, почему это не работает с виртуальным пользователем?

Спасибо,

Джеймс "Зик" Денерт
jdehnert@dehnert.com

Вы что-то неправильно понимаете:

@users::virtual::localuser { "jdehnert": 
uid =>  "504",
gid =>  "users",
groups  =>  ["wheel", "rvm"],
require =>  Group["rvm"],
}

Выше вы объявляете localuser, который таким образом определяется:

define localuser ($uid,$gid) {

Это означает только параметры, которые он получает, uid, gid и метапараметры (например, require). поскольку groups не метапараметр и, очевидно, не uid или gid, то он недействителен.