Satelliten- und Ansible Tower-Integration

Verwenden Sie Red Hat Satellite und Red Hat Ansible Automation Platform? Ab Satellite 6.3 können sie miteinander integriert werden, sodass Dynamic Inventory in Ansible Tower Hostlisten von Satellite abruft. Wenn die RHEL-Hosts mithilfe von Satellite (dh Bereitstellung) initialisiert werden, kann Ansible Tower in diesen Prozess integriert werden, sodass automatisch Konfigurationsskripts auf den neuen Hosts ausgeführt werden.



In diesem Beitrag werden wir uns ansehen, wie Sie Dynamic Inventory in Ansible Tower so konfigurieren, dass die Hosts von Satellite abgerufen werden, und anhand von Beispielen zeigen, wie Sie es verwenden. Außerdem zeigen wir Ihnen, wie Sie einen automatischen Anruf bei Ansible Tower organisieren, nachdem Sie einen neuen Host von Satellite aus initialisiert haben.

1. Inventory. Satellite, Dynamic Inventory Ansible Tower


Damit Ansible Tower auf die Liste der Hosts, Hostgruppen und anderer zugehöriger Informationen zugreifen kann, ist ein Konto in Satellite erforderlich. Dieser Eintrag verfügt über genügend Mindestberechtigungen, sodass wir eine neue Rolle in Satellite erstellen, ihm nur die für Ansible Tower erforderlichen Berechtigungen erteilen, dann ein neues Konto erstellen und ihm diese Rolle zuweisen.

Satellite 6.6 und höher verfügt bereits über eine Ansible Tower Inventory Reader-Rolle, sodass Sie die folgenden Schritte überspringen können, um eine Rolle zu erstellen.

In Satellite 6.3-6.5 muss die Rolle von Hand erstellt werden. Gehen Sie dazu zur Satelliten-Weboberfläche, wechseln Sie zum Bildschirm Verwalten, wählen Sie Rollen aus und klicken Sie auf Rolle erstellen.

Wir nennen diese Rolle ansible_tower_integration_role und legen Standorte und Organisationen dafür fest :



Klicken Sie auf Senden, um die Rolle zu erstellen. Klicken Sie danach auf ihren Namen und wechseln Sie zur Registerkarte Filter. Klicken Sie auf die grüne Schaltfläche Filter Neu und fügen Sie die folgenden Filter, einer nach dem anderen:

Ressourcentyp: Moderator , Permission: view_hosts
Ressourcentyp: Host - Gruppe , Berechtigung: view_hostgroups
Ressourcentyp: Fact Wert , Permission: view_facts

Als Ergebnis werden die folgenden Filter eine Rolle haben sollte:



Also haben wir eine Rolle geschaffen. Jetzt starten wir einen neuen Benutzer in Satellite. Gehen Sie dazu zum Menü Verwalten , wählen Sie Benutzer aus und klicken Sie auf Benutzer erstellen . Wir nennen diesen Benutzer ansible_integration , ändern den Parameter Authorized by in INTERNAL und legen das Passwort fest. Wählen Sie dann auf den Registerkarten Standorte und Organisationen die entsprechenden Standorte / Organisationen aus. Wechseln Sie schließlich zur Registerkarte Rollen und weisen Sie diesem Benutzer die neu erstellte Rolle ansible_tower_integration_role (wenn Sie über Satellite 6.3 - 6.5 verfügen) oder die integrierte Rolle Ansible Tower Inventory Reader zu(Satellit 6.6 und höher). Klicken Sie abschließend auf Senden, um ein Konto für diesen Benutzer zu erstellen.

Passen Sie Ansible Tower an


Gehen Sie nun zur Weboberfläche von Ansible Tower und zum Bildschirm mit den Anmeldeinformationen . Klicken Sie auf das grüne + (Hinzufügen) , um einen neuen Eintrag für Anmeldeinformationen zu erstellen. Wir nennen es satelliten_integration und geben im Anmeldeinformationstyp Red Hat Satellite 6 an . Dann geben wir die URL (in unserem Fall Satellite 6) sowie den Benutzernamen (in unserem Fall ansible_integration ) ein und das Passwort ist das, das wir oben in Satellite festgelegt haben:



