GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Ansible auf Ubuntu

Ansible ist ein Open-Source-Tool, mit dem Sie Anwendungen bereitstellen, konfigurieren, verwalten und bereitstellen können. Es hilft, die Infrastruktur als Code auszuführen, im Grunde ein Automatisierungstool. Ansible läuft auf Linux-, Unix-ähnlichen und Windows-Systemen. Es ist ein kostenloses, in Python geschriebenes Tool.

Mit Ansible wird die Automatisierung und Steuerung einer großen Anzahl von Servern vereinfacht. Dadurch verwaltete der Systemadministrator oder DevOps-Ingenieur alle Server von einem einzigen Kontrollknoten aus.

Im Gegensatz zu Chef und Puppet benötigt Ansible keine spezielle Software, die auf den Knoten installiert werden muss. Ansible verwendet SSH zum Ausführen von Aufgaben und eine YAML-Datei zum Definieren von Bereitstellungsinformationen.

Dieses Tutorial zeigt Ihnen, wie Sie Ansible unter Ubuntu 20.04 installieren und lernen die Grundlagen kennen.

Ansible Control Node und Hosts

Ansible-Steuerknoten sind Computer, auf denen Ansible installiert ist und die einen oder mehrere Remote-Hosts steuern. Kontrollknoten kommunizieren mit Hosts oder Knoten über SSH unter Verwendung von Befehlszeilentools oder Konfigurationsskripten (Playbooks).

Hosts oder verwaltete Knoten sind Netzwerkgeräte oder Server, die von Ansible verwaltet werden. Ansible vereinfacht den Vorgang durch die Verwendung von SSH, sodass auf Hostcomputern nur der SSH-Dienst ausgeführt und der Port geöffnet sein muss.

Im folgenden Abschnitt lernen wir, wie man einen Kontrollknoten einrichtet und Informationen von Hosts abruft.

Anforderungen

  • Ein Kontrollknoten mit SSH-Schlüsselpaar
  • Ein oder mehrere Hosts – Remote-Server mit hinzugefügtem öffentlichem SSH-Schlüssel

Für die Demonstration verwenden wir für beide Zwecke einen Ubuntu 20.04-Rechner.

Installieren Sie Ansible auf Ubuntu

Ansible-Komponenten werden auf dem Kontrollknoten installiert. Der folgende Befehl zum Installieren von Ansible auf Ubuntu.

Holen Sie sich zuerst eine aktualisierte Liste aller Pakete aus ihren Quellen:

$ sudo apt update

Um nun Ansible zu installieren, geben Sie Folgendes ein:

$ sudo apt install ansible

Steuerknoten und Hosts einrichten

Es wird empfohlen, einen Nicht-Root-Benutzer mit sudo-Berechtigungen auf dem Ansible-Steuerknoten zu erstellen. Richten Sie dann ein SSH-Schlüsselpaar für diesen Benutzer ein.

Erstellen Sie einen neuen Nicht-Root-Benutzer:

$ sudo adduser controller

Dann müssen Sie sudo zuweisen Berechtigung für controller Benutzer:

$ sudo usermod -aG sudo controller

Jetzt können Sie sich beim controller anmelden Benutzersitzung und generieren Sie einen SSH-Schlüssel:

$ su - controller
$ ssh-keygen

Ausgabe:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/controller/.ssh/id_rsa): 
Created directory '/home/controller/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/controller/.ssh/id_rsa
Your public key has been saved in /home/controller/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:R033P2ygbVuZv5jJdRbIZtaPG8Af7ZFL2pE9vbzQgP0 controller@linoxide
The key's randomart image is:
+---[RSA 3072]----+
|            . .  |
|           o . . |
|          . ..  .|
|         . .* =.O|
|        S .oo@.^=|
|         .  =o%+@|
|             ++E*|
|            . *++|
|             =.o |
+----[SHA256]-----+

Wir müssen passwortloses SSH von Ansible Control Node zu jedem Host aktivieren. Grundsätzlich müssen wir den öffentlichen Schlüssel des Kontrollknotens in die Datei „authorized_keys“ auf jedem Host kopieren.

In diesem Tutorial verwenden wir zwei ansible Hosts:host1@ip_address_1 und host2@ip_address_2 .

