Wie installiere und konfiguriere ich Ansible unter Ubuntu?

Erste Schritte mit Ansible auf Ubuntu für eine bessere Umgebungsbereitstellung und Konfigurationsverwaltung.

Das Konfigurationsmanagement ist eine entscheidende Phase im DevOps-Lebenszyklus. Es hilft bei der Automatisierung und Orchestrierung der IT-Infrastruktur.

Es gibt mehrere Tools für das Konfigurationsmanagement, zum Beispiel Puppet, Ansible, Chef und SaltStack. Und natürlich ist Ansible 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

Um es einfach zu halten, 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 unkompliziert … Folgendes muss auf allen Servern durchgeführt werden, auf denen Sie Ansible verwenden möchten. In diesem Fall auf beiden Servern oben.

  • Führen Sie den folgenden Befehl aus, um die für die Installation von Ansible erforderliche Software zu installieren.
[email protected]:~# apt install software-properties-common
  • Installieren Sie das Repository mit dem ansible-Paket.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Aktualisieren Sie das erweiterte Verpackungstool (apt)
[email protected]:~# apt update
  • Und schließlich – führen Sie den folgenden Befehl zur Installation aus
[email protected]:~# apt install ansible

Die Installation des erforderlichen Pakets dauert einige Sekunden.

  Haben Sie Probleme mit der Paint.net-Installation? (GELÖST)

Wie stellen Sie sicher, dass es installiert ist und seine Version?

Nun, es ist einfach. Sie können die –version-Syntax mit Ansible verwenden, um dies wie folgt herauszufinden.

[email protected]:~# 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]
[email protected]:~#

Wie Sie sehen können, ist Ansible 2.8.1 installiert und bietet die erforderlichen 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 ein Client miteinander sprechen können.

SSH-Schlüsselaustausch

Ansible stellt über SSH (Secure Shell) eine Verbindung zu seinem Client her.

Wir generieren zunächst einen öffentlichen Schlüssel auf dem Ansible-Server, der auf den Ansible-Client kopiert werden muss.

Stellen Sie sicher, dass Sie als Root-Benutzer angemeldet sind.

  • Generieren Sie den Schlüssel mit dem Befehl ssh-keygen wie unten gezeigt
[email protected]:~# 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 [email protected]
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]-----+
[email protected]:~#

Wie Sie bemerkt haben, hat es einen öffentlichen Schlüssel im .ssh-Ordner generiert. Der vollständige Pfad lautet /root/.ssh/id_rsa.pub

  Warum hat die Turbo-Taste Ihren PC in den 90er Jahren verlangsamt?

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.

cd /root/.ssh
[email protected]:~# 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 mit dem Befehl chmod ändern

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

[email protected]:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/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
[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.

[email protected]:~/.ssh#

Sie können in der obigen Ausgabe sehen, dass 1 Schlüssel erfolgreich hinzugefügt wurde. Dies zeigt an, dass der SSH-Schlüssel ausgetauscht wird.

  So aktivieren oder deaktivieren Sie Nudge in Google Mail

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 befolgt 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 in der hosts-Datei hinzu, indem Sie Ihren bevorzugten Editor verwenden
[Client] 
node1 ansible_ssh_host=10.0.0.25

Ansible-Test

Wenn Sie alle Schritte korrekt ausgeführt haben, erhalten Sie eine SUCCESS-Meldung, wenn Sie den folgenden Befehl auf dem Ansible-Server ausführen.

[email protected]:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
[email protected]:~/.ssh#

Thea oben pingt den Client an, um die Konnektivität zu testen und zu bestätigen, ob sie gut ist oder nicht.

Fazit

Ich hoffe, dies gibt Ihnen eine Idee, wie Sie mit der Installation und dem Herumspielen beginnen können. Bleiben Sie dran für weitere Ansible-Tutorials oder sehen Sie sich auch diesen Udemy-Kurs „Mastering Ansible“ an.