Cloud Assembly unterstützt die Integration mit der Puppet Enterprise-Konfigurationsverwaltung.
Wenn Sie Puppet Enterprise als externes System zu Cloud Assembly 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
Ergebnisse
Nächste Maßnahme
Fügen Sie Puppet-Komponenten zu den gewünschten Cloud-Vorlagen hinzu.
- Wählen Sie unter „Cloud Assembly-Cloud-Vorlagen“ die Option „Puppet“ unter der Überschrift „Inhaltsverwaltung“ im Cloud-Vorlagenmenü aus und ziehen Sie die Puppet-Komponente auf die Arbeitsfläche.
- 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. - 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
In einigen Fällen übergibt vRealize 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 vRealize 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 vRealize Automation mit dem Löschen fort. Falls vRealize 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.
- 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/*