Führen Sie auf dem Ansible-Steuerknoten den folgenden Befehl aus, um den öffentlichen Schlüssel auf die Hostserver zu kopieren:

$ ssh-copy-id host1@ip_address_1
$ ssh-copy-id host2@ip_address_2

Einrichten der Inventardatei

Ansible verwendet die inventory file um Informationen über die von Ansible Control Node verwalteten Remote-Server (Hosts) zu speichern. Hosts können in Gruppen oder Untergruppen organisiert werden.

Die Standard-Ansible-Inventardatei befindet sich unter /etc/ansible/hosts , aber Sie können die Inventardatei an einem beliebigen Ort erstellen und müssen den Pfad zu Ihrer Inventardatei mit dem -i angeben -Parameter beim Ausführen von Ansible-Befehlen.

Jetzt können Sie die Inventardatei mit Ihrem bevorzugten Editor öffnen und wie folgt ändern:

$ sudo vim /etc/ansible/hosts

Beachten Sie, dass Sie die folgenden IPs durch die IP-Adressen Ihrer Ansible-Hosts ersetzen.

[servers]
server1 ansible_host=178.0.113.111
server2 ansible_host=178.0.113.112

Überprüfen Sie das Inventar mit dem folgenden Befehl:

$ ansible-inventory --list -y

Ausgabe:

all:
  children:
    servers:
      hosts:
        server1:
          ansible_host: 178.0.113.111
        server2:
          ansible_host: 178.0.113.112
    ungrouped: {}

Verbindung testen

Es ist Zeit zu prüfen, ob Ansible eine Verbindung zu den Remote-Servern herstellen kann. Sie können das -u verwenden -Argument, um den entfernten Benutzer auf den Servern anzugeben. Zum Beispiel:

$ ansible all -m ping -u root

Der Befehl verwendet ansible ping Modul, um die Konnektivität von Ansible Control Node zu Remote-Servern zu überprüfen.

server1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
server2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Wenn Sie ein pong erhalten von den Remote-Servern antworten, können Sie Ansible-Befehle und Playbooks auf diesen Servern ausführen.

Ausführen eines Ad-hoc Befehl auf entfernten Ansible-Hosts, zum Beispiel:

$ ansible all -a "df -h" -u root

Ausgabe:

server1 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           746M  2.3M  744M   1% /run
/dev/sda1        20G  4.7G   15G  25% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/loop1      130M  130M     0 100% /snap/google-cloud-sdk/161
/dev/loop0       32M   32M     0 100% /snap/snapd/10238
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           746M     0  746M   0% /run/user/1001
server2 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           746M  1.7M  745M   1% /run
/dev/sda1        20G  4.2G   16G  22% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/loop0       56M   56M     0 100% /snap/core18/1932
/dev/loop1       32M   32M     0 100% /snap/snapd/10492
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           746M     0  746M   0% /run/user/1001

Schlussfolgerung

Ansible ist jetzt im Besitz von Redhat und bringt viele Verbesserungen in den Code ein. Ansible Tower ist die Unternehmensversion von Ansible, mit der Sie Server über eine moderne webbasierte Benutzeroberfläche verwalten können.

In diesem Lernprogramm haben Sie anhand von Beispielen gelernt, wie Sie Ansible unter Ubuntu und die grundlegende Einrichtung installieren. Danke fürs Lesen und bitte hinterlassen Sie Ihren Vorschlag im Kommentarbereich unten.


Ubuntu
  1. So installieren und konfigurieren Sie Ansible unter Ubuntu 20.04

  2. So installieren Sie R unter Ubuntu 20.04

  3. So installieren Sie Go unter Ubuntu 18.04

  4. So installieren Sie Ansible auf Ubuntu Server 21.04

  5. So installieren Sie Ansible unter Ubuntu 18.04 LTS

So installieren Sie Ansible unter Ubuntu 16.04 (Xenial)

So installieren Sie die HestiaCP-Systemsteuerung unter Ubuntu 20.4

So installieren Sie Go in Ubuntu 20.04

So installieren Sie Go unter Ubuntu 22.04

So installieren Sie Ansible Server unter Ubuntu 18.04

So installieren Sie Ansible unter Ubuntu 18.04