Klicken Sie dann auf Speichern .

Gehen Sie nun zum Bildschirm " Inventare" , klicken Sie auf die grüne Schaltfläche + (Hinzufügen) und wählen Sie " Inventar" . Geben Sie satelliteninventar als Namen an und klicken Sie auf Speichern , um ein Inventar zu erstellen. Wechseln Sie danach zur Registerkarte Quellen des neu erstellten Inventars und klicken Sie auf die grüne Schaltfläche + (Hinzufügen) . Wir verwenden Satellit als Quellennamen und geben den Quelltyp als Red Hat Satellite 6 an . Geben Sie im Feld Anmeldeinformationen satellitenintegration an , die im vorherigen Schritt erstellt wurde. Schalten Sie das Überschreiben Checkbox ,Überschreiben von Variablen und Aktualisieren beim Start in der Kontrollgruppe "Aktualisierungsoptionen" (Weitere Informationen zu diesen Optionen erhalten Sie über die Fragezeichen auf der rechten Seite). Geben Sie außerdem im Feld Cache-Zeitlimit (Sekunden) 90 ein und klicken Sie auf Speichern .



Klicken Sie nun auf das Symbol Synchronisierungsprozess starten , ohne die Registerkarte Quellen zu verlassen :



Wir warten, bis das Symbol grün wird - dies signalisiert einen erfolgreichen Abschluss der Synchronisation.

Jetzt können Sie zur Registerkarte Hosts gehen und die Daten anzeigen, die vom Satelliten abgerufen wurden:



Sie können sich auch die Registerkarte Gruppen ansehen:



Wie Sie sehen können, wurden durch die Synchronisierung die Hostlisten nicht nur von Satellite abgerufen, sondern auch entsprechend den entsprechenden Inhaltsansichten in Satellite, Hostgruppen, Lebenszyklusumgebungen, Standorten und Organisationen in Gruppen unterteilt. Diese Gruppierung kann verwendet werden, um Ansible-Skripte auf Zielhosts auszurichten, und dies ist eine sehr mächtige Sache.

Wenn Sie auf der Registerkarte Hosts einen Host auswählen, werden zwischen Satellite und Ansible Tower viele Zusatzinformationen zum Host synchronisiert, die in Form von Variablen dargestellt werden. Diese Variablen können dann in Ansible-Skripten verwendet werden:



Verwenden von dynamischem Inventar, das an Satelliten gebunden ist


Also haben wir Satellite und Ansible Tower synchronisiert. Jetzt werden wir überlegen, wie wir es in der Praxis verwenden können.

Am einfachsten ist es, satelliteninventar als Inventarquelle in der Ansible Tower-Vorlage zu verwenden. Wenn im Skript die Option hosts: all angegeben ist , wird das Skript auf allen Satellitenhosts ausgeführt.

Eine erweiterte Option besteht darin, automatisch erstellte Inventargruppen in Skripten zu verwenden (wie sie erstellt werden - siehe oben). Mit anderen Worten, geben Sie die gewünschte Hostgruppe in der Hostzeile an . Beispiel: In diesem Szenario, in dem das Bildschirmpaket installiert ist:

---
- name: Install screen package
  hosts: "foreman_hostgroup_rhel6"
  tasks:
  - yum:
      name: screen
      state: installed

Hier haben wir Hosts registriert : foreman_hostgroup_rhel6 , wodurch die Liste der Hosts angezeigt wird , die die rhel6-Hostgruppe im Satelliten bilden. Dementsprechend wird das Skript nur auf diesen Hosts ausgeführt.

Darüber hinaus können Sie im Skript in der Hostzeile die Variablen angeben, die Ansible Tower während der Synchronisierung mit Satellite empfängt. Zum Beispiel können Sie dies tun:

---
- name: Install screen package
  hosts: "{{ hosts_var }}"
  tasks:
  - yum:
      name: screen
      state: installed

