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

Foreman / Puppet: добавление пользователя в sudoers с помощью модуля

Я хотел бы улучшить свои навыки в Foreman и Puppet. Для этого я хотел бы выполнить несколько простых задач.

В моей конфигурации все серверы, принадлежащие группе хостов "Basic", должны получить базовую настройку, включая добавление нового пользователя и добавление его в файл sudsers.

Для этого я использую example42 / sudo

Теперь я хотел бы добавить пользователя, добавив файл в каталог /etc/sudoers.d/.

Документация говорит мне использовать sudo::directive.

Это пример:

sudo::directive { 'jenkins':
  content => "jenkins ALL=NOPASSWD: /usr/sbin/puppi \n", # Double quotes and newline (\n) are needed here
}

Теперь мой вопрос: я знаю, как добавить класс в группу хостов. Я также знаю, как переопределить параметры.

Моя текущая конфигурация для группы хостов "Базис" выглядит так:

Но как я могу использовать sudo::directive в Формане?

Классификаторы внешних узлов, такие как Foreman, не предназначены для прямого объявления отдельных ресурсов. Вы можете сделать пару вещей:

  • определить значения глобальных переменных
  • объявить классы
  • определить значения параметров класса

Поскольку используемый вами модуль не предлагает параметр класса, который принимает хеш-значение Чтобы описать некоторые исходные ресурсы, вы не можете сделать это напрямую с помощью ENC.

Вы можете создать собственный модуль, который принимает хеш-значение и объявляет sudo::directive ресурсы для вас, использующие create_resources.