Testando um mestre de marionetes com o vagrant

2

Eu sou novo no fantoche. Eu li um monte, consegui escrever um manifesto simples (e provavelmente desajeitado) para configurar um host junto com um script de tela similarmente simples para lidar com a configuração pré-puppet. Ótimo, então é hora de ser mais sério. Eu configurei um mestre de marionetes sob o apache2. (Eu estou no Ubuntu 14.04 com pacotes na versão 3.8, graças ao deb de laboratórios de marionetes ...)

Até agora, tudo bem, mas estou preso em alguns pontos agora, apesar de muito procurar e jogar. Em última análise, isso se resume em como configurar testes de regressão para que eu acredite que sempre possa recriar minha infra.

  1. O mestre de marionetes está sendo executado sob o apache2. Eu suponho que é saudável, na medida em que não se queixa e eu estou servindo no 8140. Mas eu adoraria uma maneira melhor de confirmar isso do que a ausência de erros. Existe uma maneira de perguntar sobre a saúde do mestre?

  2. Eu gostaria de poder fazer testes automatizados. Para os agentes (hosts individuais na minha frota (minúscula)), posso falar sobre vagantes, dizer-lhes que seu nome é X e, em seguida, fazer uma marionete. Então eu posso ver se o host vem do jeito que eu espero para o host X. Então eu posso executar um script na vm que verifica o que eu acho que o host deveria estar fazendo. Mas eu gostaria de automatizar isso, mas, estranhamente, não encontrei receitas comuns para isso. Aposto que isso não é algo que eu preciso inventar. Quaisquer ponteiros?

  3. Na mesma linha, eu gostaria de fazer testes automatizados para o mestre também. Então, isso é (1) e (2) juntos, já que não sei como testar o mestre.

Obrigado por qualquer indicação.

    
por jma 15.02.2016 / 09:10

1 resposta

3
  1. puppetmaster em si não fornece muita informação. Se você adicionar o seguinte a /etc/puppet/auth.conf :

    path ~ ^/status/no_key$
    auth off
    allow *
    

    Você deve consultar puppetmaster status sem fornecer certificados (pode ser uma boa ideia colocar na lista de permissões IPs específicos usando allow_ip )

    curl -ksS -H "Accept: pson" https://puppet.example.com:8140/production/status/no_key
    

    Qual deve responder com HTTP 200:

    {"is_alive":true,"version":"3.8.1"}
    

    Além disso, puppetmaster armazena muitas informações em YAML, normalmente em /var/lib/puppet/reports/ . Mas esses relatórios não são realmente amigos do homem. Então, você provavelmente está procurando por algo como painel de fantoches , que costumava fazer parte da distribuição oficial do Puppet, agora desenvolvida como um projeto de código aberto.

  • Módulos de fantoches são normalmente testados usando o rspec-puppet , que é uma extensão da estrutura de teste comum do Ruby. Provavelmente você está procurando o Beaker , que combina caixas Vagrant e testes rspec-puppet. Dê uma olhada no este tutorial .

  • Claro, você provavelmente não quer depurar seu código em produção.

    Existemváriasopçõespararesolveresseproblema.Umdelesestáusando fluxos de trabalho com r10k ou abordagem de papéis / perfis . Ou você pode simplesmente girar um conjunto de caixas do Vagrant, testar localmente e depois implantar. É definitivamente uma boa ideia gerir versões de módulos de fantoches usados, por ex. usando bibliotecário de marionetes ou r10k . O fantoche está evoluindo, então a lista de ferramentas preferidas pode mudar com o tempo.

  • por 17.02.2016 / 11:45