Infolgedessen können wir die Jobvorlage in Ansible Tower im laufenden Betrieb ändern und eine der Inventargruppen über eine externe Variable angeben.



In diesem Beispiel wird die Vorlage nur auf Hosts ausgeführt, die Mitglieder der Gruppe rhel7 in Satellite sind.

Darüber hinaus kann die Jobvorlage so konfiguriert werden, dass der Benutzer beim Start nach dem Wert der Variablen hosts_var gefragt wird (und gleichzeitig die verfügbaren Inventargruppen in Form von Kommentaren angezeigt werden):



Der obige Bildschirm zeigt die Situation, in der der Benutzer beim Starten der Vorlage aufgefordert wird, den Namen der Satelliteninventargruppe einzugeben, auf deren Hosts Sie das Skript ausführen möchten.

Darüber hinaus können Sie die Hostvariablen verwenden, die während der Synchronisierung aus Satellite abgerufen wurden. So sieht beispielsweise ein Skript aus, das zeigt, wie auf diese Variablen verwiesen wird:

---
- name: Show Satellite variables
  hosts: all
  tasks:
  - name: Show subscription_status
    debug:
      msg: >
        Subscription Status: {{ foreman.subscription_status_label }}
  - name: Show Errata Counts
    debug:
      msg: >
        Bug fixes: {{ foreman.content_facet_attributes.errata_counts.bugfix }},
        Security: {{ foreman.content_facet_attributes.errata_counts.security }},
        Enhancement: {{ foreman.content_facet_attributes.errata_counts.enhancement }},
        Total: {{ foreman.content_facet_attributes.errata_counts.total }}

Wenn Sie dieses Skript in Ansible Tower ausführen, werden die Werte der Variablen angezeigt:



Und natürlich können diese Variablen in bedingten Konstruktionen verwendet werden, wenn, so dass Aufgaben nur unter bestimmten Bedingungen gestartet werden. Zum Beispiel, wenn der Host keine Sicherheitspatches hat oder wenn das Host-Abonnement ungültig ist.

Zusammenfassen


Red Hat Satellite und Red Hat Ansible selbst sind sehr leistungsfähige Tools, und ihre Integration bietet spürbare Synergien. Oben haben wir gezeigt, wie Satellite in Ansible zu einer Datenquelle für Dynamic Inventory gemacht und in der Praxis verwendet werden kann.

Teil 2. Autokonfiguration neuer Hosts durch Bereitstellung eines Rückrufs


Neben vielen anderen Funktionen kann Satellite auch Hosts initialisieren, dh die Bereitstellung durchführen. Ansible Tower wiederum dient zum Konfigurieren von Hosts. Durch die Integration können Sie sicherstellen, dass Ansible Tower nach der Initialisierung eines neuen RHEL-Hosts mithilfe von Satellite automatisch eine Verbindung zu diesem Host herstellt und das entsprechende Konfigurationsskript darauf ausführt. Offensichtlich spart ein solches Schema den Systemadministratoren viel Zeit und hilft ihnen, schneller auf die Anforderungen des Unternehmens zu reagieren.

Es ist zu beachten, dass dieses Schema nur funktioniert, wenn mehrere Bedingungen erfüllt sind. Zunächst sollte Satellite als dynamische Inventardatenquelle in Ansible Tower verwendet werden (wir haben dieses Problem im vorherigen Teil behandelt). Zweitens sollte die Hostinitialisierung nicht nur über Satellit erfolgen, sondern auch über den Hostgruppenmechanismus (weitere Informationen finden Sie im Bereitstellungshandbuch ).

Im Folgenden wird gezeigt, wie Satellite und Ansible Tower so konfiguriert werden, dass nach der Initialisierung des Hosts das Ansible-Konfigurationsskript automatisch ausgeführt wird.

Überblick


IT-Automatisierungstools wie Ansible Tower lassen sich normalerweise in zwei Kategorien einteilen: Einige arbeiten nach der Push-Methode, andere nach der Pull-Methode. In Push-Systemen, zu denen Ansible Tower gehört, initiiert der Automatisierungsserver eine Verbindung zum Host. In Pull-Systemen ist der Initiator der Host, der selbst mit dem Automatisierungsserver kommuniziert.

