So installieren und konfigurieren Sie Ansible auf Redhat Enterprise Linux 8

So installieren und konfigurieren Sie Ansible auf Redhat Enterprise Linux 8

Dieses Tutorial umfasst Schritt für Schritt die Installation und Konfiguration von Ansible auf Redhat Enterprise Linux 8.
Ansible ist das führende Open -Source -Konfigurationsmanagementsystem. Es erleichtert Administratoren und Betriebsteams, Tausende von Servern vom zentralen Gerät zu kontrollieren, ohne Agenten auf sie zu installieren.

In diesem Tutorial lernen Sie:

  • Ansible -Übersicht
  • Installieren und konfigurieren Sie Python
  • Setzen Sie Passwort ohne SSH
  • Ansible installieren
  • Testen und Verwalten des Ansible

Ansible Architektur.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Red Hat Enterprise Linux 8
Software Python3, Ansible
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Ansible -Übersicht

Ansible ist eine radikal einfache IT-Automatisierungs-Engine, die Cloud-Bereitstellung, Konfigurationsverwaltung, Anwendungsbereitstellung, Intra-Service-Orchestrierung und viele andere IT-Bedürfnisse automatisiert.



Entwickelt für mehrstufige Bereitstellungen seit dem ersten Tag modelliert Ansible Ihre IT-Infrastruktur, indem er beschreibt, wie alle Ihre Systeme miteinander verbunden sind, anstatt nur ein System nach dem anderen zu verwalten.

Es verwendet keine Agenten und keine zusätzliche kundenspezifische Sicherheitsinfrastruktur. Daher ist es einfach zu bereitstellen. Und vor allem verwendet sie eine sehr einfache Sprache (YAML in Form von Ansible Playbooks), mit denen Sie Ihre Automatisierungsjobs auf eine Weise beschreiben können, die sich nähert einfaches Englisch. Ansible -Arbeiten, indem Sie eine Verbindung zu Ihren Knoten herstellen und kleine Programme herausschieben, die als „Ansible -Module“ bezeichnet werden.
Diese Programme werden als Ressourcenmodelle des gewünschten Status des Systems geschrieben. Ansible führt dann diese Module (standardmäßig über SSH) aus und entfernt sie, wenn sie fertiggestellt werden.

Ihre Modulebibliothek kann sich auf jeder Maschine befinden, und es sind keine Server, Daemons oder Datenbanken erforderlich. In der Regel arbeiten Sie mit Ihrem bevorzugten Terminalprogramm, einem Texteditor und wahrscheinlich einem Versionskontrollsystem, um Änderungen an Ihren Inhalten zu verfolgen.

Installieren und konfigurieren Sie Python

Die Standardversion von Python in Rhel 8 ist Python 3.6. Aber Python 2 bleibt in RHEL 8 erhältlich. Wenn aus irgendeinem Grund Python 3.6 fehlt in der Red Hat Enterprise Linux 8 -Installation müssen Sie sie manuell installieren.

Python 3.6 kann auf RHEL 8 installiert werden, indem der folgende Befehl auf Ihrem Terminal ausgeführt wird. Python muss sowohl auf dem Ansible -Server als auch auf allen Hosts/Clients installiert werden, an denen es eine Verbindung hergestellt wird.



# YUM Installation Python3 Aktualisieren Abonnementverwaltungsrepositories. Aktualisieren von Abonnementverwaltungsrepositories. Letzte Metadaten -Ablauf -Überprüfung: 8:59:59 vor Sonne 03. Februar 2019 23:20:51 Uhr +04. Abhängigkeiten gelöst. ====================================================== ====================================================== ====================================================== Package Arch Version Repository Size ============================================= ====================================================== ====================================================== ===== installieren: python36 x86_64 3.6.6-17.EL8+2102+A4BBD900 RHEL-8-für-X86_64-Appstream-Beta-RPMS 22 K Aktivieren Modulströme: Python36 3.6 Transaction Summary =============================================== ====================================================== ====================================================== === Installieren Sie 1 Paket Total Download Größe: 22 K Installierte Größe: 22 K ist das OK [y/n]: y Herunterladen von Paketen: Python36-3.6.6-17.EL8+2102+A4BBD900.x86_64.Drehzahl 6.0 kb/s | 22 KB 00:03 ----------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Gesamt 6.0 kb/s | 22 KB 00:03 WARNUNG:/var/cache/dnf/rhel-8-für-X86_64-Appstream-Beta-RPMS-64ABA9DE5EA7E089/PACKES/PYTHON36-3.6.6-17.EL8+2102+A4BBD900.x86_64.RPM: Header V3 RSA/SHA256 Signatur, Key ID F21541EB: Nokey Red Hat Enterprise Linux 8 für x86_64 - Appstream Beta (RPMS) 3.2 kb/s | 3.3 KB 00:01 Importieren von GPG -Schlüssel 0xF21541EB: UserId: "Red Hat, Inc. (Beta Key 2) " : Python36-3.6.6-17.EL8+2102+A4BBD900.x86_64 vollständig! 

