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.

Das könnte dich auch interessieren …