Erste Schritte mit Ansible unter Ubuntu für eine bessere Bereitstellung der Umgebung und ein besseres Konfigurationsmanagement.
Konfigurationsmanagement ist eine entscheidende Phase in 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 in DevOps. Es kann mühelos Tausende von Servern und Ihre gesamte IT-Infrastruktur verwalten.

Wir werden in diesem Artikel Folgendes behandeln.
- Ansible Installation
- SSH-Schlüsselaustausch
- Ansible Client-Setup
- Ansible Tests
Ansible Installation
Versuchen wir zur Vereinfachung, Ansible auf zwei Servern zu verwenden. Einer ist ein Ansible-Server und ein anderer ein Ansible-Client mit der folgenden IP.
- Ansible-Server - 10.0.0.1
- Ansible-Client - 10.0.0.25
Die Installation ist unkompliziert. Die folgenden Schritte müssen auf allen Servern ausgeführt werden, auf denen Sie Ansible verwenden möchten. In diesem Fall auf beiden 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 ansible Paket.
root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
- Aktualisieren Sie das erweiterte Verpackungstool (apt)
root@ansible-server:~# apt update
- Führen Sie abschließend den folgenden Befehl aus, um die Installation durchzuführen
root@ansible-server:~# apt install ansible
Die Installation des erforderlichen Pakets dauert einige Sekunden.
Wie stellen Sie sicher, dass es installiert ist und seine Version?
Nun, es ist einfach. Sie können verwenden --version
Syntax mit ansible wie unten herauszufinden.
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 enthält die erforderlichen Informationen wie den Speicherort der Konfigurationsdatei und das Python-Modul.
Als nächstes müssen wir den SSH-Schlüsselaustausch durchführen, damit der Dienst ausgeführt werden kann und ein Client miteinander sprechen kann.
SSH Key Exchange
Ansible stellt über SSH (Secure Shell) eine Verbindung zu seinem Client her.
Wir werden zuerst einen öffentlichen Schlüssel auf dem Ansible-Server generieren, 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
Befehl 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 bemerkt hätten, hat es einen öffentlichen Schlüssel in der generiert .ssh
Ordner. Der vollständige Pfad lautet /root/.ssh/id_rsa.pub
Hinweis: Stellen Sie sicher, 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
- Listen Sie die Dateien auf
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 feststellen, dass die Berechtigung falsch ist, können Sie sie mithilfe von ändern chmod
Befehl
Ex:
chmod 400 id_rsa
chmod 400 id_rsa.pub
Kopieren wir den öffentlichen Schlüssel auf den Ansible-Host mit der IP-Adresse 192.168.56.101
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#
Sie können in der Ausgabe oben sehen, dass 1 Schlüssel erfolgreich hinzugefügt wurde. Dies zeigt an, dass der SSH-Schlüssel ausgetauscht wird.
Als nächstes richten wir einen Ansible-Client ein.
Ansible Client Setup
Ich gehe davon aus, dass Sie die Ansible-Installationsschritte auf dem Client-Server bereits ausgeführt haben, wie in den vorherigen Schritten erläutert.
Das Client- oder Host-Setup ist nichts anderes, als den Ansible-Server auf die Clients aufmerksam zu machen. Und dazu:
- Melden Sie sich beim Ansible-Server an
- Gehen Sie zu / etc / ansible
- Fügen Sie Folgendes hinzu Host-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 an den Client, um die Konnektivität zu testen und zu bestätigen, ob sie gut ist oder nicht.
Conclusion
Ich hoffe, dies gibt Ihnen eine Idee, wie Sie mit der Installation und dem Herumspielen beginnen können. Weitere Ansible-Tutorials finden Sie hier Udemy Mastering Ansible Kurs.