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

  1. Selecteer Infrastructuur > Verbindingen > Integraties en klik op Integratie toevoegen.
  2. Selecteer Puppet.
  3. Voer de vereiste informatie in op de Puppet-configuratiepagina.
    Voor een goede werking van Puppet-integratie moeten de opgegeven verificatiegegevens geldig zijn voor zowel het SSH- als het API-account. Ook moeten de opgegeven gebruikersaccounts voor het besturingssysteem en applicaties dezelfde gebruikersnaam en hetzelfde wachtwoord hebben.
  4. Klik op Valideren om de integratie te controleren.
  5. Klik op Toevoegen.

resultaten

Puppet kan worden gebruikt met cloudsjablonen.

Volgende stappen

Voeg Puppet-onderdelen toe aan de gewenste cloudsjablonen.

  1. 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.
  2. 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.
  3. 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
Opmerking: Hoewel de hier gedefinieerde gebruiker root is, kan de cloudsjabloon worden geconfigureerd met elke gebruiker die is opgenomen in de lijst sudoers.

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.

Als u Puppet-integratie wilt instellen voor een niet-rootgebruiker met Sudo-rechten, moet die gebruiker worden ingeschakeld om de volgende commando's uit te voeren.
  • 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/*