GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Ansible unter Ubuntu 20.04 LTS

Das Konfigurieren und Bereitstellen von Anwendungen auf einem einzelnen Server ist normalerweise eine einfache Aufgabe. In einer komplexen IT-Umgebung mit mehreren Servern kann dies jedoch eine entmutigende und zeitaufwändige Aufgabe sein. Ansible wurde von RedHat entwickelt und gewartet und ist ein Open-Source-Serverkonfigurations- und Softwarebereitstellungstool, das die Anwendungsbereitstellung und das Konfigurationsmanagement vereinfacht. Es entlastet IT-Betriebsteams und automatisiert die Konfiguration von Servern und die Bereitstellung von Anwendungen auf einfache und effektive Weise.

Im Vergleich zu seinen Gegenstücken wie Chef und Puppet ist Ansible das am weitesten verbreitete Tool, da es keinen Agenten für die Kommunikation mit entfernten Hosts benötigt. Ansible nutzt das SSH-Protokoll, um mit entfernten Zielen zu kommunizieren, und dabei bleiben die CPU-Ressourcen der entfernten Hosts unbeeinflusst.

Ansible Lab-Setup

Für unsere Testumgebung haben wir zwei Knoten:den Kontrollknoten, auf dem Ansible installiert wird, und den Remote-Host, der vom Ansible-Kontrollknoten konfiguriert wird:

Ansible-Kontrollknoten IP 192.168.2.101 Ubuntu 20.04

Remote-Host IP 192.168.2.104 Ubuntu 20.04

Stellen Sie außerdem sicher, dass Sie einen sudo-Benutzer haben auf dem Ansible-Steuerknoten konfiguriert ist und dass der SSH-Daemon auf beiden Knoten ausgeführt wird.

Lassen Sie uns ohne viel Umschweife auf die Installation von Ansible unter Ubuntu 20.04 eingehen

Schritt 1:Installieren Sie Ansible

Melden Sie sich sofort beim Ansible-Masterserver an und installieren Sie Ansible als sudo-Benutzer wie folgt.

$ sudo apt install ansible

Dadurch wird Ansible zusammen mit einer Vielzahl von Python3-Paketen installiert, die für eine reibungslose Ausführung von Ansible unerlässlich sind.

Nach der Installation können Sie die Ansible-Version wie gezeigt bestätigen.

Die Ausgabe liefert einige umfangreiche Informationen. Es zeigt die Version von Ansible – in diesem Fall Ansible 2.9.6 – das Modul und den Pfad der ausführbaren Ansible-Datei sowie die auf Ihrem System installierte Python-Version an.

Die Konfigurationsdatei – ansible.cfg – ist die Ansible-Konfigurationsdatei, die sich im Verzeichnis /etc/ansible befindet Verzeichnis. Die Einstellungen bestimmen, wie Ansible ausgeführt wird und mit Remote-Clients interagiert. Außerdem enthält das Verzeichnis eine Bestandsdatei namens hosts. Hier werden entfernte oder verwaltete Hosts definiert. Während wir uns in diesem Tutorial durcharbeiten, werden wir den Remote-Host in dieser Inventardatei definieren.

Schritt 2:Passwortlose SSH-Anmeldung einrichten

Das SSH-Protokoll bietet zwei Authentifizierungsmethoden:Kennwort- und Public/Private-Key-Authentifizierung. Unter Verwendung von SSH-Schlüsseln werden wir eine passwortlose SSH-Anmeldemethode einrichten, um eine sicherere und bequemere Art der Interaktion mit dem Remote-Host bereitzustellen. Die passwortlose SSH-Anmeldemethode bietet eine nahtlose Möglichkeit zur Interaktion mit dem Host, da wir beim Ausführen von Playbook-Dateien kein Passwort angeben müssen.

Um die passwortlose SSH-Anmeldung einzurichten, generieren wir zunächst das SSH-Schlüsselpaar wie gezeigt:

$ ssh-keygen

Drücken Sie die EINGABETASTE ganz, um die Standardvorschläge zu akzeptieren.

Das SSH-Schlüsselpaar umfasst einen privaten und einen öffentlichen Schlüssel. Wir haben die id_rsa das ist der private Schlüssel. Außerdem haben wir die id_rsa.pub das ist der öffentliche Schlüssel.

Als Nächstes kopieren wir den öffentlichen Schlüssel auf den Remote-Host, wobei wir den Root-Benutzer als Benutzer des Remote-Hosts verwenden.

HINWEIS

Vor dem Kopieren der öffentlichen ssh-Schlüsseldatei konfigurieren wir den Remote-Benutzer in der Ansible-Konfigurationsdatei wie gezeigt.

$ sudo vim /etc/ansible/ansible.cfg

Setzen Sie den Remote-Benutzer auf root.

remote_user=root

Speichern Sie die Datei.

Gehen Sie als Nächstes zum Remote-Host und aktivieren Sie die Remote-Root-Anmeldung, indem Sie die /etc/ssh/ssh_config bearbeiten Datei.

$ sudo vim /etc/ssh/ssh_config

Fügen Sie die folgende Zeile an

PermitRootLogin yes

Noch einmal speichern und beenden.

