Automation Assembler unterstützt die Integration mit der Puppet Enterprise-Konfigurationsverwaltung.

Wenn Sie Puppet Enterprise als externes System zu Automation Assembler hinzufügen, steht es standardmäßig in allen Projekten zur Verfügung. Sie können Puppet auf bestimmte Projekte beschränken.

Zum Hinzufügen einer Puppet Enterprise-Integration müssen Sie über den Namen des Puppet-Masters und den Hostnamen oder die IP-Adresse des Masters verfügen.

Sie finden Puppet-Protokolle am folgenden Speicherort, falls Sie sie auf Fehler überprüfen oder zu Informationszwecken ansehen möchten.

Beschreibung Speicherort des Protokolls
Protokoll zum Erstellen und Installieren von verwandten Ereignissen

Die Protokolle befinden sich auf der bereitgestellten Maschine im Pfad ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/.

Die vollständigen Protokolle finden Sie in der Datei log.txt. Detaillierte Informationen zu den Puppet-Agentprotokollen finden Sie unter https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging.
Protokoll für Aufgaben in Bezug auf das Löschen und Ausführen von Puppet Die Protokolle befinden sich auf der PE unter dem Pfad ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/. Die vollständigen Protokolle finden Sie in der Datei log.txt.

Prozedur

  1. Wählen Sie Infrastruktur > Verbindungen > Integrationen aus und klicken Sie auf Integration hinzufügen.
  2. Wählen Sie „Puppet“ aus.
  3. Geben Sie die erforderlichen Informationen auf der Konfigurationsseite von Puppet ein.
    Damit die Puppet-Integration ordnungsgemäß funktioniert, müssen die bereitgestellten Anmeldedaten sowohl für das SSH- als auch für das API-Konto gültig sein. Außerdem müssen die angegebenen Betriebssystem- und Anwendungsbenutzerkonten denselben Benutzernamen und dasselbe Kennwort haben.
  4. Klicken Sie auf Validieren, um die Integration zu überprüfen.
  5. Klicken Sie auf Hinzufügen.

Ergebnisse

Puppet ist für die Verwendung mit Cloud-Vorlagen verfügbar.

Nächste Maßnahme

Fügen Sie Puppet-Komponenten zu den gewünschten Cloud-Vorlagen hinzu.

  1. Wählen Sie in Automation Assembler auf der Registerkarte „Design“ unter der Überschrift „Inhaltsverwaltung“ im Menü „Cloud-Vorlage“ den Eintrag „Puppet“ aus und ziehen Sie die Puppet-Komponente auf die Arbeitsfläche.
  2. Geben Sie Puppet-Eigenschaften im Fensterbereich auf der rechten Seite ein.
    Eigenschaft Beschreibung
    Master Geben Sie den Namen der primären Puppet-Maschine ein, die mit dieser Cloud-Vorlage verwendet wird.
    Umgebung Wählen Sie die Umgebung für die primäre Puppet-Maschine aus.
    Rolle Wählen Sie die Puppet-Rolle aus, die mit dieser Cloud-Vorlage verwendet werden soll.
    Agent-Ausführungsintervall Die Häufigkeit, mit der der Puppet-Agent die primäre Puppet-Maschine bezüglich Konfigurationsdetails abfragen soll, die auf bereitgestellte, mit dieser Cloud-Vorlage verknüpfte virtuelle Maschinen angewendet werden sollen.
  3. Klicken Sie im rechten Fensterbereich auf die Registerkarte „Code“, um den YAML-Code für die Eigenschaften der Puppet-Konfiguration anzuzeigen.

Wenn Sie eine Puppet-Komponente zu einer Cloud-Vorlage hinzufügen, können Sie die installMaster-Eigenschaft zur YAML-Datei hinzufügen, um auf einen Puppet-Installationsmaster zu verweisen, der auch als Kompilierungs-Master bezeichnet wird. Der Wert dieser Eigenschaft kann die IP-Adresse oder der Hostname des Puppet-Kompilierungs-Masters sein. Die Verwendung dieser Eigenschaft bietet Zugriff auf erweiterte Funktionen für bereitgestellte virtuelle Puppet-Maschinen und unterstützt auch zusätzliche Tag-2-Aktionen.

  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
Hinweis: Obwohl der hier definierte Benutzer root ist, kann die Cloud-Vorlage mit jedem Benutzer konfiguriert werden, der in der sudoers-Liste enthalten ist.

