марионеточное внедрение модуля saz / sudo

Я пытаюсь развернуть модуль saz / sudo для управления нашими конфигурациями sudo (я новичок в марионетке (~ 3 дня), поэтому, пожалуйста, извините за мой потенциал незнание).

Наша текущая конфигурация sudo содержится в одном (большом) файле / etc / sudoers, который я хотел бы разбить на соответствующие файлы в sudoers.d.

Мне удалось получить модуль saz / sudo установлен, но я не могу его настроить. В настоящее время я заставил его работать, включив его в другой модуль site_sudo, используя следующую конфигурацию:

# cwd : /etc/puppetlabs/code/environments/production/modules
site_sudo/examples
site_sudo/files
site_sudo/Gemfile
site_sudo/manifests
site_sudo/metadata.json
site_sudo/Rakefile
site_sudo/README.md
site_sudo/spec
site_sudo/examples/init.pp
site_sudo/files/etc
site_sudo/files/etc/sudoers.d
site_sudo/files/etc/sudoers.d/svc_servicenanme
site_sudo/files/etc/sudoers.d/user_username
site_sudo/manifests/init.pp
site_sudo/spec/classes
site_sudo/spec/spec_helper.rb
site_sudo/spec/classes/init_spec.rb

с содержимым init.pp следующим образом:

[root@puppet modules]# cat site_sudo/manifests/init.pp  | grep -vP '^#'
class site_sudo {

  class { 'sudo': }
  sudo::conf { 'user_username':
    source => 'puppet:///modules/site_sudo/etc/sudoers.d/user_username',
  }
  sudo::conf { 'svc_servicename':
    source => 'puppet:///modules/site_sudo/etc/sudoers.d/svc_servicename',
  }

}
[root@puppet modules]#

Мой вопрос: это лучший / правильный способ реализации saz / sudo?

Я как бы надеялся, что вся эта конфигурация будет в основном модуле saz / sudo, вместо того, чтобы создавать site_sudo, как это, но в документации не ясно, как это сделать.

Если возможно включить эту конфигурацию в основной модуль saz / sudo, может кто-нибудь подсказать, как этого добиться?

1
задан 30 May 2017 в 08:54
1 ответ

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

Модули должны быть многоразовыми, и если вы настраиваете модуль так, чтобы он содержал локальную конфигурацию, то вам нужно будет поддерживать свои настройки. Невозможно установить более новую версию модуля без слияния ваших изменений (в зависимости от того, как вы поддерживаете изменения и устанавливаете модули, это может быть где угодно - от тривиального до сложного).

Модуль предоставляет публичный интерфейс через sudo::conf и его классовые параметры для настройки всего, что вам нужно.

Созданный вами класс site_sudo является классом profile (см.: Roles and Profiles) для настройки sudo с помощью модуля saz/sudo для вашего сайта и настроек сервиса. Это общий и хорошо используемый шаблон проектирования в кукольном окружении, поэтому обязательно придерживайтесь его.

Второй метод, который поддерживает saz/sudo, это определение конфигурации в Hiera под ключом sudo::configs. Он просмотрит эти данные и затем применит конфигурацию. Использование Hiera - это ещё один хороший способ сохранить конфигурацию вне используемого вами модуля. Ваши файлы данных Hiera могут храниться в вашем кукольном окружении.

3
ответ дан 3 December 2019 в 18:30

Теги

Похожие вопросы