Sie können Ansible Tower mit Cloud Assembly integrieren, um die Konfigurationsverwaltung der bereitgestellten Ressourcen zu unterstützen. Nachdem Sie die Integration konfiguriert haben, können Sie mithilfe des Cloud-Vorlagen-Editors virtuelle Ansible Tower-Komponenten zu neuen oder vorhandenen Bereitstellungen hinzufügen.

Falls Sie vSphere verwenden, müssen Sie einen Cloud-Proxy einrichten.

Voraussetzungen

  • Gewähren Sie anderen als Administratorbenutzern die entsprechenden Berechtigungen für den Zugriff auf Ansible Tower. Es gibt zwei Optionen, die für die meisten Konfigurationen funktionieren. Wählen Sie die Option, die für Ihre Konfiguration am besten geeignet ist.
    • Weisen Sie Benutzern die Rollen „Bestandslistenadministrator“ und „Auftragsvorlagenadministrator“ auf Organisationsebene zu.
    • Gewähren Sie Benutzern Administratorberechtigungen für eine bestimmte Bestandsliste und die Rolle „Ausführen“ für alle für die Bereitstellung verwendeten Auftragsvorlagen.
  • Sie müssen in Ansible Tower die entsprechenden Anmeldedaten und Vorlagen für die Verwendung mit Ihren Bereitstellungen konfigurieren. Bei Vorlagen kann es sich um Auftragsvorlagen oder Workflowvorlagen handeln. Auftragsvorlagen definieren die Bestandsliste und das Playbook für die Verwendung mit einer Bereitstellung. Zwischen einer Auftragsvorlage und einem Playbook besteht eine 1:1-Zuordnung. Playbooks verwenden eine YAML-ähnliche Syntax, um mit der Vorlage verknüpfte Aufgaben zu definieren. Verwenden Sie für die meisten typischen Bereitstellungen Maschinenanmeldedaten zur Authentifizierung.

    Workflowvorlagen ermöglichen es den Benutzern, Sequenzen zu erstellen, die aus einer beliebigen Kombination von Auftragsvorlagen, Synchronisierungen von Projekten und Bestandslisten bestehen, die miteinander verknüpft sind, sodass Sie sie als Einheit ausführen können. Der Ansible Tower Workflow Visualizer hilft Benutzern beim Entwerfen von Workflowvorlagen. Sie können für die meisten typischen Bereitstellungen Maschinenanmeldedaten zur Authentifizierung verwenden.

    1. Melden Sie sich bei Ansible Tower an und navigieren Sie zum Abschnitt „Vorlagen“.
    2. Wählen Sie „Neue Auftragsvorlage hinzufügen“ aus.
      • Wählen Sie die bereits erstellten Anmeldedaten aus. Hierbei handelt es sich um die Anmeldedaten der Maschine, die von Ansible Tower verwaltet werden soll. Für jede Auftragsvorlage kann ein Anmeldedatenobjekt vorhanden sein.
      • Wählen Sie für „Grenzwert“ die Option „Eingabeaufforderung beim Start“ aus. Hiermit wird sichergestellt, dass die Auftragsvorlage für den Knoten ausgeführt wird, der von Cloud Assembly bereitgestellt oder dessen Bereitstellung aufgehoben wird. Bei nicht ausgewählter Option wird ein Fehler vom Typ „Kein Grenzwert festgelegt“ angezeigt, wenn der Blueprint mit der Auftragsvorlage bereitgestellt wird.
    3. Wählen Sie „Neue Workflowvorlage hinzufügen“ aus.
      • Wählen Sie die Anmeldedaten aus, die Sie bereits erstellt haben, und definieren Sie dann die Bestandsliste. Entwerfen Sie mit dem Workflow Visualizer die Workflowvorlage.

      Für das Feld „Grenzwert“ der Workflow- oder Auftragsvorlagen können Sie generell „Eingabeaufforderung beim Start“ auswählen. Diese Auswahl stellt sicher, dass die Auftrags- oder Workflowvorlage für den Knoten ausgeführt wird, der von Cloud Assembly bereitgestellt oder dessen Bereitstellung aufgehoben wird.

  • Sie können die Ausführung der von Cloud Assembly aufgerufenen Auftragsvorlagen oder Workflowvorlagen auf der Registerkarte „Ansible Tower-Aufträge“ anzeigen.

