usando o painel de fantoches como um enc

1

0 down vote favorito

Estou usando uma configuração mestre de fantoches com painel de fantoches sendo executado em um servidor separado. Também configurei o painel para usar o https em execução com o passageiro. Eu gostaria de transformar o painel de fantoches em um ENC.

Eu configurei a seguinte configuração em cada mestre de marionetes (desculpe os espaços no link):

node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// puppet-dashboard /usr/share/puppet-dashboard/bin/external_node

Eu editei o script ruby external_node e especifiquei o URL https para o painel, mas estou recebendo este erro nos nós do fantoche:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: 
Failed when searching for node ukserver0028.domain.net: Failed to find ukserver0028.domain.net via exec: Execution of '/usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net' returned 127:
Error: Could not retrieve catalog; skipping run

o selinux está definido como permissivo

Eu executei o seguinte comando no mestre de marionetes

/usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net

mas recebo este erro:

/usr/lib/ruby/1.8/net/http.rb:586:in 'connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

Isso me indicou o script external_node e o caminho para os certificados SSL

CERT_PATH 
PKEY_PATH 
CA_PATH   

Eu editei o arquivo external_node e apontei para os certificados que são usados pelo painel SSL, que foram criados pela ferramenta rake.

$ sudo -u certificado ancinho do painel de fantoches: create_key_pair    $ sudo -u ancinho-dashboard rake cert: request

Também notei que o nome comum é, na verdade, painel, e não painel de marionetes, que é o meu nome-c em DNS. Agora posso executar o seguinte comando com sucesso.

/usr/bin/env PUPPET_DASHBOARD_URL=https://dashboard /usr/share/puppet-dashboard/bin/external_node puppet.domain.net

No entanto, se eu executar o mesmo comando usando qualquer outro nó que não seja o servidor de fantoches ou de fantoches, recebo um erro SSL, suponho que os outros nós fantoches no ambiente não estejam cientes ou os certificados de fantoches criados por a ferramenta de rake para ativar o HTTPS no painel.

Portanto, quais são os certs que eu deveria estar usando no arquivo external_node?

Além disso, eu tenho um ambiente de areia com painel de fantoches que roda apenas usando http. Eu tenho a configuração funcionando especificando o caminho para o external_node definido corretamente em puppet.conf e configurando o arquivo external_node para usar HTTP. Portanto, definitivamente há algo errado ao usar o painel em execução em HTTPS.

Muito obrigado - Oli

    
por Oli 05.03.2013 / 23:01

1 resposta

2

Consegui consertar isso. Uma vez que todas as configurações estavam corretas, tudo funcionou bem.

As áreas principais eram - o código de domínio externo precisa estar em todos os mestres de fantoches e no servidor do painel de fantoches. Os locais dos certificados devem ser aqueles criados pelas ferramentas de rake ao habilitar https no painel. Você pode vê-los no arquivo settings.yml no servidor do painel. Certifique-se de que no DASHBOARD_URL você está usando o nome comum no certificado criado pela ferramenta rake, na maioria dos casos, no painel. Pode ser necessário configurar um nome-c para o painel ou um registro A, se assim desejar. Certifique-se de que o script working_node externo é copiado para todos os servidores master de fantoches e é o mesmo. A localização que usei foi / usr / share / puppet-dashboard / bin / external_node. Verifique se o URL é https: // dashboard ou o cn do certificado do painel. Caso contrário, você obterá um nome SSL que não corresponda ao erro certname

O arquivo puppet.conf em cada mestre tem 2 linhas para habilitar o ENC. Isso é o seguinte:

node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// dashboard/usr/share/puppet-dashboard/bin/external_node

Veja o nome do painel - que é o mesmo que o nome do CN no certificado do painel. Certifique-se de reiniciar o httpd em cada mestre de marionetes. Se você ainda está lendo isso, boa sorte!

    
por 07.03.2013 / 11:43