In unserem Fall wird beim automatischen Scripting auf neuen Hosts ein gemischtes Schema verwendet. Der neu initialisierte Host kontaktiert den Automatisierungsserver mit der Aufforderung, ihn zurückzurufen und zu konfigurieren. Danach stellt der Automatisierungsserver eine Verbindung zu diesem Host her und führt das vom Host angeforderte Konfigurationsskript darauf aus. Daher wird dieser Mechanismus in Ansible Tower als Bereitstellungsrückruf bezeichnet, der als "Initialisierungsrückruf" übersetzt werden kann.

Berücksichtigen Sie die folgende Situation, um zu zeigen, warum überhaupt ein Bereitstellungsrückruf erforderlich ist: Wir haben ein bestimmtes Hostkonfigurationsskript, das täglich um Mitternacht ausgeführt wird. Nehmen wir an, wir initialisieren um 8 Uhr morgens mehrere neue Server gleichzeitig über Satellite. Gleichzeitig wird Satellite in Ansible Tower als dynamische Inventardatenquelle verwendet, sodass die erstellten Hosts automatisch in Ansible fallen. Der nächste Start des Automatisierungsskripts erfolgt jedoch erst um Mitternacht, dh nach 16 Stunden. Dies ist natürlich alles andere als ideal, und ich möchte, dass das Skript unmittelbar nach der Initialisierung des neuen Hosts ausgeführt wird. Zu diesem Zweck wird auch ein Rückruf für die Bereitstellung bereitgestellt.

Im Allgemeinen ist der Bereitstellungsrückruf konfiguriert und funktioniert wie folgt:

  1. Ansible Tower credential root, Satellite . Tower , .
  2. Job Template Ansible Tower provisioning callback. URL Host Config Key, Ansible.
  3. Satellite , provisioning callback Ansible Tower, : URL- Ansible Tower, Host Config Key Ansible.
  4. Satellite /etc/systemd/system/ansible-callback.service ( RHEL 7 8; RHEL 6 ). provisioning callback Ansible Tower, , (URL-, Host Config Key ).
  5. Ansible Tower Host Config Key. , Tower , root, Job Template. , .

Ansible Tower Provisioning Callback


Beginnen wir mit der Erstellung eines Konfigurationsskripts auf dem Ansible Tower-Server, das den Inhalt von / etc / motd ändert, eine Art Benutzer erstellt und ein bestimmtes Paket installiert. Dann werden wir dieses Skript verwenden, um neue Hosts unmittelbar nach ihrer Initialisierung zu konfigurieren.

Im wirklichen Leben werden Automatisierungsskripte höchstwahrscheinlich in einem Versionskontrollsystem gespeichert, aber der Einfachheit halber nehmen wir an, dass sie direkt auf dem Ansible Tower-Server liegen. Daher rufen wir den Ansible Tower-Server über SSH auf und erstellen das Verzeichnis / var / lib / awx / projects / Bereitstellung für sie, indem wir den folgenden Befehl ausführen:

# mkdir /var/lib/awx/projects/provision

Dann erstellen wir unser Skript in diesem Verzeichnis, nennen es provision.yaml und schreiben den folgenden Inhalt hinein:

---

- name: Provision new host

  hosts: all

  tasks:

  - name: Set content in /etc/motd 

    copy:

      content: Authorized use only!

      dest: /etc/motd

      mode: 644

      owner: root

      group: root


  - name: Create brian user account

    user:

      name: brian

      uid: 10000

      state: present


  - name: Install tmux package

    yum:

      name: tmux

      state: present


