Cloud Assembly ondersteunt integratie met Puppet Enterprise-configuratiebeheer.
Wanneer u Puppet Enterprise als extern systeem aan Cloud Assembly toevoegt, is dit standaard beschikbaar voor alle projecten. U kunt het beperken tot specifieke projecten.
Om een Puppet Enterprise-integratie toe te voegen, moet u over de masternaam van de Puppet en de hostnaam of het IP-adres van de master beschikken.
U kunt Puppet-logboeken vinden op de volgende locatie voor het geval u deze moet controleren op fouten of voor informatiedoeleinden.
Beschrijving | Logboeklocatie |
---|---|
Logboek voor gebeurtenissen gerelateerd aan maken en installeren | Logboeken bevinden zich op de geïmplementeerde machine in '~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/'. Raadpleeg het bestand log.txt voor volledige logboekinformatie. Voor gedetailleerde Puppet Agent-logboeken verwijzen we u naar https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging |
Logboek voor Puppet-taken gerelateerd aan verwijderen en uitvoeren | Logboeken bevinden zich op de PE in '~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/'. Raadpleeg het bestand log.txt voor volledige logboekinformatie. |
Procedure
resultaten
Volgende stappen
Voeg Puppet-onderdelen toe aan de gewenste cloudsjablonen.
- Selecteer, onder Cloudsjablonen in Cloud Assembly, Puppet op de canvaspagina van de cloudsjabloon onder de kop Inhoudsbeheer in het menu met cloudsjabloonopties en sleep het Puppet-onderdeel naar het canvas.
- Geef Puppet-eigenschappen op in het deelvenster aan de rechterkant.
Eigenschap Beschrijving Master Voer de naam in van de primaire Puppet-machine die wordt gebruikt met deze cloudsjabloon. Omgeving Selecteer de omgeving voor de primaire Puppet-machine. Rol Selecteer de Puppet-rol die u met deze cloudsjabloon wilt gebruiken. Uitvoeringsinterval agent De frequentie waarmee de Puppet-agent bij de primaire Puppet-machine de configuratiedetails moet opvragen die moeten worden toegepast op geïmplementeerde virtuele machines die aan deze cloudsjabloon zijn gekoppeld. - Klik op het tabblad Code in het deelvenster rechts om de YAML-code voor de Puppet-configuratie-eigenschappen weer te geven.
Wanneer u een Puppet-onderdeel toevoegt aan een cloudsjabloon, kunt u de eigenschap installMaster
toevoegen aan het YAML-bestand om te wijzen naar een Puppet-installatiemaster, ook wel compilatiemaster genoemd. De waarde van deze eigenschap kan het IP-adres of de hostnaam van de Puppet-compilatiemaster zijn. Het gebruik van deze eigenschap biedt toegang tot verbeterde mogelijkheden voor geïmplementeerde virtuele Puppet-machines en biedt ook ondersteuning voor extra acties voor dag 2.
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
Bepaalde machinegerelateerde informatie wordt door vRealize Automation in sommige gevallen standaard als feiten doorgegeven aan virtuele Puppet-machines. Aangepaste feiten worden niet ondersteund voor Windows-machines. Op Linux-machines wordt sommige informatie standaard doorgegeven en kunnen gebruikers aanvullende informatie doorgeven met behulp van aangepaste eigenschappen.
Er gelden beperkingen voor wat wordt doorgegeven aan Puppet-machines onder Linux. Aangepaste eigenschappen op hostresources en op de Puppet-agent worden doorgegeven aan virtuele Puppet-machines. Aangepaste eigenschappen op netwerkresources worden niet doorgegeven aan de virtuele machine. Doorgegeven items omvatten eenvoudige eigenschappen, booleaanse eigenschappen, aangepaste namen en complexe typen zoals geneste kaarten met arrays.
In het volgende voorbeeld ziet u hoe verschillende aangepaste resources kunnen worden aangeroepen op hostresources:
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
Als een Puppet-purgecommando fouten oplevert, negeert vRealize Automation, in de meeste gevallen, purgefouten voor knooppunten en wordt doorgegaan met verwijderen van het knooppunt. Zelfs als er geen certificaat voor een specifiek knooppunt wordt gevonden, gaat vRealize Automation door met verwijderen. Als vRealize Automation om een of andere reden niet kan doorgaan met verwijderen van het knooppunt, kunt u op Verwijderen klikken in het menu Acties van de pagina Implementaties om een dialoogvenster te openen waarmee u kunt doorgaan met verwijderen van het knooppunt. Een soortgelijke werkstroom wordt uitgevoerd wanneer u een Puppet-integratie uit een cloudsjabloon verwijdert en vervolgens de sjabloon op de implementatie toepast. Deze werkstroom activeert een purgebewerking op het knooppunt die wordt behandeld zoals hierboven is beschreven.
Voor integratie met Puppet Enterprise is een openbaar IP-adres vereist. Als er geen openbaar IP-adres is geconfigureerd voor de Puppet Enterprise-machine, wordt het IP-adres van de eerste NIC gebruikt.
Als de NIC van een met Puppet ingerichte machine die werkt op een vSphere-machine meerdere IP-adressen heeft, kunt u de YAML-eigenschap primaryAddress
in cloudsjablonen gebruiken om op te geven welk IP-adres moet worden gebruikt voor verbindingen. Wanneer de eigenschap primaryAddress
is toegewezen aan een NIC, wordt het IP-adres van deze NIC gebruikt door Puppet. Er kan slechts één NIC als primair worden aangewezen. In het volgende YAML-fragment ziet u een voorbeeld van hoe de eigenschap primaryAddress
wordt gebruikt.
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
Als de eigenschap primaryAddress
niet is ingesteld voor een NIC van een virtuele machine, zal de cloudsjabloonlogica standaard het huidige gedrag voor de selectie van IP-adressen gebruiken.
- De gebruiker moet zijn ingeschakeld om een nieuwe directory en nieuw bestand met Puppet-feiten te maken:
sudo mkdir -p /etc/puppetlabs/facter/facts.d sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json
- De gebruiker moet de mogelijkheid hebben om Puppet uit te voeren:
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode
- De gebruiker moet de mogelijkheid hebben om de bestanden voor de certificaatondertekeningsaanvraag (CSR) te verwijderen, waaronder de bestanden csr_attributes.yaml en CSR pem:
sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*