Como configurar o parâmetro no módulo puppet sudo para substituir o sudoer do cliente?

2

Estou configurando o módulo sudo no fantoche de acordo com este código

class sudo {
 package { sudo:
   ensure => present,
 }
 if $operatingsystem == "Ubuntu" {
   package { "sudo-ldap":
     ensure => present,
     require => Package["sudo"],
   }
 }
 file { "/etc/sudoers":
    owner => "root",
    group => "root",
    mode => 0440,
    source => "puppet://$puppetserver/modules/sudo/etc/sudoers",
    replace => true,
    require => Package["sudo"],
  }
}

e recebi o seguinte erro:

Se você tiver organizado outros meios para acessar a conta raiz, e você tem certeza que é isso que você quer você pode ignorar essa verificação definindo uma variável de ambiente (exportar SUDO_FORCE_REMOVE = yes).

Qual parâmetro e onde devo colocá-lo no código para fazer o comando sudo satisfaz apenas a chave ssh sem pedir senha.

Qualquer sugestão seria apreciada.

    
por bayou 13.01.2012 / 08:50

2 respostas

2

A mensagem de erro que você está recebendo indica que instalando sudo-ldap que o dpkg está removendo sudo e o script remove está tentando avisá-lo que isso pode deixá-lo em um estado sem acesso root.

Você não pode definir uma variável de ambiente do Puppet para dpkg, então você precisaria lançar o agente Puppet com o ambiente já configurado (talvez exportar de /etc/default/puppet ou algo similar como um script de init).

A questão que você está perguntando abaixo é algo a ver com o próprio sudo e provavelmente está satisfeito usando a opção NOPASSWD no seu arquivo /etc/sudoers :

username ALL=(ALL) NOPASSWD: ALL

Isso permite que o "username" seja sudo para qualquer usuário, execute qualquer comando sem uma senha. Nenhuma verificação de chaves SSH é feita neste estágio (não faz sentido), mas o usuário pode ter se conectado ao sistema com uma chave SSH.

    
por 13.01.2012 / 18:38
0

Isso não vai funcionar isso significa que toda marionete, boneco irá remover o sudo-ldap e tentar instalar o sudo, seguido pela instalação do sudo-ldap novamente.

A parte 'export SUDO_FORCE_REMOVE = yes' foi corrigida pela criação de um arquivo executável com a instrução de exportação e executado com um exec:

> ... 
>     if $ldap {
>     file {
>       '/tmp/delsudo.sh':
>         ensure  => present,
>         mode    => '0700',
>         content => 'export SUDO_FORCE_REMOVE=yes';
>     } ->
>     exec { '/tmp/delsudo.sh':
>       logoutput => on_failure;
>     } 
>     ...
    
por 03.09.2013 / 15:41