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

реализация модуля puppet saz / sudo

Я пытаюсь развернуть модуль saz / sudo для управления нашими конфигурациями sudo (я новичок в puppet (~ 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, может ли кто-нибудь подсказать, как этого добиться?

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

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

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

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

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