Puppet move file com permissão 400?

1

Estou tentando usar o fantoche para copiar um arquivo:

  file{ '/root/.ssh/id_rsa' :
    source =>  'puppet:///modules/certs/.ssh/id_rsa',
  }

As permissões são -r-------- 1 root root .

Se eu executar chmod +r no arquivo meu script funciona, mas com as permissões acima, o fantoche não copia o arquivo.

Error: /Stage[main]/Main/Node[default]/File[/root/.ssh/id_rsa]: Could not evaluate: Could not retrieve file metadata for puppet:///modules/certs/.ssh/id_rsa: Error 500 on SERVER: Server Error: Permission denied - /etc/puppetlabs/code/environments/production/modules/certs/files/.ssh/id_rsa

Presumi que o fantoche estaria sendo executado como root e, portanto, seria capaz de copiar o arquivo. Existe uma maneira de fazer isso sem alterar a permissão?

    
por Philip Kirkbride 02.05.2017 / 14:27

1 resposta

3

A mensagem de erro indica que você está usando uma configuração mestre / agente. Neste tipo de configuração, o mestre Puppet (ou servidor) geralmente é executado sob o usuário puppet , pois é um aplicativo da Web que fornece simplesmente arquivos e catálogos para download.

Somente o agente Puppet (no cliente) será executado como root para fazer alterações de configuração no sistema operacional.

O arquivo no seu mestre de marionetes deve ser legível para o usuário puppet , seja alterando a propriedade:

chown puppet id_rsa

ou dando permissões de leitura de grupo:

chgrp puppet id_rsa
chmod g+r id_rsa

ou dando outras permissões de leitura, como você fez com chmod +r .

Observe que há controles de autorização limitados sobre o acesso ao arquivo. Qualquer host com uma chave / certificado SSL Puppet válida poderá fazer o download do arquivo a partir do mestre do Puppet, mesmo que ele não tenha o manifest / file configurado. Este não é um método muito seguro para distribuir chaves privadas.

    
por 02.05.2017 / 14:48

Tags