Um Python 3 zu verwenden, geben Sie einfach ein Python3 im Terminal.

Sie hätten feststellen sollen, dass der Befehl Python3 und Python2 für Python 2 für Python 3 für Python 2 ist. Was ist, wenn Ihre Anwendungen so konfiguriert sind, dass sie sich auf Python beziehen, das nicht systemweit verfügbar ist. Sie erhalten den folgenden Bash -Fehler.

# Python -Bash: Python: Befehl nicht gefunden 

Sie können den Alternativenmechanismus verwenden, um die unversionierte Python-Befehlssystemweite zu ermöglichen und auf eine bestimmte Version einzustellen. So setzen Sie Python 3 als Standardeinstellung den folgenden Befehl aus.



# Alternativen -Set Python/usr/bin/python3

Ausführen von Python -v sollte die Standardpython -Version angezeigt, die konfiguriert ist:

#Python -v Python 3.6.6 

oder durch Starten von Python eine Konsole:

# Python Python 3.6.6 (Standard, 16. Oktober 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] auf Linux-Typ "Hilfe", "Copyright", "Credits" oder "Lizenz" für weitere Informationen. >>> 

Setzen Sie Passwort ohne SSH

Erstellen Sie den Benutzer Ansible auf allen Hosts:

# UserAdd Ansible; Echo "" | PASSWD -STDIN ANSIBLE

Nehmen Sie den notwendigen Eintrag in Sudoers -Datei ein /etc/sudoersFür den Ansible-Benutzer für den sudo ohne passwortlosen Zugriff:

Ansible All = (alle) nopasswd: alle 
Kopieren

Generieren Sie nun den SSH -Schlüssel im Ansible Server:



$ ssh-keygen generieren öffentlich/privates RSA-Schlüsselpaar. Geben Sie die Datei ein, in der der Schlüssel speichert werden kann (/home/ansible/.SSH/ID_RSA): Verzeichnis erstellt '/home/ansible/.ssh '. Geben Sie Passphrase ein (ohne Passphrase leer): Geben Sie erneut die gleiche Passphrase ein: Ihre Identifizierung wurde in/home/ansible/gespeichert/wurde gespeichert.ssh/id_rsa. Ihr öffentlicher Schlüssel wurde in/home/ansible/gespeichert/.ssh/id_rsa.Pub. Der Schlüsselfingerabdruck lautet: SHA256: Wnt/uneprKRV+HHV/DJGTEXK2BJOGVPBR9YNIGXM2EM ANSIBLE@RHEL8-ISLIABLE-SERVER Das Randomart-Bild des Schlüssels ist:+--- [RSA 2048] ----+| | | . | | o e o | | + * + o | | . S * O * | | . += + + | | == o@ +.| | Oboo+= | | +o ++*BB | +---- [SHA256]-----+ 

Kopieren Sie es als Ansible -Benutzer auf Remote -Server:

