Шеф-повар: создать пользователя только для определенных ролей?
Я хотел бы настроить пользователя (называемого "развертыватель"), но только для определенных ролей.
Я использую поваренную книгу пользователей Opscode. Я называю это из "базовой" (включенной во все другие кулинарные книги) кулинарной книги обертки. Итак, пользователи в моем data_bags/users
каталог создается на всех моих узлах Chef.
Имея это в виду, мой пользователь "развертывателя", кажется, не принадлежит data_bags/users/deployer.json
, (Это создаст его для всех узлов.)
Я думаю и исследую, чтобы найти один или несколько чистых способов сделать это. Мой вариант использования, вероятно, не является чем-то необычным, поэтому я надеюсь найти "легкий" путь с помощью Chef, чтобы сделать то, что мне нужно. Мои мысли и идеи в настоящее время включают в себя:
Я еще не нашел явный код, который считывает из моего пакета данных пользователей. После нахождения такого кода, возможно, я мог бы настроить его для фильтрации на основе атрибута, чтобы исключить определенных пользователей, если не выполняется "роль" определенной роли?
Я могу создать отдельный пакет данных, возможно, "foo-users", где "foo" - это роль. Тогда я мог бы использовать кулинарную книгу пользователей Opscode, чтобы использовать именно этот пакет данных именно тогда, когда это необходимо.
2 ответа
Взгляните на кулинарную книгу развертывателя. Эта кулинарная книга является дополнительной к кулинарной книге пользователей, так как она может использовать ту же базу данных "пользователей".
В настоящее время я склоняюсь к использованию этого кода для ролей, где это необходимо:
user "deployer" do
comment "deployer account"
supports manage_home: true
shell "/bin/false"
end
Поскольку мне не нужно, чтобы у пользователя была оболочка для входа, хранение секретных данных в пакете данных не особенно важно.
Это не было бы чистым решением, если бы у меня было много учетных записей пользователей, принадлежащих различным комбинациям машин. Но для моего случая это просто и должно работать нормально.