In einigen Fällen übergibt VMware Aria Automation einige maschinenbezogene Informationen standardmäßig an virtuelle Puppet-Maschinen als Fakten. Benutzerdefinierte Fakten werden für Windows-Maschinen nicht unterstützt. Auf Linux-Maschinen werden standardmäßig einige Informationen übergeben, und Benutzer können über benutzerdefinierte Eigenschaften zusätzliche Informationen übergeben.

Es gibt einige Einschränkungen dafür, was unter Linux an Puppet-Maschinen übergeben wird. Benutzerdefinierte Eigenschaften auf Hostressourcen und auf dem Puppet-Agent werden an virtuelle Puppet-Maschinen übergeben. Benutzerdefinierte Eigenschaften auf Netzwerkressourcen werden nicht an die virtuelle Maschine übergeben. Zu den übergebenen Elementen gehören einfache Eigenschaften, boolesche Eigenschaften sowie benutzerdefinierte und komplexe Typen wie verschachtelte Maps mit Arrays.

Das folgende Beispiel zeigt, wie verschiedene benutzerdefinierte Ressourcen auf Hostressourcen aufgerufen werden können:

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

Wenn ein Puppet-Purge-Befehl zu Fehlern führt, ignoriert VMware Aria Automation in den meisten Fällen Purge-Fehler für Knoten und fährt mit dem Löschen des Knotens fort. Auch wenn für einen bestimmten Knoten kein Zertifikat gefunden wird, fährt VMware Aria Automation mit dem Löschen fort. Falls VMware Aria Automation aus irgendeinem Grund nicht mit dem Löschen des Knotens fortfahren kann, können Sie im Menü „Aktionen“ der Seite „Bereitstellungen“ auf „Löschen“ klicken. Dadurch wird ein Dialogfeld geöffnet, das es Ihnen ermöglicht, mit dem Löschen des Knotens fortzufahren. Es wird ein ähnlicher Workflow ausgeführt, wenn Sie eine Puppet-Integration aus einer Cloud-Vorlage entfernen und dann die Vorlage auf die Bereitstellung anwenden. Dieser Workflow löst einen Knotenbereinigungsvorgang aus, der wie oben beschrieben behandelt wird.

Die Integration in Puppet Enterprise erfordert eine öffentliche IP-Adresse. Wenn keine öffentliche IP-Adresse für die Puppet Enterprise-Maschine konfiguriert ist, wird die IP-Adresse der ersten Netzwerkkarte verwendet.

Wenn die Netzwerkkarte einer bereitgestellten Puppet-Maschine, die auf einer vSphere-Maschine ausgeführt wird, über mehrere IP-Adressen verfügt, können Sie die YAML-Eigenschaft primaryAddress in Cloud-Vorlagen zur Angabe der IP-Adresse verwenden, die für Verbindungen genutzt werden soll. Wenn die Eigenschaft primaryAddress einer Netzwerkkarte zugewiesen ist, wird die IP-Adresse dieser Netzwerkkarte von Puppet verwendet. Nur eine Netzwerkkarte kann als primär festgelegt werden. Bei folgendem YAML-Ausschnitt handelt es sich um ein Beispiel dafür, wie die Eigenschaft primaryAddress verwendet wird.

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

Wenn die Eigenschaft primaryAddress für eine Netzwerkkarte der virtuellen Maschine nicht festgelegt ist, verwendet die Cloud-Vorlagenlogik standardmäßig das aktuelle Verhalten bei der Auswahl von IP-Adressen.

Wenn Sie die Puppet-Integration für einen Nicht-Root-Benutzer mit Sudo-Rechten einrichten möchten, sollte dieser Benutzer aktiviert sein, um die folgenden Befehle auszuführen.
  • Der Benutzer sollte aktiviert sein, um ein neues Puppet Facts-Verzeichnis und eine neue Puppet Facts-Datei zu erstellen:
    sudo mkdir -p /etc/puppetlabs/facter/facts.d 
           sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json 
    
  • Der Benutzer sollte für die Puppet-Ausführung aktiviert sein:
    sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped
           sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode
  • Der Benutzer sollte aktiviert sein, um CSR-Dateien (Certificate Signing Request) zu löschen, einschließlich csr_attributes.yaml und CSR pem:
     sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml
           sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*