Puppet 0.25.0: Problemas com controle de acesso, como posso corrigi-los?

4

Então, eu tenho tocado com fantoches por um tempo agora, e eu consegui configurar meu arquivo site.pp e trabalhar do jeito que eu quero quando eu executo o fantoche manualmente, e eu estou começando para seguir em frente para descobrir os problemas do cliente / servidor.

Estou executando uma pequena máquina virtual na minha caixa dev que está tentando sincronizar com o puppetmasterd na minha caixa principal, mas há problemas.

Primeiro de tudo - a sincronização plugin / fact não parece estar funcionando - tentei abrir mais o arquivo auth.conf, mas sinto que estou chegando perigosamente perto de expor minhas configurações para todo o mundo . Os fatos para o nó simplesmente não parecem existir.

Eu tentei olhar para a documentação oficial sobre como configurar isso corretamente, mas tenho a sensação de que a maior parte está escrita antes de 0.25.0. Alguém aí tem alguma idéia para depurar a fonte desse problema em particular?

Estes são os erros que estou vendo no log de erros:

Sep 16 22:12:59 support puppetmasterd[2800]: Not authorized to call search on /file_metadata/facts with {:ignore=>[".svn", "CVS"], :links=>"manage", :recurse=>true}
Sep 16 22:12:59 support puppetmasterd[2800]: Not authorized to call find on /file_metadata/facts
Sep 16 22:13:00 support puppetmasterd[2800]: Host is missing hostname and/or domain: **hostname of my virtual host's NAT gateway**

Sep 16 22:24:43 test puppetd[3841]: Retrieving plugin
Sep 16 22:24:43 test puppetd[3841]: Format s not supported for Puppet::FileServing::Metadata; has not implemented method 'from_s'
Sep 16 22:24:43 test puppetd[3841]: Puppet::Network::Format[json]: false value when expecting true
Sep 16 22:24:43 test puppetd[3841]: Finishing transaction -609701378 with 0 changes
Sep 16 22:24:43 test puppetd[3841]: Fact syncing is deprecated as of 0.25 -- use 'pluginsync' instead
Sep 16 22:24:43 test puppetd[3841]: Retrieving fact
Sep 16 22:24:43 test puppetd[3841]: Format s not supported for Puppet::FileServing::Metadata; has not implemented method 'from_s'
Sep 16 22:24:43 test puppetd[3841]: Puppet::Network::Format[json]: false value when expecting true
Sep 16 22:24:43 test puppetd[3841]: (/File[/var/lib/puppet/facts]) Failed to generate additional resources using 'eval_generate': Error 400 on SERVER: Not authorized to call search on /file_metadata/facts with {:ignore=>[".svn", "CVS"], :links=>"manage", :recurse=>true} 
Sep 16 22:24:43 test puppetd[3841]: Format s not supported for Puppet::FileServing::Metadata; has not implemented method 'from_s'
Sep 16 22:24:43 test puppetd[3841]: Puppet::Network::Format[json]: false value when expecting true
Sep 16 22:24:44 test puppetd[3841]: (/File[/var/lib/puppet/facts]) Failed to retrieve current state of resource: Error 400 on SERVER: Not authorized to call find on /file_metadata/facts  Could not retrieve file metadata for puppet://..fqdn../facts: Error 400 on SERVER: Not authorized to call find on /file_metadata/facts 
Sep 16 22:24:44 test puppetd[3841]: Finishing transaction -610061128 with 0 changes
Sep 16 22:24:45 test puppetd[3841]: Format s not supported for Puppet::Resource::Catalog; has not implemented method 'from_s'
Sep 16 22:24:45 test puppetd[3841]: Puppet::Network::Format[json]: false value when expecting true

puppet.conf no cliente

[main]
server=**fqdn of puppetmasterd**
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
pluginsync=true
node_name=cert
certname=**fqdn of client**

puppet.conf no servidor

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
pluginsync=true

[puppetmasterd]
templatedir=/var/lib/puppet/templates
storeconfigs = true
dbadapter = mysql
dbuser = puppet
dbpassword = **password**
dbserver = localhost
dbsocket = /var/run/mysqld/mysqld.sock

fileserver.conf no servidor

[files]
  path /etc/puppet/files
  allow *

[modules]
  allow *

[plugins]
  allow *

auth.conf no servidor

path ~ ^/catalog/([^/]+)$
method find
allow *

path /certificate_revocation_list/ca
method find
allow *

path /report
method save
allow *

path /file_metadata
auth any
allow *

path /file
allow *

path /certificate/ca
auth no
method find
allow *

path /certificate/
auth no
method find
allow *

path /certificate_request
auth no
method find, save
allow *

path /
auth yes
allow *
    
por gnarf 17.09.2009 / 04:18

1 resposta

3

Primeiro, livre-se de factsync , fact_sync e plugin_sync - nem todos são obrigatórios ou incorretos. Segundo, auth.conf é desnecessário - minhas configurações de 0,25 não têm um auth.conf em nenhum lugar para ser encontrado. Eu realmente acho que você está supercomplicando isso. Se você consertar seus problemas de nome de host / cert (conforme sua outra pergunta) e usar o fileserver.conf que você tem, deve dar certo.

Uma coisa que provavelmente te tropeçará é que o servidor de arquivos libera 400s para tentativas de acessar módulos de servidor de arquivos que não existem (como /facts em suas mensagens de log) em vez de 404s, o que me pegou primeiro. Desativar a sincronização de fatos como sugeri acima (e, como ela está obsoleta e uma idéia muito ruim, não faz mal) eliminará esses erros de qualquer maneira.

    
por 17.09.2009 / 14:24

Tags