$ ssh-copy-id ansible@rhel8-auf möglichst-klient/usr/bin/ssh-copy-ID: Info: Quelle der Schlüssel (en) zu installieren: "/home/ansible/.ssh/id_rsa.Pub "Die Authentizität des Hosts 'rhel8-auf-Client (192.168.1.109) 'kann nicht festgelegt werden. ECDSA Key Fingerabdruck ist SHA256: E+NFCEK/KVNIGNWDHGFVIKHJBWWGHIIJJKFJYGR7NKI. Sind Sie sicher, dass Sie sich weiter verbinden möchten (Ja/Nein)? Ja/usr/bin/ssh-copy-ID: Info: Versuch, sich mit den neuen Schlüssel (en) anzumelden, um alle zu filtern, die bereits installiert sind/usr/bin/ssh-copy-ID: Info: 1 Key (Schlüssel (Schlüssel s) müssen noch installiert werden-Wenn Sie jetzt aufgefordert werden, die neuen Tasten zu installieren und das Kennwort von-auf-auf-auf-Client: Anzahl der Tasten hinzugefügt (n) hinzugefügt: 1 Versuchen Sie jetzt, sich in der Maschine anzumelden, mit: "SSH ' Ansible@rhel8-auf-Client '"und prüfen Sie, ob nur die von Ihnen gewünschten Schlüssel hinzugefügt wurden. 


Ansible installieren

Sobald der Python installiert wurde, installieren Sie PIP, ein Python -Paketmanager, mit dem wir Ansible installieren werden:

# yum -y Installieren Sie Python3 -PIP -Aktualisierung von Abonnementverwaltungsrepositories. Aktualisieren von Abonnementverwaltungsrepositories. Letzte Metadaten -Ablauf -Überprüfung: 9:03:18 vor Sonne 03. Februar 2019 23:20:51 Uhr +04. Paket Python3-PIP-9.0.3-4.EL8.Keinarch ist bereits installiert. Abhängigkeiten gelöst. Nichts zu tun. Vollständig! 

Sobald wir haben PIP3 Verwenden Sie es, um Ansible im Ansible Management System als Ansible -Benutzer zu installieren.

$ pip3 Install Ansible -Benutzer

Sie können den Ansible mit dem folgenden Befehl installiert sehen:

$ ansible -Verssion Ansible 2.7.6 config -Datei = Keine konfigurierte Modulsuche Path = ['/home/ansible/.Ansible/Plugins/Module ','/usr/Share/Ansible/Plugins/Module '] Ansible Python Modul Ort =/Home/Ansible/.Lokal/lib/python3.6/Site-Packages/Ansible ausführbarer Standort =/home/ansible/.Lokal/bin/ansible Python Version = 3.6.6 (Standard, 16. Oktober 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] 

Testen und Verwalten

Erstellen Sie die Ansible Inventory -Datei, Standardeinstellung ist /etc/ansible/hosts Sie können jedoch die Hosts -Datei im Home -Verzeichnis des Ansible -Benutzers kopieren. Sie können auch eine Gruppe von Remote -Hosts erstellen, wie unten in der Hosts -Datei.

 [Web] 192.168.1.105 [DB] 192.168.1.107 [App] 192.168.1.108 192.168.1.109 192.168.1.110 
Kopieren

Sie können das Ping -Modul verwenden, um Ansible zu testen, und nach erfolgreichem Lauf können Sie die folgende Ausgabe sehen.

$ ansible -I ich Gastgeber 192.168.1.109 -m Ping 192.168.1.109 | Success => "verändert": false, "ping": "pong" 


Die Option -i wird verwendet, um einen Pfad zur Inventardatei bereitzustellen. Sie sollten den gleichen Ausgang für den Gruppennamen "App" erhalten.

$ ansible -i hostet App -m Ping 192.168.1.108 | Success => "verändert": false, "ping": "pong" 192.168.1.109 | Success => "verändert": false, "ping": "pong" 192.168.1.110 | Success => "verändert": false, "ping": "pong" 

Abschluss

Die Einfachheit und Fähigkeit von Ansible, die Komplexität anderer Tools zu verringern. Das wichtigste Anliegen ist Sicherheit und Zuverlässigkeit. Es verwendet OpenSSH für den Transport, und die Sprache richtet sich auch über diejenigen, die mit dem Programm nicht vertraut sind. Ansible ist geeignet genug, um sowohl kleine Setups mit einer Handvoll Instanzen als auch in den Unternehmensumgebungen zu verwalten.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Dinge zu installieren auf Ubuntu 22.04
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • Linux -Download
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
  • Mastering -Bash -Skriptschleifen beherrschen
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Liste der besten Kali -Linux -Tools für Penetrationstests und…