Ansible ist eine kostenlose Open-Source-Software, die zur Automatisierung der Softwarebereitstellung, des Konfigurationsmanagements und der Anwendungsbereitstellung verwendet werden kann. Im Gegensatz zu Puppet oder Chef müssen Sie vor der Verwendung von Ansible keine Client-Server-Umgebung einrichten. Sie können mehrere Hosts von einem zentralen Ort aus verwalten. Dieses Tool ist sehr einfach und dennoch leistungsstark, um komplexe IT-Anwendungsumgebungen mit mehreren Ebenen zu automatisieren. Ansible kommuniziert über normale SSH-Kanäle, um Informationen von Remote-Computern abzurufen und Aufgaben auszuführen.
In diesem Tutorial lernen wir, wie man Ansible auf einem Ubuntu 18.04-Server installiert und verwendet.
Anforderungen
- Zwei Ubuntu 18.04-Serversysteme mit installiertem OpenSSH-Server.
- Eine statische IP-Adresse 192.168.0.101 wird auf dem Serversystem eingerichtet und 192.168.0.104 wird auf dem Clientsystem eingerichtet.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen wird auf beiden Systemen eingerichtet.
Erste Schritte
Bevor Sie beginnen, aktualisieren Sie Ihr System mit dem folgenden Befehl auf die neueste Version:
sudo apt-get update -y
sudo apt-get upgrade -y
Sobald Ihr System auf dem neuesten Stand ist, starten Sie Ihr System neu, um die Änderungen zu übernehmen.
Installieren und konfigurieren Sie Ansible
Standardmäßig ist die neueste Version von Ansible nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Sie müssen also Ansible PPA zu Ihrem Server hinzufügen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
sudo apt-add-repository ppa:ansible/ansible
Aktualisieren Sie als Nächstes das Repository und installieren Sie Ansible mit dem folgenden Befehl:
sudo apt-get update -y
sudo apt-get install ansible -y
Sobald die Installation abgeschlossen ist, können Sie die Ansible-Version mit dem folgenden Befehl überprüfen:
sudo ansible --version
Ausgabe:
ansible 2.7.1 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0]
Als Nächstes müssen Sie Ihr Client-System definieren, das Sie in der Ansible-Hosts-Datei verwalten möchten. Sie können dies tun, indem Sie die Datei /etc/ansible/hosts bearbeiten:
sudo nano /etc/ansible/hosts
Fügen Sie die folgenden Zeilen hinzu:
[Client] node1 ansible_ssh_host=192.168.0.104
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
SSH-Schlüssel für das Clientsystem konfigurieren
Ansible verwendet SSH, um mit dem Client-Host zu kommunizieren. Daher müssen Sie die schlüsselbasierte SSH-Authentifizierung für den Client-Host konfigurieren.
Generieren Sie zunächst ein SSH-Schlüsselpaar mit dem folgenden Befehl:
ssh-keygen
Ausgabe:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): 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:bTVjTCKqxD8rnIw7/6mB6ZH9cnhzzOFg+/+x4clSOow [email protected] The key's randomart image is: +---[RSA 2048]----+ | . . . | | . . . + | | o . * | | . o . o o | | . o S o | | O .oo.. . | | * Bo.* + oo | | ..oo+=.E =o = | | ooo*++...+* | +----[SHA256]-----+
Als nächstes kopieren Sie diesen öffentlichen Schlüssel mit dem folgenden Befehl auf das Client-System:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Ausgabe:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Arbeiten mit Ansible
Ansible ist jetzt installiert und konfiguriert. Es ist Zeit, Ansible zu testen.
Versuchen Sie auf dem Ansible-Server, Ihr Clientsystem mit Ansible mit dem folgenden Befehl zu pingen.
ansible -m ping Client
Ausgabe:
node1 | SUCCESS => { "changed": false, "ping": "pong" }
Wenn Sie mehrere Clients in Ihrer Ansible-Hosts-Datei konfiguriert haben. Dann können Sie das gesamte Client-System mit dem folgenden Befehl anpingen:
ansible -m ping all
Sie können den Status des Apache-Webservers auf dem Client-System mit dem folgenden Befehl überprüfen:
ansible -m shell -a 'service apache2 status' Client
Ausgabe:
node1 | CHANGED | rc=0 >> * apache2 is running
Führen Sie den folgenden Befehl aus, um die Partitionsgröße des Clientsystems zu überprüfen:
ansible -m shell -a 'df -h' Client
Ausgabe:
node1 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on /dev/sda1 138G 48G 83G 37% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 1.9G 4.0K 1.9G 1% /dev tmpfs 384M 1.2M 383M 1% /run none 5.0M 0 5.0M 0% /run/lock none 1.9G 67M 1.9G 4% /run/shm none 100M 36K 100M 1% /run/user /dev/sda5 225G 35G 180G 16% /Data
Herzliche Glückwünsche! Sie haben Ansible erfolgreich auf dem Ubuntu 18.04-Server installiert und konfiguriert. Mit Ansible können Sie jetzt ganz einfach einfache Aufgaben aus der Ferne ausführen.