Jetzt können wir fortfahren und den öffentlichen SSH-Schlüssel wie gezeigt auf den Remote-Host kopieren.

$ ssh-copy-id [email protected]

Wenn Sie sich zum ersten Mal als Root-Benutzer anmelden, erhalten Sie die Eingabeaufforderung wie in der Abbildung unten gezeigt. Geben Sie einfach „Ja“ ein, um die Verbindung fortzusetzen. Sobald Sie das Root-Passwort des Remote-Hosts angegeben haben, wird der SSH-Schlüssel zum Root-Home-Verzeichnis hinzugefügt.

Für nachfolgende Anmeldungen müssen Sie kein Passwort angeben. Um dies zu überprüfen, verlassen Sie den Remote-Host und versuchen Sie erneut, sich anzumelden.

$ ssh [email protected]

Dadurch gelangen Sie wie gezeigt automatisch zur Shell des Remote-Hosts.

Perfekt! Unser passwortloses SSH-Login-Setup ist abgeschlossen. Jetzt erstellen wir eine Playbook-Datei, die den Apache-Webserver installiert.

Schritt 3:Fügen Sie den Remote-Host in der Ansible-Konfigurationsdatei hinzu

Als Nächstes definieren wir unseren Remote-Host in der Ansible-Inventardatei, die standardmäßig /etc/ansible/hosts ist Datei. Öffnen Sie also die Datei.

 $ sudo vim /etc/ansible/hosts

Die Datei hosts ist im INI-Format aufgebaut. Wir werden die IP-Adresse unseres Hosts unter den Webservern hinzufügen Gruppenname.

[webservers]
192.168.2.104

Speichern Sie die Inventardatei und schließen Sie sie. Um die in der Bestandsdatei definierten Hosts zu überprüfen, führen Sie Folgendes aus:

 $ ansible webservers --list-hosts

Um alternativ alle Hosts in allen Hostgruppen zu prüfen, führen Sie Folgendes aus:

 $ ansible all --list-hosts

Jetzt testen wir das Vorhandensein des Ansible-Python-Moduls auf dem Remote-Host.

 $ ansible -m ping webservers

HINWEIS:

Der Ping module ist kein ICMP-Ping-Befehl. Es ist nur ein trivialer Test, um zu überprüfen, ob das Python3-Modul installiert ist und ob SSH vorhanden ist.

Die folgende Ausgabe zeigt, dass der Befehl erfolgreich war. Die Ausgabe zeigt auch die IP des Remote-Hosts an, der unter den Webservern definiert ist Gruppe. Wenn Sie mehrere Hosts unter mehreren Gruppen definiert haben, verwenden Sie all Option.

 $ ansible -m ping all

Schritt 4:Erstellen Sie eine Playbook-Datei, um den Remote-Host zu konfigurieren

Nachdem der Remote-Host definiert ist, erstellen wir nun eine Playbook-Datei, um den Apache-Webserver zu installieren. Eine Playbook-Datei ist eine YAML-Datei in Ansible, die vorschreibt, welche Aufgaben im Remote-Host ausgeführt werden sollen.

 $ sudo vim /etc/ansible/apache.yml

Die Playbook-Datei ist unten definiert. Beachten Sie, dass die Datei mit 3 Bindestrichen ( — ) beginnt. Beachten Sie auch die Einrückungen.

Führen Sie zuletzt die Playbook-Datei wie folgt aus.

$ ansible-playbook /etc/ansible/apache.yml

Während der Laufzeit führt das Playbook die Aufgaben akribisch aus und zeigt jede Aktion auf dem Terminal an. Es installiert den Apache-Webserver und startet den Dienst.

Um zu bestätigen, dass der Webserver erfolgreich installiert wurde, starten Sie einen Browser und durchsuchen Sie die IP des Remote-Hosts wie gezeigt:

http://server-ip/

Zusammenfassung

Ansible ist ein weit verbreitetes Automatisierungstool in DevOps und wird von Tausenden von Entwicklern und Systemadministratoren verwendet, um Anwendungen auf Servern zu konfigurieren und bereitzustellen. Es spart Zeit und minimiert den Aufwand für die Verwaltung einer Vielzahl von Servern in einer komplexen IT-Infrastruktur. Wir hoffen, dass Sie Ansible bequem auf Ubuntu 20.04 installieren und konfigurieren können.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 22.04 / 20.04 LTS

  2. So installieren Sie PlayOnLinux auf Ubuntu 20.04 LTS

  3. So installieren Sie MariaDB in Ubuntu 20.04 LTS

  4. So installieren und konfigurieren Sie Ansible unter Ubuntu 18.04 LTS

  5. So installieren Sie Ansible unter Ubuntu 18.04 LTS

So installieren Sie Go unter Ubuntu 22.04 LTS

So installieren Sie TeamViewer unter Ubuntu 16.04 LTS

So installieren Sie Go unter Ubuntu 18.04 LTS

So installieren Sie TeamViewer unter Ubuntu 18.04 LTS

So installieren Sie Go unter Ubuntu 20.04 LTS

So installieren Sie Chrome Remote Desktop unter Ubuntu 20.04 LTS