Gehen Sie nun zur Tower-Weboberfläche und zum Bildschirm Anmeldeinformationen. Wir klicken auf die Schaltfläche mit dem grünen Pluszeichen, um einen neuen Berechtigungsnachweisdatensatz zu erstellen, geben ihm den Namen provisioning_root und legen den Berechtigungsnachweistyp als Maschine fest. Geben Sie im Feld Benutzername root ein und geben Sie im Feld Kennwort das in Satellite angegebene Kennwort für die Verwendung auf den neuen Hosts der entsprechenden Hostgruppe in Satellite an (der Name befindet sich in der Satellite-Weboberfläche auf der Registerkarte Betriebssystem). Mit diesem Eintrag kann sich Ansible Tower bei neuen Hosts anmelden, die während der Initialisierung über Satellit erstellt wurden.



Wechseln Sie anschließend in der Ansible Tower-Oberfläche zum Bildschirm Projekte und klicken Sie auf das grüne Pluszeichen, um ein neues Projekt zu erstellen. Nennen Sie es Bereitstellung, ändern Sie den SCM-Typ in Manuell und geben Sie die Bereitstellung als Playbook-Verzeichnis an:



Wechseln Sie dann in der Ansible Tower-Benutzeroberfläche zum Bildschirm Vorlagen, und klicken Sie auf das grüne Pluszeichen, um eine neue Jobvorlage zu erstellen. Wir nennen es Bereitstellung, im Feld Inventar schreiben wir Satellit, im Feld Projekt - Bereitstellung, im Playbook-Feld - Bereitstellung.yaml und im Feld Anmeldeinformationen - Bereitstellung_Wurzel. Darüber hinaus müssen Sie das Kontrollkästchen Bereitstellen von Rückrufen zulassen aktivieren und auf das Zauberstabsymbol rechts neben dem Feld Host-Konfigurationsschlüssel klicken, um einen geheimen Schlüssel zu generieren. Dieser Schlüssel wird benötigt, um einen Bereitstellungsrückruf anzufordern. Es kann sich nicht um jemanden handeln, sondern nur um jemanden, der den Host-Konfigurationsschlüssel kennt. Ohne den richtigen Schlüssel antwortet der Ansible Tower-Server einfach nicht auf die Anfrage.



Jetzt müssen wir uns für die Zukunft den Wert des Host-Konfigurationsschlüssels sowie die Vorlagen-ID merken, die Sie unter der URL dieser Jobvorlage finden:

https://tower.example.com/#/templates/job_template/11

In diesem Beispiel lautet die ID 11.

Satelliten für die Bereitstellung von Rückrufen konfigurieren


Gehen Sie nun zur Satelliten-Weboberfläche, gehen Sie zum Bildschirm Konfigurieren und klicken Sie auf Hostgruppen. Wir wählen die vorhandene Hostgruppe aus, die zum Initialisieren neuer Hosts verwendet wird. In unserem Beispiel ist dies RHEL 8.

Gehen Sie auf dem Bearbeitungsbildschirm für die

Hostgruppe zur Registerkarte Parameter und erstellen Sie 4 neue Parameter: ansible_host_config_key - hier geben Sie den Host-Konfigurationsschlüssel aus unserer Ansible Tower-Vorlage ein.
ansible_job_template_id - hier schreiben wir die Vorlagen-ID, die wir zuvor aus der Vorlagen-URL herausgefunden haben.
ansible_tower_fqdn ist der vollständig qualifizierte Domänenname des Ansible Tower-Servers.
ansible_tower_provisioning - true setzen.



Überprüfen Sie, wie alles funktioniert


Initialisieren Sie nun den neuen Host von Satellite und stellen Sie sicher, dass der Bereitstellungsrückruf funktioniert und unser Skript automatisch auf diesem Host ausgeführt wird.

Wechseln Sie in der Satellite-Weboberfläche zum Bildschirm Hosts, klicken Sie auf Host erstellen und überprüfen Sie, ob die Gruppe verwendet wird, für die wir gerade 4 neue Parameter erstellt haben, dh die RHEL 8-Gruppe.



Nach Abschluss der Hostinitialisierung müssen wir sicherstellen, dass die Vorlage erfolgreich gestartet wurde. Gehen Sie dazu zum Bildschirm Vorlagen in der Ansible Tower-Weboberfläche, suchen Sie in der Liste nach unserer Vorlage und prüfen Sie, ob das am weitesten links stehende Quadrat der Anzeige grün wird:



