Erste Schritte mit Ansible unter Ubuntu für eine bessere Umgebungsbereitstellung und Konfigurationsverwaltung.
Das Konfigurationsmanagement ist ein entscheidender Schritt im DevOps Lebenszyklus. Es hilft bei der Automatisierung und Orchestrierung der IT-Infrastruktur.
Es gibt mehrere Tools für das Konfigurationsmanagement, z. B. Puppet, Ansible, Chef und SaltStack. Und, natürlich, Ansible ist eines der beliebtesten Tools für DevOps. Es kann Tausende von Servern und Ihre gesamte IT-Infrastruktur mit Leichtigkeit verwalten.

In diesem Artikel werden die folgenden Punkte behandelt.
- Ansible-Installation
- SSH-Schlüsselaustausch
- Ansible-Client-Einrichtung
- Ansible-Tests
Ansible-Installation
Der Einfachheit halber versuchen wir, Ansible auf zwei Servern zu verwenden. Einer wird ansible-server und ein anderer ansible-client mit der folgenden IP sein.
- ansible-server - 10.0.0.1
- ansible-client - 10.0.0.25
Die Installation ist einfach... die folgenden Schritte müssen auf allen Servern durchgeführt werden, auf denen Sie Ansible verwenden möchten. In diesem Fall auf den beiden oben genannten Servern.
- Führen Sie den folgenden Befehl aus, um die für die Installation von Ansible erforderliche Software zu installieren.
root@ansible-server:~# apt install software-properties-common
- Installieren Sie das Repository mit dem Ansible-Paket.
root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
- Aktualisieren Sie das Advanced Packaging Tool (apt)
root@ansible-server:~# apt update
- Und schließlich - führen Sie den folgenden Befehl aus, um zu installieren
root@ansible-server:~# apt install ansible
Es dauert nur wenige Sekunden, bis das erforderliche Paket installiert ist.
Wie stellen Sie sicher, dass die Software installiert ist und welche Version sie hat?
Nun, das ist ganz einfach. Sie können verwenden --version
Syntax mit Ansible, um dies herauszufinden, wie unten.
root@ansible-server:~# ansible --version
ansible 2.8.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.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
root@ansible-server:~#
Wie Sie sehen können, ist Ansible 2.8.1 installiert und liefert die notwendigen Informationen wie den Speicherort der Konfigurationsdatei und das Python-Modul.
Als Nächstes müssen wir einen SSH-Schlüsselaustausch durchführen, damit der Server und der Client miteinander kommunizieren können.
SSH-Schlüsselaustausch
Ansible verbindet sich mit seinem Client über SSH (Secure Shell).
Zunächst wird auf dem ansible-Server ein öffentlicher Schlüssel erzeugt, der auf den ansible-Client kopiert werden muss.
Stellen Sie sicher, dass Sie als Root-Benutzer angemeldet sind.
- Generieren Sie den Schlüssel mit
ssh-keygen
Kommando wie unten gezeigt
root@ansible-server:~# ssh-keygen
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:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A root@ansible-server
The key's randomart image is:
+---[RSA 2048]----+
| =.+oo . |
| . B.B.= . |
| . o @oE + |
| . *oO * . |
| o++.S + . |
| .o +o . + |
| .o..o + |
| ..o o . |
| .o o. |
+----[SHA256]-----+
root@ansible-server:~#
Wie Sie sicher bemerkt haben, hat es einen öffentlichen Schlüssel in der Datei .ssh
Ordner. Der vollständige Pfad lautet /root/.ssh/id_rsa.pub
Hinweis: Vergewissern Sie sich, dass die privaten und öffentlichen Schlüsseldateien nicht weltweit lesbar sind. Sie können die Dateien auflisten, um sie zu überprüfen.
- Wechseln Sie in den Ordner .ssh
cd /root/.ssh
- Auflisten der Dateien
root@ubuntu:~# ls -l
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub
Wenn Sie bemerken, dass die Erlaubnis falsch ist, können Sie sie ändern, indem Sie chmod
Befehl
Ex:
chmod 400 id_rsa
chmod 400 id_rsa.pub
Kopieren wir den öffentlichen Schlüssel auf den Ansible-Host, dessen IP-Adresse 192.168.56.101 lautet
root@ansible-server:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.25
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/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@10.0.0.25's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@10.0.0.25'"
and check to make sure that only the key(s) you wanted were added.
root@ansible-server:~/.ssh#
Wie Sie in der obigen Ausgabe sehen können, wurde 1 Schlüssel erfolgreich hinzugefügt. Dies zeigt an, dass der SSH-Schlüssel ausgetauscht wurde.
Als nächstes werden wir einen Ansible-Client einrichten.
Ansible-Client-Einrichtung
Ich gehe davon aus, dass Sie die Ansible-Installationsschritte auf dem Client-Server bereits ausgeführt haben, wie in den vorherigen Schritten beschrieben.
Die Einrichtung von Clients oder Hosts bedeutet nichts anderes, als dass der Ansible-Server die Clients kennt. Und, um dies zu tun:
- Anmeldung beim Ansible-Server
- Gehen Sie zu /etc/ansible
- Fügen Sie Folgendes hinzu Hosts-Datei indem Sie Ihren bevorzugten Editor verwenden
[Client]
node1 ansible_ssh_host=10.0.0.25
- Speichern Sie die Hosts-Datei
Ansible-Test
Wenn Sie alle Schritte korrekt ausgeführt haben, erhalten Sie eine ERFOLG Meldung, wenn Sie den folgenden Befehl auf dem Ansible-Server ausführen.
root@ansible-server:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
root@ansible-server:~/.ssh#
Die obigen Pings zum Client testen die Konnektivität und bestätigen, ob sie gut ist oder nicht.
Schlussfolgerung
Ich hoffe, dies gibt Ihnen eine Idee, um mit der Installation und dem Herumspielen zu beginnen. Bleiben Sie dran für weitere Ansible-Tutorials oder schauen Sie sich auch dieses Udemy Kurs Mastering Ansible.