Prozedur

  1. Wählen Sie Infrastruktur > Verbindungen > Integrationen aus und klicken Sie auf Integration hinzufügen.
  2. Klicken Sie auf „Ansible Tower“.
    Die Seite zum Konfigurieren von Ansible wird angezeigt.
  3. Geben Sie unter Hostname einen Hostnamen, beispielsweise eine IP-Adresse, sowie andere erforderliche Informationen für die Ansible Tower-Instanz ein.
  4. Geben Sie den Benutzernamen und das Kennwort der benutzeroberflächenbasierten Authentifizierung für die entsprechende Ansible Tower-Instanz ein.
  5. Wenn Sie einen Cloud-Proxy benötigen, klicken Sie auf NEUER CLOUD-PROXY und geben Sie die erforderlichen Informationen ein. In der Regel ist ein Cloud-Proxy nur erforderlich, wenn Sie vSphere verwenden. Weitere Informationen hierzu finden Sie unter Hinzufügen eines Cloud-Proxys zu einem vCenter Server in Cloud Assembly.
  6. Klicken Sie auf Überprüfen, um die Integration zu überprüfen.
  7. Geben Sie einen geeigneten Namen und eine Beschreibung für die Integration ein.
  8. Klicken Sie auf Hinzufügen.

Ergebnisse

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

Nächste Maßnahme

Fügen Sie Ansible Tower-Komponenten zu den gewünschten Cloud-Vorlagen hinzu. Sie müssen die entsprechende Auftragsvorlage mit der Ausführungsberechtigung für den im Integrationskonto angegebenen Benutzer angeben.

  1. Wählen Sie auf der Seite mit der Cloud-Vorlagen-Arbeitsfläche im Menü der Blueprint-Optionen unter der Überschrift „Konfigurationsverwaltung“ den Eintrag „Ansible“ aus und ziehen Sie die Ansible Tower-Komponente auf die Arbeitsfläche.
  2. Konfigurieren Sie im Bereich auf der rechten Seite die entsprechenden Ansible Tower-Eigenschaften, wie z. B. Auftragsvorlagen.

Wenn Sie eine Ansible Tower-Kachel zu einer Cloud-Vorlage hinzufügen, erstellt vRealize Automation Cloud den Hosteintrag für die angehängte virtuelle Maschine in Ansible Tower. Standardmäßig verwendet vRealize Automation Cloud den Ressourcennamen der virtuellen Maschine zum Erstellen des Hosteintrags. Sie können jedoch jeden Namen mithilfe der Eigenschaft hostName in der Blueprint-YAML angeben. Zur Kommunikation mit der Maschine erstellt vRealize Automation Cloud die Hostvariable ansible_host: IP Address für den Hosteintrag. Sie können das Standardverhalten zum Konfigurieren der Kommunikation mithilfe des FQDN außer Kraft setzen, indem Sie das Schlüsselwort ansible_host unter hostVariables angeben und den FQDN als entsprechenden Wert bereitstellen. Bei folgendem YAML-Codeausschnitt handelt es sich um ein Beispiel dafür, wie die Kommunikation zwischen Hostname und FQDN konfiguriert werden kann:

Cloud_Ansible_Tower_1:
	type: Cloud Ansible Tower
	properties:
		host: name of host
		account: name of account
		hostName: resource name
		hostVariables:
			ansible_host:Host FQDN
			

In diesem Beispiel überschreiben Sie den Standardwert ansible_host, indem Sie den FQDN bereitstellen. Dies kann für Benutzer nützlich sein, die möchten, dass Ansible Tower mithilfe des FQDN eine Verbindung zur Hostmaschine herstellt.

Der Standardwert von hostVariables in der YAML lautet ansible_host:IP_address, und die IP-Adresse wird für die Kommunikation mit dem Server verwendet.