Wir klicken auf dieses grüne Kästchen, um die Startdetails anzuzeigen, die in unserem Fall erfolgreich waren. Bitte beachten Sie, dass diese Aufgabe ein Limit (Limit) hat - das Starten nur neuer Hosts, die während der Initialisierung erstellt werden. Dies ist nicht überraschend, da der Bereitstellungsrückrufmechanismus die Vorlage nur auf den Hosts ausführt, die sie anfordern.



Gehen wir nun zum neu erstellten Host und prüfen, ob er mit den Angaben im Skript übereinstimmt:

[root@provision-test-rhel8 ~]# rpm -qa | grep tmux
tmux-2.7-1.el8.x86_64

[root@provision-test-rhel8 ~]# id brian
uid=10000(brian) gid=10000(brian) groups=10000(brian)

[root@provision-test-rhel8 ~]# cat /etc/motd
Authorized use only!

Fehlerbehebung


Wenn die Ansible Tower-Vorlage auf einem neuen Host, der über Satellit initialisiert wurde, nicht automatisch gestartet wird, müssen einige Dinge überprüft werden.

Der erste Schritt besteht darin, herauszufinden, ob der Ansible Tower eine Anforderung für einen Bereitstellungsrückruf erhalten hat, wie das Skript ausgeführt wurde und ob es überhaupt gestartet wurde. Gehen Sie dazu zum Bildschirm Vorlagen in der Tower-Oberfläche und sehen Sie sich die Farbe des Indikators neben dem Vorlagennamen an: Grün - Der Start war erfolgreich, Rot - Der Start ist fehlgeschlagen.



Wenn das Feld rot ist, klicken wir darauf und suchen nach zusätzlichen Informationen, um zu verstehen, warum der Start fehlgeschlagen ist (dies können sowohl Syntaxfehler im Skript als auch andere Probleme sein).

Wenn das Quadrat grün ist, klicken wir trotzdem und schauen, da die Aufgabe eine erfolgreiche Ausführung melden konnte, aber auf unserem Host nicht gestartet wurde. Wenn in der Hostzeile des Skripts beispielsweise bestimmte Hosts und Gruppen angegeben sind, die während der Initialisierung erstellten Hosts jedoch nicht enthalten sind, meldet die Aufgabe den Erfolg, in den zusätzlichen Informationen wird jedoch "Überspringen: Keine Hosts übereinstimmen" angezeigt.

Wenn das Indikatorquadrat weder grün noch rot ist, müssen Sie zunächst die Parameter der Hostgruppe in Satellite überprüfen. Stellen Sie sicher, dass die Ansible Tower-Server-URL, der Host-Konfigurationsschlüssel und die Vorlagen-ID dort korrekt angegeben sind.

Wechseln Sie als Nächstes zum neu initialisierten Host und überprüfen Sie, ob eine Datei /etc/systemd/system/ansible-callback.service (auf RHEL 7- oder 8-Systemen) oder eine Datei /root/ansible_provisioning_call.sh (RHEL 6) vorhanden ist.

Wenn die Datei nicht vorhanden ist, stellen Sie sicher, dass der Parameter ansible_tower_provisioning für diese Hostgruppe auf true festgelegt ist und dass die Initialisierungsmuster auf dem Satellitenserver nicht geändert wurden.
Wenn die Datei /etc/systemd/system/ansible-callback.service auf dem Host vorhanden ist, öffnen Sie sie und suchen Sie nach der URL, an die die Bereitstellungsrückrufanforderung gesendet wird:

[root@provision-test-rhel8 ~]# cat /etc/systemd/system/ansible-callback.service
[Unit]
Description=Provisioning callback to Ansible Tower
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/curl -k -s --data "host_config_key=aa5ebe82-491c-4fbb-bd36-a6657549451e" https://tower.example.com/api/v2/job_templates/11/callback/
ExecStartPost=/usr/bin/systemctl disable ansible-callback

[Install]
WantedBy=multi-user.target

