Authorized_key in ansible

Authorized_key in ansible

In diesem Tutorial erfahren wir etwas über eines der wichtigsten Module von Ansible, das autorisiert ist. Wir werden erfahren, wie wir den SSH -Entschlüsselungsschlüssel übertragen, der in der Bestandsdatei an die Remote -Hosts in Ansible gespeichert ist.

Um die Aufgaben im Ansible Playbook auf entfernten Remote -Host -Geräten zu erledigen. In Ansible haben wir zwei verschiedene Schlüssel, die der öffentliche Schlüssel und der private Schlüssel, der als SSH -Schlüsselpaar bekannt ist. Um eine Verbindung mit den Ziel -Remote -Hosts herzustellen, müssen wir unseren öffentlichen SSH -Schlüssel mit ihnen austauschen und gleichzeitig den privaten SSH -Schlüssel für lokale Maschinen behalten. Der OpenSSH ist der Standard -Konnektivitätsmechanismus im Ansible -Tool. Ansible geht davon aus.

Verschiedene Schritte der SSH -Verbindung unter Verwendung der Schlüssel in Ansible

Im Folgenden werden die Schritte aufgeführt, mit denen wir die SSH -Verbindung zwischen dem Ansible Controller und den Remote -Hosts erstellen werden, indem wir den öffentlichen Schlüssel und den privaten Schlüssel verwenden:

Schritt 1: Machen Sie ein Schlüsselpaar, indem Sie private und öffentliche Schlüssel mit den jeweiligen Namen, ID, RSA und Pub generieren.

Schritt 2: Wenn wir nichts angeben, wird Ansible automatisch unter dem / hergestellt.SSH -Ordner.

Schritt 3: Durch das Einfügen des öffentlichen Schlüsselkneips am Ende des Dokuments /.SSH/Autorisierte Schlüssel, Sie können es an entfernte Fernhosts übertragen.

Schritt 4: Schließen Sie sich über SSH mit dem Ziel -Remote -Host an. Bestätigen Sie dann die Anfrage, die Fingerabdrücke der Zielhosts zum / hinzuzufügen.SSH/Bekannte Hosts -Dokument. Wenn Sie dies nicht einhalten, fordert die Software Sie auf, ein Passwort anzugeben, wenn die SSH -Verbindung eingeleitet wird.

Voraussetzungen der Ansible Authorization_Key

Wir gehen davon aus, dass Sie einen Ansible Control Server mit einem installierten Ansible sowie den Ziel -Remote -Hosts haben, um die SSH -Verbindung zwischen allen Ansible -Modulen zu konstruieren.

Gehen wir ein, um mehr Aspekte zu klären, indem wir das einfache Beispiel eines Autorisierungsschlüssels insible implementieren, indem eine SSH -Verbindung mit öffentlichen und privaten Schlüssel hergestellt wird.

Beispiel:

Hier ist das erste Beispiel, das wir mit dem Modul Authorization_key in ansible implementieren werden. Um die Verbindung zu erstellen, benötigen wir ein Playbook, in dem wir die Hosts und Aufgaben schreiben, um die Verbindung zwischen dem Ansible Control Server und dem Ziel -Remote -Hosts herzustellen. Der folgende Befehl wird verwendet, um das Spielbuch im Ansible -Tool zu erstellen:

[root@master ansible]# nano Authorization_key_1.YML

Nach dem Schreiben des angegebenen Befehls wird das Spielbuch erstellt und geöffnet. Jetzt stellen wir zuerst die Remote -Hosts zur Verfügung, mit denen wir die SSH -Verbindung erstellen möchten, die die „All“ -Target -Remote -Hosts sind. Anschließend verwenden wir den Parameter "Came -Facts" des Ansible -Tools. Das Argument Create_Fact wird verwendet, um das Setup -Modul von Ansible aufzurufen. In dieser Situation möchten wir die Fakten nicht sammeln, daher bieten wir dem Argument „Came -Facts“ den „falschen“ Wert, da die Tatsachen standardmäßig in Ansible gesammelt werden.

Als nächstes listen wir die Aufgaben im Spielbuch auf, die wir erledigen wollen. Wir schreiben den „Namen“ der Aufgabe, die "Fakten sammeln" lautet. Dann schreiben wir das Setup -Modul und das „sammeln_subset“, da wir einige der Informationen sammeln möchten, die sich auf die Verwaltung der Remote -Hosts beziehen, anstatt alle Informationen aller Remote -Hosts zu erhalten. Wir verwenden eine andere Variable von Ansible, die die Variable „Register“ ist, die die Ergebnisse der Aufgaben des Spielbuchs bewahrt und sie für nachfolgende Aufgaben verwendet.

Jetzt möchten wir den Namen der Remote -Host -Geräte drucken, daher verwenden wir erneut eine "Name" -Variable. Dann debuggen wir die Aufgaben. Wenn die Aufgabe abgeschlossen ist, wird die Ausgabe mit der zugehörigen Nachricht angezeigt. Im Folgenden finden Sie die vollständigen Aufgaben der Autorisierung_Key_1.YML Playbook:

