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.
-
Execute
puppet agent -t --environment beta
para executar o agente com um ambiente não padrão. -
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:
-
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
-
Verifique se o script é executável (
chmod +x /etc/puppetlabs/puppet/node.sh
) -
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.