puppet-dashboard: Não foi possível recuperar os fatos do serviço de inventário

3

Estou tentando configurar o painel de fantoches e estou encontrando um problema com o Inventário / fatos:

Could not retrieve facts from inventory service: 403 "Forbidden request: puppetmasterhostname(ip.address.was.here) access to /facts/agenthostname.example.com [find] at line 99 "

No /etc/puppet/auth.conf no mestre de marionetes:

path /facts
method find
auth any
allow *

Eu reiniciei o puppetmaster e o puppet-dashboard, mas ainda recebo o erro acima. Alguma idéia ou dicas para solução de problemas?

UPDATE

Estou usando o fantoche v2.7.13. Conforme solicitado, aqui está meu /etc/puppet/auth.conf completo. A maioria deles são padrões que já estavam na configuração:

# allow nodes to retrieve their own catalog (ie their configuration)
path ~ ^/catalog/([^/]+)$
method find
allow $1

# allow nodes to retrieve their own node definition
path ~ ^/node/([^/]+)$
method find
allow $1

# allow all nodes to access the certificates services
path /certificate_revocation_list/ca
method find
allow *

# allow all nodes to store their reports
path /report
method save
allow *

# inconditionnally allow access to all files services
# which means in practice that fileserver.conf will
# still be used
path /file
allow *

### Unauthenticated ACL, for clients for which the current master doesn't
### have a valid certificate; we allow authenticated users, too, because
### there isn't a great harm in letting that request through.

# allow access to the master CA
path /certificate/ca
auth any
method find
allow *

path /certificate/
auth any
method find
allow *

path /certificate_request
auth any
method find, save
allow *

# this one is not stricly necessary, but it has the merit
# to show the default policy which is deny everything else
path /
auth any

# Inventory
path /facts
method find
auth any
allow *

/etc/puppet/puppet.conf

[main]
    # The Puppet log directory.
    # The default value is '$vardir/log'.
    logdir = /var/log/puppet

    # Where Puppet PID files are kept.
    # The default value is '$vardir/run'.
    rundir = /var/run/puppet

    # Where SSL certificates are kept.
    # The default value is '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # The file in which puppetd stores a list of the classes
    # associated with the retrieved configuratiion.  Can be loaded in
    # the separate ''puppet'' executable using the ''--loadclasses''
    # option.
    # The default value is '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Where puppetd caches the local configuration.  An
    # extension indicating the cache format is added automatically.
    # The default value is '$confdir/localconfig'.
    localconfig = $vardir/localconfig

[master]
   reports = store, http
   reporturl = http://puppetmasterhostname.example.com:3000/reports/upload
   facts_terminus = yaml
   storeconfigs = true
   storeconfigs_backend = puppetdb
   node_terminus = exec
   external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=http://localhost:3000 /opt/puppet-dashboard/bin/external_node
    
por Banjer 25.05.2012 / 17:16

4 respostas

2

minha configuração tem o seguinte ...

path /facts
auth any
allow *

path /fact
auth any
allow *

path /facts_search
allow *

Eu também acho que eu tive que criar um arquivo vazio chamado namespaceauth.conf como assim;

touch /etc/puppet/namespaceauth.conf
    
por 25.05.2012 / 17:23
3

Eu tive o mesmo problema e descobri que a linha 99 em /etc/puppet/auth.conf correspondia ao seguinte:

# this one is not stricly necessary, but it has the merit
# to show the default policy which is deny everything else
path /
auth any

Comentar o path / e auth any permitiu que o Painel acessasse o inventário usando a seguinte configuração:

path /facts
auth yes
method find, search
allow dashboard

... conforme retirado link .

namespace.conf e os outros caminhos não foram necessários para mim.

    
por 13.09.2012 / 13:41
2

É um problema de compra - verifique se a seção:

path /facts
method find
auth any
allow *

é ANTES da seção padrão:

# this one is not stricly necessary, but it has the merit
# to show the default policy which is deny everything else
path /
auth any

Isso funcionou + resolveu o problema para mim. Ou como acima, você poderia apenas comentar!

    
por 20.05.2013 / 02:45
2

O problema que você está tendo é duplo. Primeiro, seu arquivo auth.conf precisa ter o acesso adequado. Muitas das soluções mencionadas aqui conseguem isso, mas correm grande risco! Usando o seguinte:

path /facts
auth any
allow *

path /fact
auth any
allow *

path /facts_search
allow *

... você está permitindo o acesso *

"asterisco" significa TODOS !!!

Para corrigir esse problema, você precisa que o auth.conf tenha:

path /facts
auth yes
method find, search
allow dashboard

Então você precisa criar certs para o usuário "dashboard", assim como faz para os nós. No CentOS 6 com o painel de fantoches-1.2.23-1.el6.noarch, estas são as etapas:

1) assegure-se de que config / settings.yml tenha o nome de host correto e     porta para o seu puppetmaster

2) gere seu par de chaves para o painel:

    sudo -u puppet-dashboard rake cert:create_key_pair

3) gere a solicitação do certificado para o painel:

sudo -u puppet-dashboard rake cert:request

4) no maestro, assine o cert:

    puppet cert sign dashboard

5) obtenha o certificado do mestre de bonecos

    sudo -u puppet-dashboard rake cert:retrieve

6) reinicie o painel

Tudo isso permitirá o acesso do painel aos fatos do seu mestre de marionetes com a autenticação do Certificado.

Aproveite!

    
por 03.12.2013 / 23:37