Cloud Assembly admite la integración con la administración de la configuración de Puppet Enterprise.
Cuando agrega Puppet Enterprise a Cloud Assembly como un sistema externo, está disponible en todos los proyectos de forma predeterminada. Sin embargo, puede restringirlo a proyectos específicos.
Para agregar una integración de Puppet Enterprise, debe tener el nombre de la instancia principal de Puppet y el nombre de host o la dirección IP de la instancia principal.
Puede encontrar registros de Puppet en la siguiente ubicación en caso de que necesite revisarlos para buscar errores o información.
Descripción | Ubicación de registro |
---|---|
Registro para eventos relacionados con la creación y la instalación | Los registros se encuentran en la máquina implementada en `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Consulte el archivo log.txt para ver los registros completos. Para obtener los registros detallados del agente de Puppet, consulte https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging |
Registro para tareas relacionadas con la eliminación y la ejecución de Puppet | Los registros se encuentran en PE en `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Consulte el archivo log.txt para ver los registros completos. |
Procedimiento
Resultados
Qué hacer a continuación
Agregue componentes de Puppet a las plantillas de nube que desee.
- En la opción Plantillas de nube en Cloud Assembly, seleccione Puppet en el encabezado Administración de contenido en el menú de plantillas de nube y arrastre el componente Puppet al lienzo.
- Introduzca las propiedades de Puppet en el panel de la derecha.
Propiedad Descripción Principal Introduzca el nombre de la máquina principal de Puppet que se utiliza con esta plantilla de nube. Entorno Seleccione el entorno para la máquina principal de Puppet. Función Seleccione la función de Puppet que se usará con esta plantilla de nube. Intervalo de ejecución de agente La frecuencia con la que desea que el agente de Puppet sondee la máquina principal de Puppet para que los detalles de configuración se apliquen en las máquinas virtuales implementadas relacionadas con esta plantilla de nube. - Haga clic en la pestaña Código en el panel derecho para ver el código YAML de las propiedades de configuración de Puppet.
Al agregar un componente de Puppet a una plantilla de nube, puede agregar la propiedad installMaster
al archivo YAML para que apunte al maestro de instalación de Puppet, también conocido como maestro de compilación. El valor de esta propiedad puede ser la dirección IP o el nombre de host del maestro de compilación de Puppet. El uso de esta propiedad proporciona acceso a capacidades mejoradas para las máquinas virtuales de Puppet implementadas, y también admite acciones del día dos adicionales.
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
En algunos casos, vRealize Automation envía como hechos parte de la información relacionada con las máquinas a las máquinas virtuales de Puppet de forma predeterminada. Los hechos personalizados no son compatibles con las máquinas Windows. En las máquinas Linux, se transmite cierta información de forma predeterminada, y los usuarios pueden enviar información adicional mediante propiedades personalizadas.
Existen algunas limitaciones sobre lo que se transfiere a las máquinas de Puppet en Linux. Las propiedades personalizadas de los recursos de host y del agente de Puppet se envían a las máquinas virtuales de Puppet. Las propiedades personalizadas de los recursos de red no se transfieren a la máquina virtual. Los elementos aprobados incluyen propiedades simples, propiedades booleanas, así como tipos personalizados con nombre y complejos, como mapas anidados con matrices.
El siguiente ejemplo muestra cómo se pueden llamar varios recursos personalizados en los recursos del 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
Si un comando de purga de Puppet genera errores, en la mayoría de los casos, vRealize Automation omitirá los errores de purga de los nodos y continuará con la eliminación del nodo. Incluso si no se encuentra un certificado para un nodo específico, vRealize Automation continuará con la eliminación. Si vRealize Automation no puede continuar con la eliminación del nodo por algún motivo, puede hacer clic en Eliminar en el menú Acciones de la página Implementaciones para abrir un cuadro de diálogo que permitirá continuar con la eliminación del nodo. Se ejecuta un flujo de trabajo similar cuando se elimina una integración de Puppet de una plantilla de nube y, a continuación, se aplica la plantilla a la implementación. Este flujo de trabajo activa una operación de purga de nodos que se gestiona como se describe anteriormente.
La integración con Puppet Enterprise requiere una dirección IP pública. Si no hay ninguna dirección IP pública configurada para la máquina de Puppet Enterprise, se utiliza la dirección IP de la primera NIC.
Si la NIC de una máquina aprovisionada de Puppet ejecutada en una máquina vSphere tiene varias direcciones IP, puede utilizar la propiedad de YAML primaryAddress
en las plantillas de nube para especificar qué dirección IP se utilizará para las conexiones. Cuando la propiedad primaryAddress
se asigna a una NIC, Puppet utiliza la dirección IP de esta NIC. Solo se puede designar una NIC como principal. Vea el siguiente fragmento de YAML que muestra un ejemplo de cómo se utiliza la propiedad primaryAddress
.
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
Si no se establece la propiedad primaryAddress
para ninguna NIC de máquina virtual, la lógica de plantilla de nube utilizará de forma predeterminada el comportamiento actual para la selección de direcciones IP.
- El usuario debe estar habilitado para crear un nuevo archivo y directorio de hechos de Puppet:
sudo mkdir -p /etc/puppetlabs/facter/facts.d sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json
- El usuario debe estar habilitado para ejecutar Puppet:
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode
- El usuario debe estar habilitado para eliminar los archivos de solicitud de firma de certificado (CSR), incluidos los archivos csr_attributes.yaml y pem de CSR:
sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*