Ansible ist ein Automatisierungs-Tool-Set, das sehr gut mit Linux-basierten Servern funktioniert, aber auch mit anderen Cloud-Servern wie Windows und VMware (um nur einige zu nennen) kompatibel ist. Ansible ist eine agentenlose Anwendung, für deren Funktion nur Python erforderlich ist, das in fast allen Linux-Distributionen eine Standardanwendung ist.
Ansible ist großartig darin, Verwaltungsaufgaben zu automatisieren und eine gewünschte Zustandsinfrastruktur zu erstellen (um sicherzustellen, dass alle Server gleich sind).
Ansible arbeitet mit dem SSH-Protokoll, sodass Sie keine Software oder Agenten auf Remote-Servern benötigen. Es ist eine großartige Alternative zu anderen Automatisierungstools, einschließlich Chef und Puppet.
In diesem Artikel zeigen wir Ihnen, wie Sie Ansible auf einem Ubuntu 18.04-Server installieren und konfigurieren.
Voraussetzungen
- Ein frisches Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform.
- Vorzugsweise haben Sie ein paar Linux-Testserver (Ubuntu oder Debian).
- Ein auf Ihrem Server konfiguriertes Root-Passwort.
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – SSH-schlüsselbasierte Authentifizierung konfigurieren
Ansible verwendet SSH, um Informationen von den Remote-Hosts abzurufen. Sie müssen eine schlüsselbasierte Authentifizierung für die Remote-Hosts einrichten, damit der Ansible-Server mit Remote-Hosts kommunizieren kann, ohne das SSH-Passwort einzugeben.
Generieren Sie zunächst einen SSH-Schlüssel auf dem Ansible-Server mit dem folgenden Befehl:
ssh-keygen -t rsa
Sie sollten die folgende Ausgabe erhalten:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:HzUXrR+ltn9w0mwz5+hKeFzEOPcJrLTKi9C72Y7elAE example@unixlinux.online The key's randomart image is: +---[RSA 2048]----+ | .. | | .o .o| | E .=o=o.| | . ..o*=o.| | S..o ..*o| | . ..++ .+oB| | . . =o + O+| | . O .o . +| | .Bo= .o. .| +----[SHA256]-----+
Kopieren Sie als Nächstes den generierten Schlüssel mit dem folgenden Befehl auf die Remote-Hosts:
ssh-copy-id -i ~/.ssh/id_rsa.pub example@unixlinux.online
Überprüfen Sie als Nächstes die passwortlose SSH-Anmeldung mit dem folgenden Befehl:
ssh example@unixlinux.online
Schritt 3 – Ansible installieren
Sie können Ansible PPA mit dem folgenden Befehl hinzufügen:
apt-add-repository ppa:ansible/ansible
Aktualisieren Sie nach dem Hinzufügen von Ansible PPA das Repository und installieren Sie Ansible mit dem folgenden Befehl:
apt-get update -y apt-get install ansible -y
Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.
Schritt 4 – Ansible-Hosts konfigurieren
Als Nächstes müssen Sie Ihre Ansible-Hosts-Datei konfigurieren, um die Remote-Server zu definieren. Sie können /etc/ansible/hosts mit dem folgenden Befehl bearbeiten:
nano /etc/ansible/hosts
Sie können einzelne Hosts oder eine Gruppe von Hosts hinzufügen, wie unten gezeigt:
[webservers] webserver1 ansible_ssh_host=192.168.1.2 ansible_ssh_port=22 ansible_ssh_user=root webserver2 ansible_ssh_host=192.168.1.3 ansible_ssh_port=22 ansible_ssh_user=root [databaseservers] dbserver1 ansible_ssh_host=192.168.1.4 ansible_ssh_port=22 ansible_ssh_user=root
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
In der obigen Datei werden webserver1 und webserver2 verwendet, um eine Webserver-IP-Adresse, einen SSH-Port und einen Benutzernamen zu definieren, während dbserver1 verwendet wird, um eine Datenbankserver-IP-Adresse, einen SSH-Port und einen Benutzernamen zu definieren.
Deaktivieren Sie als Nächstes die Python-Warnung, indem Sie die Datei /etc/ansible/ansible.cfg:
bearbeitennano /etc/ansible/ansible.cfg
Fügen Sie die folgende Zeile unter [defaults] hinzu:
deprecation_warnings=False
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
An diesem Punkt ist Ihr Ansible-Server bereit, Ihren Webserver und Datenbankserver zu verwalten.
Schritt 5 – Ansible testen
Nach dem Einrichten des Ansible-Servers ist es an der Zeit, die Konnektivität aller Ansible-Hosts zu testen.
Führen Sie auf dem Ansible-Server den folgenden Befehl aus, um die Konnektivität aller Hosts zu testen:
ansible -m ping all
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:
Um die Konnektivität bestimmter Hosts wie dbserver1 zu testen, führen Sie den folgenden Befehl aus:
ansible -m ping dbserver1
Sie sollten die folgende Ausgabe sehen:
Führen Sie den folgenden Befehl aus, um die Konnektivität einer Gruppe von Hosts wie [Webservern] zu testen:
ansible -m ping webservers
Sie sollten die folgende Ausgabe sehen:
Schritt 6 – Erweiterte Ansible-Befehle
Sie können jeden Befehl auf einem Remote-Server über SSH vom Ansible-Server ausführen.
Um beispielsweise die Festplattennutzung aller Ansible-Hosts zu überprüfen, führen Sie den folgenden Befehl aus:
ansible -m shell -a "df -h" all
Dieser Befehl führt den Befehl „df -h“ auf allen Remote-Hosts aus und gibt die folgende Ausgabe aus:
Sie können alle Datenbanken auf dbserver1-Hosts mit dem folgenden Befehl auflisten:
ansible -m shell -a "mysql -u root example@unixlinux.online -e 'show databases;'" dbserver1
Sie sollten die folgende Ausgabe sehen:
Schlussfolgerung
Im obigen Tutorial haben wir gelernt, wie man Ansible auf einem Ubuntu 18.04-Server installiert. Wir haben auch gelernt, wie man mehrere Server mit Ansible verwaltet. Sie können jetzt Ihre gesamte Infrastruktur ganz einfach mit Ansible verwalten – probieren Sie es mit VPS-Hosting von Atlantic.Net aus!