- Gastgeber:
- alle
sammeln_facts: false
Aufgaben:
- Name: Fakten sammeln
aufstellen:
Come_Subset:
- 'alle'
Register: Gather_fact_data
- Name: Hostname des Zielgeräts drucken
debuggen:
msg: "sammeln_fact_data.ansible_facts.ansible_hostname "

Danach verwenden wir die STRG+X -Schaltflächen, um das Spielbuch zu beenden. Die Informationen über den gezielten Remote -Host1 werden dann durch Erstellen der Datei in die Bestandsdatei geschrieben. Wir geben den folgenden Befehl ein, um das Inventar zu generieren:

[Root@Master Ansible]# Nano Host.YML

Im Gastgeber.YML -Inventardatei geben wir die Informationen des Hosts an, indem wir die grundlegenden Informationen wie die Ansible IP -Adresse, den Benutzernamen, den Verbindungsnamen, die Portnummer des Ansible -Hosts usw. angeben, usw.

Alle:
Gastgeber:
Host1:
Ansible_Host: 192.168.7.10
Ansible_User: Iris
Ansible_Connection: SSH
Ansible_port: 22

Schließen Sie den Gastgeber.YML -Inventardatei. Jetzt, wo der Gastgeber.Die YML -Datei wird aktualisiert. Wir führen das Ansible Playbook aus, um zu überprüfen, ob die Verbindung hergestellt wurde oder nicht. Wir schreiben den folgenden Befehl:

[Root@Master Ansible]# Ansible-Playbook Authorized_key_1.YML -ich Host.YML

Nachdem wir den vorherigen Befehl ausgeführt haben, erhalten wir das folgende Ergebnis. Wie Sie sehen, erhalten wir den Fehler, aus dem besagt. Dies liegt daran, dass wir dem Ansible Controller das SSH -Schlüsselpaar nicht zur Verfügung gestellt haben.

Wir führen den folgenden Befehl aus, um dem Controller das SSH -Schlüsselpaar zu geben:

[Root@Master Ansible]# SSH -Keygen -q -T RSA

Hier ist die Ausgabe, den vorherigen Befehl einzugeben:

Wir drücken einfach die Eingabetaste. Danach werden die beiden Root -Dateien mit den SSH -Tasten in der Ausgabe angezeigt:

Jetzt erstellen wir ein weiteres Spielbuch für den Ansible Control Server und setzen die SSH -Verbindung des Controller -Servers. Um ein weiteres Spielbuch zu erstellen, schreiben wir den folgenden Befehl „Nano“:

[Root@Master Ansible]# Nano Authorized_key_2.YML

Nachdem wir ein anderes Spielbuch generiert haben, listen wir jetzt die Hosts auf und verwenden dann das ansible autorisierte Modul. In diesem Modul schreiben wir zunächst den Namen des Hosts und den Status des Benutzers. Dann übergeben wir die erzeugte öffentliche Schlüsseldatei des Controller -Geräts, die wir kürzlich an den Ziel -Remote -Host generiert haben.

- Gastgeber:
- alle
sammeln_facts: false
Aufgaben:
- Name: Fügen Sie den öffentlichen Schlüssel mit dem Ansible -Modul zu autorized_keys hinzu
autorisiert_key:
Benutzer: Iris
Zustand: Gegenwart
Schlüssel: 'item'
With_file:
- ~/.ssh/id_rsa.Pub

Verwenden Sie den folgenden Befehl, um den autorized_key_2 auszuführen.YML Playbook zusammen mit dem Gastgeber.YML -Inventardatei und die private Schlüsseldatei:

[Root@Master Ansible]# Ansible-Playbook Authorized_key_2.YML -ich Host.YML-Private-Key /TMP /Host.Pem

Die folgende Ausgabe ist das Ergebnis des Ausführens des oben genannten Spielbuchs mit der Bestandsdatei:

Wie Sie aus dem angegebenen Beispiel sehen können, haben wir das zweite Playbook erfolgreich implementiert, das das autorisierte_key_2 ist. Nachdem wir eine festgelegte Verbindung zwischen dem Controller und dem Remote -Host haben, schauen wir uns an, indem wir das Playbook One ausführen, das das Playbook des autorisierten_key_1 ist und feststellen, ob es ausführt oder nicht:

[Root@Master Ansible]# Ansible-Playbook Authorized_key_1.YML -ich Host.YML

Hier ist die Ausgabe des vorherigen Befehls, der erfolgreich ausgeführt wird:

Abschluss

Wir haben gelernt, wie man den Controller mit den Remote -Hosts mit dem Autorisierungsschlüsselmodul von Ansible verbindet. Wir haben das Beispiel mit einer gründlichen Beschreibung entwickelt, damit der grundlegende Ansatz des Autorisierungsmoduls einfach zu verstehen ist.