Puppet atribui nós aos ambientes do mestre?

1

Estou aprendendo a usar o Puppet e configurar e conectar com sucesso um servidor mestre com 2 nós.

Eu criei arquivos para o ambiente production padrão que está funcionando. Eu também tenho um segundo conjunto de configurações chamado beta na minha pasta de ambientes.

Gostaria de atribuir 1 dos meus 2 nós ao grupo beta através do servidor mestre. Como eu faria isso?

Fantoche versão 4

    
por Philip Kirkbride 26.04.2017 / 15:35

1 resposta

3

O ambiente pode ser definido pelo arquivo puppet.conf config do agente, pela opção de linha de comando --environment do agente ou pelo mestre usando um classificador de nó externo (ENC) , em ordem crescente de precedência.

  1. Execute puppet agent -t --environment beta para executar o agente com um ambiente não padrão.

  2. Defina environment = beta em [agent] in /etc/puppetlabs/puppet/puppet.conf para definir o ambiente padrão.

Ou para configurar um ENC para definir o ambiente no mestre:

  1. Crie um script como /etc/puppetlabs/puppet/node.sh em qualquer idioma que você goste, por exemplo

    #!/bin/bash
    if [ "$1" = beta.example.com ]; then
      echo "environment: beta"
    else
      echo "environment: production"
    fi
    
  2. Verifique se o script é executável ( chmod +x /etc/puppetlabs/puppet/node.sh )

  3. No mestrado /etc/puppetlabs/puppet/puppet.conf em [master] , defina:

    node_terminus = exec
    external_nodes = /etc/puppetlabs/puppet/node.sh
    

Quando o agente é executado, ele recuperará as informações do nó do principal, que executa o script do nó. O script retorna um documento YAML (uma linha neste caso) com o nome do ambiente. Se o nome do ambiente for fornecido, o agente será forçado a usar esse ambiente.

O script pode ser implementado da maneira que achar melhor - pode executar algum tipo de consulta (por exemplo, contra um banco de dados), executar alguma lógica contra o hostname (o primeiro argumento, $1 ) ou apenas ser codificado.

    
por 26.04.2017 / 15:53