Wie man Ansible unter Ubuntu 18.04 LTS installiert und konfiguriert
Ansible ist eine kostenlose und 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 keine Client-Server-Umgebung einrichten, bevor Sie Ansible verwenden können. Sie können mehrere Hosts von einem zentralen Standort aus verwalten. Dieses Tool ist sehr einfach und dennoch leistungsstark zur Automatisierung komplexer mehrschichtiger IT-Anwendungsumgebungen. Ansible kommuniziert über normale SSH-Kanäle, um Informationen von entfernten Maschinen abzurufen und Aufgaben auszuführen.
In diesem Tutorial erfahren wir, wie man Ansible auf dem Ubuntu 18.04 Server installiert und verwendet.
Anforderungen
- Zwei Ubuntu 18.04 Serversysteme mit installiertem OpenSSH-Server.
- Auf dem Serversystem ist eine statische IP-Adresse 192.168.0.101 und auf dem Client-System 192.168.0.104 eingerichtet.
- Auf beiden Systemen ist ein Nicht-Root-Benutzer mit sudo-Rechten eingerichtet.
Erste Schritte
Aktualisieren Sie Ihr System vor dem Start 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 von 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 anschließend das Repository und installieren Sie Ansible mit dem folgenden Befehl:
sudo apt-get update -y sudo apt-get install ansible -y
Nach Abschluss der Installation können Sie die Ansible Version mit dem folgenden Befehl überprüfen:
sudo ansible --version
Output:
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, das Sie verwalten möchten, in der Datei Ansible hosts definieren. Sie können dies tun, indem Sie die Datei /etc/ansible/hosts bearbeiten:
sudo nano /etc/ansible/hosts
Füge 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 Client-System 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.
Erzeugen Sie zunächst ein SSH-Schlüsselpaar mit dem folgenden Befehl:
ssh-keygen
Output:
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 root@ubuntu1804 The key's randomart image is: +---[RSA 2048]----+ | . . . | | . . . + | | o . * | | . o . o o | | . o S o | | O .oo.. . | | * Bo.* + oo | | ..oo+=.E =o = | | ooo*++...+* | +----[SHA256]-----+
Kopieren Sie anschließend diesen öffentlichen Schlüssel mit dem folgenden Befehl auf das Client-System:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.104
Output:
/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 root@192.168.0.104's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.0.104'" and check to make sure that only the key(s) you wanted were added.
Arbeiten mit Ansible
Ansible ist nun installiert und konfiguriert. Es ist ein Zeittest Ansible.
Versuchen Sie auf dem Ansible-Server, Ihr Client-System mit Ansible mit dem folgenden Befehl anzupingen.
ansible -m ping Client
Output:
node1 | SUCCESS => { "changed": false, "ping": "pong" }
Wenn Sie mehrere Clients in Ihrer Datei Ansible hosts konfiguriert haben. Dann können Sie das gesamte Client-System mit dem folgenden Befehl pingen:
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
Output:
node1 | CHANGED | rc=0 >> * apache2 is running
Um die Partitionsgröße des Client-Systems zu überprüfen, führen Sie den folgenden Befehl aus:
ansible -m shell -a 'df -h' Client
Output:
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
Herzlichen Glückwunsch! Sie haben Ansible auf dem Ubuntu 18.04 Server erfolgreich installiert und konfiguriert. Sie können Ansible nun ganz einfach verwenden, um einfache Aufgaben remote auszuführen.