puppet saz / implementação do módulo sudo

1

Estou tentando implantar o módulo saz / sudo para gerenciar nossas configurações do sudo (sou muito novo no fantoche (~ 3 dias), então, por favor, desculpe minha potencial ignorância).

Nossa configuração atual do sudo está contida em um único arquivo (grande) / etc / sudoers, que gostaria de dividir em arquivos relevantes em sudoers.d.

Consegui instalar o módulo saz / sudo, mas não consegui configurá-lo. Eu tenho atualmente para trabalhar, incluindo-o em outro módulo, site_sudo, usando a seguinte configuração:

# 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

com o conteúdo do init.pp da seguinte forma:

[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]#

Minha pergunta: esta é a melhor maneira correta de implementar o saz / sudo?

Eu meio que esperava ter toda essa configuração no módulo saz / sudo principal, ao invés de ter que criar site_sudo como este, mas a documentação não está clara para fazer isso.

Se for possível incluir essa configuração no módulo saz / sudo principal, alguém pode sugerir como conseguir isso?

    
por Mark V 30.05.2017 / 07:54

1 resposta

3

Você está fazendo a coisa certa em manter a configuração fora do módulo que está usando.

Os módulos devem ser reutilizáveis e, se você personalizar um módulo para conter a configuração local do site, precisará manter suas personalizações. Não será possível instalar uma versão mais recente do módulo sem mesclar suas alterações (dependendo de como você mantém as alterações e instala os módulos, isso pode ser algo trivial ou difícil).

O módulo fornece uma interface pública através de sudo::conf e seus parâmetros de classe para personalizar tudo o que você precisa.

A classe site_sudo que você criou é uma classe perfil (veja: Funções e Perfis ) para configurar o sudo usando o módulo saz / sudo para suas preferências de site e serviço. Este é um padrão de design comum e bem usado em ambientes Puppet, por isso, continue com isso.

O segundo método que o saz / sudo suporta é definir a configuração em Hiera sob a chave sudo::configs . Ele procurará esses dados e aplicará a configuração. Usar o Hiera é outra boa maneira de manter a configuração fora do módulo que você está usando. Seus arquivos de dados Hiera podem ser armazenados em seu ambiente Puppet.

por 30.05.2017 / 13:15