Я пытаюсь настроить виртуальных пользователей в марионетке. Обычные пользователи работают нормально, но по какой-то причине, когда я пытаюсь добавить «группы» к определению пользователя, запуск не получается.
Вот базовая конфигурация виртуального пользователя ...
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
, то он недействителен.