servindo arquivos através do Puppet: “Could not evalu”

5

Versão do TLDR: Dado o uso normal do fileserver.conf, como eu construo uma URL de fantoche que realmente funciona?

.

Estou tentando começar com o Puppet e algumas instâncias virtuais. Para uma primeira tarefa, estou tentando distribuir um arquivo authorized_keys usando o tipo de arquivo . Sim, isso pode ser feito com o tipo de chave autorizada ssh , mas isso é sobre distribuição de arquivos por enquanto, certo?

O arquivo que serve wiki implica os caminhos que eu deveria estar construindo. Primeiro, eis o que o puppetmasterd sabe:

$ grep -B 1 path /etc/puppet/fileserver.conf 
[files]
  path /etc/puppet

Em segundo lugar, criei um arquivo, /etc/puppet/modules/ssh/manifests/init.pp , que contém o seguinte:

$ cat /etc/puppet/modules/ssh/manifests/init.pp
class ssh {
  file { "/home/ubuntu/.ssh/authorized_keys":
    source => "puppet:///modules/ssh/authorized_keys",
    mode => 400,
    owner => ubuntu,
    group => ubuntu
  }

  file { "/home/ubuntu/.ssh":
    ensure => directory,
    mode => 700,
    owner => ubuntu,
    group => ubuntu
  }

  notify {"all done.":}

}

# declare class
class {'ssh':}

Quando eu executo o arquivo diretamente, ele falha da seguinte forma:

$ puppet apply --verbose /etc/puppet/modules/ssh/manifests/init.pp
info: Applying configuration version '1357516270'
notice: all done.
notice: /Stage[main]/Ssh/Notify[all done.]/message: defined 'message' as 'all done.'
err: /Stage[main]/Ssh/File[/home/ubuntu/.ssh/authorized_keys]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/ssh/authorized_keys at /etc/puppet/modules/ssh/manifests/init.pp:7
notice: Finished catalog run in 0.04 seconds

Eu tentei várias versões do link da fonte de marionetes. Por exemplo:

puppet:///modules/ssh/authorized_keys
puppet:///authorized_keys

Aqui é onde reside o arquivo authorized_keys :

$ ls -l /etc/puppet/modules/ssh/files/authorized_keys
-rw------- 1 root root 796 Jan  6 23:30 authorized_keys

Este padrão de "init.pp" e "files / *" parece corresponder ao Entrada avançada no wiki do Puppet Pattern .

Aqui está a minha versão de fantoches, para completar.

$ puppet --version
2.7.18

Para mostrar que não estou fazendo a pergunta "consertar minha pergunta simples" ou "fazer minha lição de casa", tenho trabalhado para encontrar respostas para essa pergunta básica. Eu incluí os links acima para fontes de referência e examinei outro responde também. Eu vi falhas que são problemas de certificação ( 1 , 2 ), mas isso é local. Irritantemente, isso parece muito próximo, mas dá uma reviravolta Vagante , embora haja uma resposta que fala sobre uma seção [modules] em vez de uma seção [files] , que não existe no wiki. Eis um recente tópico "lista de discussão oficial" , mas não consegui entender o que estou fazendo errado.

    
por tedder42 07.01.2013 / 01:14

2 respostas

2

Certifique-se de que algo como isto está definido para o caminho de seus módulos em puppet.conf no seu mestre

  modulepath = /etc/puppet/modules

Se você fizer algo como

 source => "puppet:///modules/ssh/authorized_keys",

Se procurar o arquivo em

 /etc/puppet/modules/ssh/files/authorized_keys

EDITAR:

você está misturando arquivos com módulos btw .. eles são duas coisas completamente diferentes. Geralmente todo mundo usa módulos nos dias de hoje e nunca toca em [arquivos] já que é muito confuso.

    
por 07.01.2013 / 02:55
2

Qualquer registro no seu mestre?

Esse local está correto, mas suspeito que o modo 600 no arquivo esteja impedindo que o servidor de arquivos possa lê-lo, já que o processo mestre de marionetes geralmente é executado como um usuário não raiz ( puppet por padrão ).

Verifique os registros, mas uma mudança de modo no arquivo provavelmente funcionará.

    
por 07.01.2013 / 02:47

Tags