Wenn die YAML-Eigenschaft „count“ für Ansible Open Tower größer als 1 ist, kann der Hostname einer der Eigenschaften der jeweiligen virtuellen Maschine zugeordnet werden. Das folgende Beispiel zeigt die Zuordnung für eine VM-Ressource mit der Bezeichnung „Ubuntu-VM“, wenn deren Adresseigenschaft dem Hostnamen zugeordnet werden soll.

 hostname: '${resource.Ubuntu-VM.address[count.index]}' 

Wenn Sie einer Cloud-Vorlage eine Ansible Tower-Komponente hinzufügen, können Sie die Auftragsvorlage angeben, die in der Cloud-Vorlagen-YAML aufgerufen werden soll. Sie können auch Workflowvorlagen oder eine Kombination aus Auftragsvorlagen und Workflowvorlagen angeben. Wenn Sie den Vorlagentyp nicht angeben, geht vRealize Automation Cloud standardmäßig davon aus, dass Sie eine Auftragsvorlage aufrufen.

Bei folgendem YAML-Codeausschnitt handelt es sich um ein Beispiel dafür, wie eine Kombination aus Auftrags- und Workflowvorlagen in einer Ansible-Tower-Cloud-Vorlage aufgerufen werden kann.

Cloud_Ansible_1:
type: Cloud.Ansible.Tower
  properties:
    host: ‘${resource.CentOS_Machine.*}’
    account:
    maxConnectionRetries: 2
    maxJobRetries: 2
    templates:
      provision:
        - name: My workflow
          type: workflow
        - name: My job template      

Wir haben maxConnectionsRetries und maxJobRetries hinzugefügt, um mit Ansible-bezogenen Fehlern umzugehen. Die Cloud-Vorlagen akzeptieren den benutzerdefinierten Wert und verwenden den Standardwert, falls kein Wert angegeben wird. Für maxConnectionRetries lautet der Standardwert 10 und für maxJobRetries 3.

Hinweis: Frühere Versionen von vRealize Automation Cloud haben die Ausführung von Auftragsvorlagen nur unter Verwendung des jobTemplate-Schemas in der Cloud-Vorlage unterstützt. jobTemplate ist jetzt veraltet und wird in zukünftigen Versionen möglicherweise entfernt. Vorerst funktioniert die Verwendung der jobTemplate-Eigenschaft weiterhin wie erwartet. Um Workflowvorlagen auszuführen und zusätzliche Funktionen zu verwenden, wird empfohlen, dafür das Schema für Vorlagen zu nutzen.

Cloud Assembly-Cloud-Vorlagen für Ansible Tower-Integrationen enthalten die useDefaultLimit-Eigenschaft mit einem „true“- oder „false“-Wert, um zu definieren, wo Ansible-Vorlagen ausgeführt werden. Bei Ansible-Vorlagen kann es sich um Auftragsvorlagen oder Workflowvorlagen handeln. Wenn dieser Wert auf „true“ festgelegt ist, werden die angegebenen Vorlagen für die im Feld „Grenzwert“ auf der Seite „Ansible-Vorlagen“ angegebenen Maschine ausgeführt. Wenn dieser Wert auf „false“ festgelegt ist, werden die Vorlagen für die bereitgestellte Maschine ausgeführt. Die Benutzer sollten aber das Kontrollkästchen „Eingabeaufforderung beim Start“ auf der Seite „Ansible Tower-Vorlagen“ aktivieren. Der Wert dieser Eigenschaft ist standardmäßig „false“. Das folgende YAML-Beispiel zeigt, wie die Eigenschaft useDefaultLimit in Cloud-Vorlagen angezeigt wird.

templates:
  provision:
    - name: ping aws_credentials
      type: job
      useDefaultLimit: false
      extraVars: '{"rubiconSurveyJob" : "checkSurvey"}'

Zudem können Sie, wie das vorangegangene Beispiel zeigt, anhand der Eigenschaft extraVars zusätzliche Variablen oder Survey-Variablen angeben. Diese Funktion kann für die Ausführung von Vorlagen nützlich sein, die eine Eingabe erfordern. Wenn ein Benutzer die Survey-Variable beibehalten hat, müssen Sie die Variable im Abschnitt extraVars der Cloud-Vorlage übergeben, um Fehler zu vermeiden.