O Cloud Assembly oferece suporte à integração com o gerenciamento de configuração do Puppet Enterprise.
Quando você adiciona o Puppet Enterprise ao Cloud Assembly como um sistema externo, por padrão, ele é disponibilizado em todos os projetos. Você pode restringi-lo a projetos específicos.
Para adicionar uma integração com o Puppet Enterprise, é necessário ter o nome do mestre Puppet e o nome do host ou endereço IP do mestre.
Você pode encontrar os logs do Puppet na seguinte localização, caso precise verificá-los em busca de erros ou para fins de informações.
Descrição | Localização do Log |
---|---|
Log para criar e instalar eventos relacionados | Os logs estão na máquina implantada, em `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Consulte o arquivo log.txt para obter logs completos. Para logs de agentes Puppet detalhados, consulte https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging |
Log para tarefas relacionadas a exclusão e execução do Puppet | Os logs estão no PE em `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Consulte o arquivo log.txt para obter logs completos. |
Procedimento
Resultados
O que Fazer Depois
Adicione componentes do Puppet aos modelo de nuvem desejados.
- Em Modelos de nuvem, no Cloud Assembly, selecione Puppet sob o título Gerenciamento de Conteúdo no menu do modelo de nuvem e arraste o componente Puppet até a tela.
- Digite as propriedades do Puppet no painel à direita.
Propriedade Descrição Mestre Insira o nome da máquina primária Puppet a ser usada com esse modelo de nuvem. Ambiente Selecione o ambiente da máquina primária do Puppet. Função Selecione a função Puppet a ser usada com esse modelo de nuvem. Intervalo de execução do agente A frequência com que você deseja que o agente Puppet faça sondagens na máquina primária Puppet em busca de detalhes de configuração a serem aplicados a máquinas virtuais implantadas relacionadas a esse modelo de nuvem. - Clique na guia Código no painel à direita para visualizar o código YAML para as propriedades de configuração do Puppet.
Quando você adiciona um componente do Puppet a um modelo de nuvem, pode adicionar a propriedade installMaster
ao arquivo YAML para apontar a um mestre de instalação do Puppet, também conhecido como mestre de compilação. O valor dessa propriedade pode ser o endereço IP ou o nome do host do mestre de compilação do Puppet. Usar essa propriedade fornece acesso a capacidades aprimoradas para máquinas virtuais Puppet implantadas e também oferece suporte a ações de dia 2 adicionais.
Puppet_Agent: type: Cloud.Puppet properties: account: PEIntegrationAccount environment: production role: 'role::linux_webserver' host: '${CentOS-Puppet.*}' username: root password: password123! installMaster: my-pe-compile-master.example.com agentConfiguration: certName: '${CentOS-Puppet.address}' osType: linux count: 1
Em alguns casos, o vRealize Automation transmite, por padrão, algumas informações relacionadas à máquina para as máquinas virtuais do Puppet como fatos. Fatos personalizados não são aceitos em máquinas Windows. Em máquinas Linux, algumas informações são transmitidas por padrão, e os usuários podem transmitir informações adicionais usando propriedades personalizadas.
Existem algumas limitações sobre o que é transmitido às máquinas Puppet no Linux. Propriedades personalizadas nos recursos de host e no agente Puppet são transmitidas a máquinas virtuais Puppet. Propriedades personalizadas em recursos de rede não são transmitidas à máquina virtual. Os itens passados incluem propriedades simples, propriedades booleanas, bem como nomes personalizados e tipos complexos, como mapas aninhados com matrizes.
O exemplo a seguir mostra como vários recursos personalizados podem ser chamados em recursos de host:
resources: Puppet-Host: type: Cloud.AWS.EC2.Instance properties: customer_specified_property_on_ec2_resource: "property" customer_specified_property_on_network_resource_that_should_also_be_a_fact_and_is_boolean: true CustomerNameStuff: "zone A" try_map: key: value keytwo: value nested_array: - one - two - true try_array: - one - two -three: inner_key: value
Se um comando de expurgação do Puppet resultar em erros, na maioria dos casos, o vRealize Automation ignorará os erros de eliminação dos nós e prosseguirá com a exclusão do nó. Mesmo que um certificado não seja encontrado para um nó específico, o vRealize Automation prosseguirá com a exclusão. Se o vRealize Automation não puder prosseguir com a exclusão do nó por algum motivo, você poderá clicar em Excluir no menu Ações da página Implementações para abrir uma caixa de diálogo que permitirá que você prossiga com a exclusão do nó. Um fluxo de trabalho semelhante é executado quando você remove uma integração do Puppet de um modelo de nuvem e, em seguida, aplica o modelo à implantação. Esse fluxo de trabalho aciona uma operação de limpeza de nó que é tratada conforme descrito acima.
A integração com o Puppet Enterprise requer um endereço IP público. Se não houver nenhum endereço IP público configurado para a máquina do Puppet Enterprise, o endereço IP da primeira NIC será usado.
Se o NIC de uma máquina provisionada Puppet em execução em uma máquina vSphere tem vários endereços IP, você pode usar a propriedade YAML primaryAddress
nos modelos de nuvem para especificar qual endereço IP será usado para conexões. Quando a propriedade primaryAddress
é atribuída a um NIC, o Puppet usa o endereço IP desse NIC. Apenas uma NIC pode ser designada como primária. Veja um exemplo de como a propriedade primaryAddress
é usada no snippet YAML a seguir.
BaseVM: type: Cloud.vSphere.Machine properties: image: photon count: 2 customizationSpec: Linux cpuCount: 1 totalMemoryMB: 1024 networks: - network: '${resource.dev.id}' deviceIndex: 0 primaryAddress: true assignment: static - network: '${resource.prod.id}' deviceIndex: 1 assignment: static
Se a propriedade primaryAddress
não foi definida para nenhum NIC de máquina virtual, a lógica do modelo de nuvem é padronizada para o comportamento atual de seleção de endereço IP.
- O usuário deve estar habilitado para criar um novo diretório e arquivo de fatos do Puppet:
sudo mkdir -p /etc/puppetlabs/facter/facts.d sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json
- O usuário deve estar habilitado para executar o Puppet:
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode
- O usuário deve estar habilitado para excluir arquivos de Solicitação de Assinatura de Certificado (CSR), incluindo csr_attributes.yaml e CSR pem:
sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*