Ansible ist ein kostenloses und quelloffenes IT-Automatisierungs- und Konfigurationstool. Es ist für fast alle Linux-Distributionen verfügbar und kann zur Verwaltung von Linux- und Windows-Systemen verwendet werden. Heutzutage wird Ansible auch verwendet, um EC2-Instanzen in AWS, virtuellen Maschinen und Containern usw. zu verwalten. Es erfordert keinen Agenten auf verwalteten Hosts, sondern nur eine SSH-Verbindung.
In diesem Artikel behandeln wir, wie Sie die neueste Version von Ansible auf Ubuntu 20.04 LTS / 21.04 installieren
Systemanforderungen für Ansible
- Minimal installiertes Ubuntu 20.04 LTS / 21.04
- sudo-Benutzer mit Root-Rechten
- 2 CPU / vCPU
- 2 GB RAM oder mehr
- 20-GB-Festplatte
- Internetverbindung (falls Sie keinen lokal konfigurierten apt-Repository-Server haben)
Im Folgenden finden Sie meine Lab-Setup-Details für eine ansible Demonstration.
- Ansible Control Node – control.example.com (192.168.1.112)
- Ansible Managed Nodes – node1.example.com &node2.example.com
- sysops sudo-Benutzer auf Kontroll- und verwalteten Knoten mit Berechtigungen.
Hinweis:Hier ist Knoten1 ein Ubuntu-System und Knoten2 ist ein CentOS-System und Steuerknoten ist das System, auf dem wir Ansible installieren werden. Ich gehe davon aus, dass Sysops bereits auf jedem Host erstellt wurde.
Um den sudo-Benutzer (sysops) so zu konfigurieren, dass alle Befehle ohne Aufforderung zur Eingabe des Passworts ausgeführt werden, führen Sie den folgenden Befehl auf jedem verwalteten Host aus
echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops
Lassen Sie uns zu den Installationsschritten von Ansible
springenSchritt 1) Wenden Sie Aktualisierungen auf dem Kontrollknoten an
Melden Sie sich beim Ubuntu 20.04 LTS / 21.04-System an und führen Sie die folgenden apt-Befehle aus, um Updates anzuwenden.
$ sudo apt update $ sudo apt updgrade -y
Sobald alle Updates installiert sind, starten Sie das System einmal neu.
$ sudo reboot
Schritt 2) Installieren Sie Abhängigkeiten und konfigurieren Sie Ansible Repository
Installieren Sie Ansible-Abhängigkeiten, indem Sie den folgenden apt-Befehl ausführen:
$ sudo apt install -y software-properties-common
Sobald die Abhängigkeiten installiert sind, konfigurieren Sie das PPA-Repository für ansible, führen Sie
aus$ sudo add-apt-repository --yes --update ppa:ansible/ansible
Aktualisieren Sie jetzt das Repository, indem Sie es unter dem Befehl apt ausführen.
$ sudo apt update
Schritt 3) Installieren Sie die neueste Version von Ansible
Jetzt sind wir bereit, die neueste Version von Ansible auf Ubuntu 20.04 LTS / 21.04 zu installieren, führen Sie den folgenden Befehl aus.
$ sudo apt install -y ansible
Überprüfen Sie nach der erfolgreichen Installation von Ansible dessen Version, indem Sie den Befehl
ausführen$ ansible --version
Großartig, obige Ausgabe bestätigt, dass Ansible Version 2.9.6 installiert ist.
Schritt 4) Richten Sie SSH-Schlüssel ein und teilen Sie sie unter verwalteten Knoten
Lassen Sie uns nun die SSH-Schlüssel für den Sysops-Benutzer vom Kontrollknoten generieren und für verwaltete Hosts freigeben. Führen Sie den ssh-keygen-Befehl aus
$ ssh-keygen
Drücken Sie die Eingabetaste, wenn Sie zur Eingabe aufgefordert werden. Die Ausgabe wird unten angezeigt
Hinweis:Fügen Sie Einträge für verwaltete Hosts in die Datei /etc/hosts auf dem Steuerknoten hinzu. Dies ist nur erforderlich, wenn Sie keinen lokalen DNS-Server konfiguriert haben.
192.168.1.115 node1.example.com 192.168.1.120 node2.example.com
Um die SSH-Schlüssel zwischen der Steuerung und den verwalteten Hosts zu teilen, führen Sie das unten gezeigte Beispiel für den Befehl ssh-copy-id aus
$ ssh-copy-id node1.example.com $ ssh-copy-id node2.example.com
Die Ausgabe der obigen Befehle würde wie unten aussehen
Schritt 5) Ansible CFG- und Inventardatei erstellen
Es wird immer empfohlen, für jedes Projekt eine separate ansible.cfg- und Inventory-Datei zu haben. Für Demonstrationszwecke verwende ich Demo als Projektnamen. Erstellen Sie also zuerst den Projektordner, indem Sie den Befehl mkdir ausführen.
$ mkdir demo
Kopieren Sie die Standarddatei ansble.cfg in den Ordner ~/demo,
$ cp /etc/ansible/ansible.cfg ~/demo/
Bearbeiten Sie die Datei ~/demo/ansible.cfg, setzen Sie die folgenden Parameter,
$ vi ~/demo/ansible.cfg
Unter den Standardabschnitten
inventory = /home/sysops/demo/inventory remote_user = sysops host_key_checking = False
Unter dem Abschnitt "privileg_escalation"
become=True become_method=sudo become_user=root become_ask_pass=False
Speichern und schließen Sie die Datei. Lassen Sie uns nun die Inventardatei erstellen, die wir in der Datei ~/demo/ansible.cfg definiert haben.
$ vi ~/demo/inventory [dev] node1.example.com [prod] node2.example.com
Speichern und beenden Sie die Datei
Weisen Sie Ansible nun endlich an, die Datei ansible.cfg des Demoprojekts zu verwenden, indem Sie die Variable ANSIBLE_CONFIG deklarieren, führen Sie die folgenden Befehle aus,
$ export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg $ echo "export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg" >> ~/.profile
Führen Sie den Befehl ansible –version aus dem Demoordner aus, um die Ansible-Konfiguration zu überprüfen
$ cd demo/ $ ansible --version
Großartig, Ansible liest jetzt die Ansible-Konfigurationsdatei unseres Projekts. Lassen Sie uns die Konnektivität der verwalteten Knoten mit dem Ansible-Ad-hoc-Befehl überprüfen,
$ ansible all -m ping
Hinweis:Stellen Sie sicher, dass Sie den ansible-Befehl aus dem Demo-Ordner ausführen.
Die Ausgabe des Befehls würde wie folgt aussehen:
Diese Ausgabe bestätigt, dass die Konnektivität vom Kontrollknoten zu den verwalteten Hosts vorhanden ist.
Schritt 6) Erstellen Sie ein Ansible-Playbook, um Pakete auf verwalteten Hosts zu installieren
Um die Ansible-Installation und -Konfiguration zu überprüfen, erstellen wir ein Beispiel-Playbook mit dem Namen „packages.yaml“ im Ordner „demo“.
$ vi packages.yaml --- - name: Playbook to Install Packages hosts: - dev - prod tasks: - name: Install php and mariadb package: name: - php - mariadb-server state: present
Speichern und schließen Sie die Datei
Führen Sie nun das Playbook mit dem Befehl ansible-playbook aus,
$ ansible-playbook packages.yaml
Ausgabe:
Die obige Ausgabe bestätigt, dass das Playbook erfolgreich ausgeführt wurde. Um das Ergebnis zu überprüfen, führen Sie die folgenden Ad-hoc-Befehle aus,
$ ansible dev -m shell -a 'dpkg -l | grep -E "php|mariadb"' $ ansible prod -m shell -a 'rpm -qa | grep -E "php|mariadb"'
Das ist der Abschluss des Artikels. Falls Sie diesen Artikel informativ fanden, zögern Sie bitte nicht, ihn zu teilen. Falls Sie Fragen haben, hinterlassen Sie diese bitte in den Kommentarbereichen unten.
Lesen Sie auch :Verwendung von Handlern in Ansible Playbook