Sie können curl ausführen und die in dieser Datei angegebenen Befehle manuell duplizieren, um einen Bereitstellungsrückruf manuell zu initiieren:

[root@provision-test-rhel8 ~]# /usr/bin/curl -k -s --data "host_config_key=aa5ebe82-491c-4fbb-bd36-a6657549451e" https://tower.example.com/api/v2/job_templates/11/callback/

Wenn ein ungültiger Host-Konfigurationsschlüssel angegeben wird, wird die folgende Fehlermeldung angezeigt:

[root@provision-test-rhel8 ~]# /usr/bin/curl -k -s --data "host_config_key=wrong-key-here" https://tower.example.com/api/v2/job_templates/11/callback/

{"detail":"You do not have permission to perform this action."}

Wenn die Vorlagen-ID falsch angegeben ist (hier - 43 statt 11), lautet die Antwort wie folgt:

[root@provision-test-rhel8 ~]# /usr/bin/curl -k -s --data "host_config_key=wrong-key-here" https://tower.example.com/api/v2/job_templates/43/callback/

{"detail":"Not found."}

Sie können den stillen (-s) Modus auch im Befehl curl deaktivieren, damit Fehler im Zusammenhang mit der Auflösung des Hostnamens angezeigt werden, wie im folgenden Beispiel, in dem wir den korrekten Namen ansible.example.com durch den falschen Namen ansible-tower.example.com ersetzt haben ::

[root@provision-test-rhel8 ~]# /usr/bin/curl -k  --data "host_config_key=wrong-key-here" https://ansible-tower.example.com/api/v2/job_templates/11/callback/

curl: (6) Could not resolve host: ansible-tower.example.com

Wenn Sie die Fehlerursache herausfinden, kann die Datei /var/log/tower/tower.log auf dem Ansible Tower-Server hilfreich sein.
In dieser Datei wird beispielsweise die Verwendung eines ungültigen Host-Konfigurationsschlüssels aufgezeichnet:

2019-11-19 23:19:17,371 WARNING  awx.api.generics status 403 received by user AnonymousUser attempting to access /api/v2/job_templates/11/callback/ from 192.168.0.138

Dies behebt auch die Verwendung einer ungültigen Vorlagen-ID:

2019-11-19 23:19:49,093 WARNING  awx.api.generics status 404 received by user AnonymousUser attempting to access /api/v2/job_templates/43/callback/ from 192.168.0.138

2019-11-19 23:19:49,095 WARNING  django.request Not Found: /api/v2/job_templates/43/callback/

Zusammenfassen


Durch die Integration von Satellite und Ansible Tower kann die Initialisierung und Konfiguration neuer Hosts erheblich optimiert werden. Dies spart den Systemadministratoren viel Zeit und hilft ihnen, schneller auf die Anforderungen des Unternehmens zu reagieren.

Am 24. März, von 11:00 bis 12:30 Uhr, veranstaltet Red Hat ein Webinar

zum Thema „Was Sie über Automatisierung wissen müssen: Grundlegende Ansible-Fähigkeiten“. Automatisierung ist ein Thema, das sich der Popularität und der Anzahl der Anfragen nach digitaler Transformation nähert. Wir werden Sie über unsere Sicht der Automatisierung informieren - zusammen mit Ansible und Ansible Tower - und dies sind die grundlegenden Informationen, die Ihnen die Tür in die schöne neue Welt der deklarativen Automatisierungstools öffnen.
Nach diesem Webinar werden Sie die grundlegenden Ansible-Entitäten wie Playbook, Inventar und Modul verstehen. Zusammen mit Ihnen werden wir die grundlegende YAML-Syntax beherrschen, damit Sie Ihre eigenen Skripte schreiben können. Es wird auch erwogen, Skripte zu starten und Berechtigungen zu eskalieren.

Als Ergebnis erhalten Sie grundlegende Fähigkeiten, mit denen Sie Dokumentation und andere Literatur erfolgreich studieren können, ohne das ständige Gefühl zu haben, dass Ihnen etwas fehlt. Registrieren Sie sich und kommen Sie!

All Articles