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

Installieren und konfigurieren Sie Ansible unter Linux

Diese Schritt-für-Schritt-Anleitung führt Sie durch die Schritte zum Installieren und Konfigurieren von Ansible unter Linux. Außerdem wird erklärt, wie Ansible Homelab unter Linux eingerichtet wird, um Ansible-Grundlagen zu erlernen.

1. Einführung

Ansible ist ein IT-Automatisierungstool, mit dem Sie „N“ Aufgaben in Ihrer Softwareumgebung automatisieren können. Um zu erfahren, was Ansible und seine Funktionen sind, lesen Sie unsere "Einführung in Ansible" Anleitung.

Ansible ist offensichtlich für das Konfigurationsmanagement im großen Maßstab konzipiert. Wenn Ihr Ziel darin besteht, schnell zu lernen und Ihre Umgebung neu erstellen zu können, dann sind Sie auf dem richtigen Weg!

Ansible ist agentenlos die Architektur. Bedeutung - auf verwalteten Knoten werden keine ansiblen Agenten/Prozesse ausgeführt.

Wie ich bereits im Ansile-Einführungsartikel erwähnt habe, gibt es in Ansible zwei Arten von Knoten.

  • Master/Controller-Knoten - Server/Workstation auf dem ansible installiert wird. Von diesem Knoten aus führen Sie alle Ansible-Playbooks und Ansible-Befehle aus.
  • Verwaltete Knoten - Liste der Hosts, die mit Ansible verwaltet werden.

Alle verwalteten Knoten müssen nicht mit derselben Distributionsversion oder demselben Distributionstyp ausgeführt werden. Sie können verschiedene Linux-Varianten als verwaltete Knoten verwenden.

Die Kommunikation zwischen dem Controller und den verwalteten Knoten erfolgt über ssh-schlüsselbasierte Authentifizierung .

In diesem praktischen Leitfaden erfahren Sie, wie Sie Ansible Lab in Linux-Distributionen einrichten.

Hinweis:

  1. Sie können Windows nicht als Controller-Knoten verwenden.
  2. Es ist möglich, mehrere Controller-Knoten zu konfigurieren.

Bevor Sie mit Ansible beginnen, möchte ich Ihnen die bildliche Darstellung meines Ansible-Homelab-Setups zeigen.

2. Architekturdiagramm für ein Ansible-Lab mit 3 Knoten

Die folgende grafische Darstellung gibt Ihnen eine schöne bildliche Darstellung, wie das Labor aussehen wird.

Zu Demonstrationszwecken richte ich einen Controller-Knoten auf Ubuntu 20.04 und 2 verwaltete Knoten auf CentOS 8 und Ubuntu 21.04 ein.

3. Ansible unter Linux installieren und konfigurieren

Zuerst werden wir sehen, wie man Ansible Managed Node unter Linux einrichtet.

3.1. Ansible unter Linux installieren

Da Ansible in Python geschrieben ist, sollte auf Ihrem Linux-Rechner Python installiert sein, damit Ansible funktioniert.

Glücklicherweise ist bei allen Linux-Distributionen Python vorinstalliert. Ansible unterstützt sowohl Python 2.7 als auch Python 3.5 und höher.

Um zu überprüfen, welche Version von Python auf Ihrem Computer installiert ist, können Sie die folgenden Befehle verwenden. Die Ausgabe kann variieren, je nachdem, wie Python in Ihrer Distribution eingerichtet ist.

$ which python python2 python3
/usr/bin/python2
/usr/bin/python3

Überprüfen Sie die Python-Version:

$ python2 --version
Python 2.7.18rc1
$ python3 --version
Python 3.8.5
$ compgen -c python | grep -P '^python..\d'
python3.8
python3.8-config
python2.7

Sie können Ansible unter Linux auf zwei Arten installieren.

  1. Verwendung des Paketmanagers des Betriebssystems
  2. Mit PIP - Python-Paketmanager

3.1.1. Installieren Sie Ansible mit dem Systempaket-Manager

Zuerst sehen Sie, wie Sie den Paketmanager Ihrer Distribution verwenden, um ansible zu installieren. Führen Sie basierend auf Ihrer Linux-Distribution die folgenden Befehle aus.

Installieren Sie Ansible unter Arch Linux, EndeavourOS, Manjaro Linux:

$ sudo pacman -S ansible

Debian:

Bearbeiten Sie /etc/apt/sources.list Datei:

$ sudo nano /etc/apt/sources.list

Folgende Zeile hinzufügen:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Führen Sie dann die folgenden Befehle aus:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Fedora:

$ sudo dnf install ansible

CentOS, RHEL, AlmaLinux, Rocky Linux:

$ sudo dnf install epel-release
$ sudo dnf install ansible

Ubuntu und seine Derivate:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

Ihre Distribution wird möglicherweise mit einer veralteten Version von Ansible ausgeliefert. Wenn Sie eine aktualisierte Ansible-Version auf Ihrem System installieren möchten, können Sie Pip verwenden , der Python-Paketmanager.

3.1.2. Installieren Sie Ansible mit Pip

Überprüfen Sie zunächst, ob PIP installiert ist, indem Sie die folgenden Befehle ausführen:

$ which pip pip3
/usr/bin/pip
/usr/bin/pip3
$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Wenn PIP nicht installiert ist, führen Sie die folgenden Befehle aus, um es zu installieren.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user

Führen Sie nach der Installation von PIP den folgenden Befehl aus, um Ansible zu installieren:

$ sudo python3 -m pip install ansible

Dadurch wird die neueste Ansible-Version installiert.

Sie können auch eine bestimmte Ansible-Version installieren, zum Beispiel 2.9, wie unten:

$ sudo python3 -m pip install 'ansible==2.9'

Führen Sie nach der Installation von Ansible den folgenden Befehl aus, um die Ansible-Version zu überprüfen:

$ ansible --version

Dieser Befehl gibt Auskunft darüber, wo sich Ihre Hostdatei, Konfigurationsdatei und Ansible-Binärdatei befindet und welche Version von Ansible installiert ist.

Beispielausgabe:

ansible 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/karthick/.ansible/plugins/modules',
  '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

3.2. Konfigurieren Sie Ansible

Wie bereits erwähnt, kommuniziert Ansible mit verwalteten Knoten über ssh Authentifizierungsprotokoll.

Wir erstellen ein SSH-Schlüsselpaar und verteilen es auf alle verwalteten Knoten. Wann immer also ein Ansible-Befehl gesendet wird, wird er sich mit diesen Schlüsseln bei verwalteten Knoten authentifizieren.

3.2.1. SSH-Schlüsselpaar für verwaltete Knoten generieren

Erstellen Sie einen neuen Benutzer namens ansible sowohl in Controller- als auch in verwalteten Knoten.

$ sudo useradd ansible               ##create user 
$ sudo passwd ansible                ##set password for ansible user.

Melden Sie sich als ansibler Benutzer an/wechseln Sie ihn und erstellen Sie ein SSH-Schlüsselpaar mit den folgenden Befehlen:

$ su - ansible
$ ssh-keygen -t rsa

Dieser Befehl generiert ein Paar SSH-Schlüssel.

Verteilen Sie nun den öffentlichen Schlüssel an alle verwalteten Knoten.

Sie können die ssh-copy-id Befehl zum Kopieren des öffentlichen Schlüssels auf den Zielknoten.

Um den öffentlichen Schlüssel mit dem Befehl ssh-copy-id auf den Zielknoten zu kopieren, führen Sie Folgendes aus:

$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]

Wenn Sie mehr Knoten haben, verwenden Sie for loop um den ssh-Schlüssel auf alle Zielknoten zu kopieren.

Für die Zwecke dieses Leitfadens habe ich zwei verwaltete Knoten und nenne sie centos1 (centos8) und ubuntu1 (ubuntu 20.04). Um den Schlüssel auf beide Knoten zu kopieren, habe ich den folgenden Code verwendet:

$ for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa [email protected]${node} done

Melden Sie sich jetzt bei Ihrem verwalteten Knoten an, um zu prüfen, ob die schlüsselbasierte Authentifizierung einwandfrei funktioniert.

$ ssh [email protected]

Jetzt ist die ansible Einrichtung abgeschlossen. Als nächster Schritt sollte eine Bestandsdatei erstellt und einige Ansible-Befehle für verwaltete Hosts ausgeführt werden.

3.2.2. Ansible-Konfiguration testen

Ansible enthält zwei wichtige Dateien, die zum Senden von Adhoc erforderlich sind oder Playbook Befehle.

  1. Ansible.cfg - ansible Konfigurationsdatei.
  2. Hosts - Inventardatei, in der Hostdetails bereitgestellt werden.

Diskutieren Sie ausführlicher über Konfigurations- und Inventardateien in einem separaten Artikel. Um den ersten ansible-Befehl auszuführen, müssen Sie im Moment nur die Hostnamen Ihrer verwalteten Knoten in die Bestandsdatei einfügen.

Die Ansible-Konfigurationsdatei befindet sich in /etc/ansible/ansible.cfg Datei. Sie können dieses Detail auch abrufen, indem Sie die ansible version ausführen Befehl:

$ ansible --version
ansible 2.9.0
 config file = /etc/ansible/ansible.cfg
 configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
 executable location = /usr/local/bin/ansible
 python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

Öffnen Sie ansible.cfg Datei und suchen Sie nach dem Parameterbestand. Auf diesen Parameter wird während der Laufzeit von Ansible verwiesen, um den Pfad der Inventardatei abzurufen.

$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory        = /etc/ansible/hosts

Inventory zeigt standardmäßig auf /etc/ansible/hosts Datei. Öffnen Sie hosts Datei und fügen Sie den Hostnamen/die IP-Adresse des verwalteten Knotens hinzu.

Ich habe eine DNS-zu-IP-Zuordnung, also habe ich den DNS-Namen in der Datei des Hosts angegeben. Sie können auch die IP-Adresse angeben.

Alles ist eingerichtet, um unsere Aufgabe in Ansible auszuführen!

Ähnlich wie "Hello world" Programm in der Programmierung hat Ansible auch die Tradition, einen ping Modul als erster Befehl, um die Konnektivität zwischen dem Controller und den verwalteten Knoten zu prüfen.

Der ping -Modul versucht, verwaltete Knoten zu erreichen und zu prüfen, ob ein Python-Interpreter zur Verwendung verfügbar ist, und antwortet als pong .

$ ansible all -m ping

Sie können die hosts-Datei auch explizit mit -i angeben Flagge wie unten:

$ ansible all -m ping -i flag <path-to-host-file>

Jetzt können Sie mit dem Modul spielen, mit dem Sie spielen möchten.

Wenn Sie weitere Controller-Knoten hinzufügen möchten, müssen Sie lediglich den SSH-Schlüssel vom Controller-Knoten auf den neuen Knoten kopieren und den IP/DNS-Eintrag in der Datei des Hosts hinzufügen. Und dann kann Ansible damit beginnen, den neu hinzugefügten verwalteten Knoten aufzunehmen. So einfach ist das!

Schlussfolgerung

In diesem Handbuch haben wir besprochen, wie Ansible unter Linux installiert und konfiguriert wird. Wir haben Ihnen auch gezeigt, wie Sie ein Ansible-Homelab mit drei Knoten manuell einrichten.

Es gibt andere automatisierte Lösungen wie das Einrichten von Ansible Lab mit Vagrant oder Docker . Wir werden diese Themen in unseren kommenden Artikeln behandeln.

Ansible ist ein riesiges Thema! Wir haben nur die Ansible-Grundlagen behandelt. Sehen Sie sich die offizielle Ansible-Dokumentation an um mehr über die Verwendung von Ansible zu erfahren.

Weiterlesen:

  • Automatisierte Ansible Lab-Einrichtung mit Vagrant und Virtualbox unter Linux
  • Ansible-Inventar- und Konfigurationsdateien

Linux
  1. So installieren und testen Sie Ansible unter Linux

  2. So installieren und konfigurieren Sie Ansible auf Fedora 35

  3. So installieren und konfigurieren Sie Ansible unter Rocky Linux/CentOS 8

  4. So installieren und konfigurieren Sie EMC PowerPath unter Linux

  5. 12 Schritte zum Installieren und Konfigurieren von Alfresco unter UNIX / Linux

So installieren und konfigurieren Sie Django auf einem Linux-System

So installieren und konfigurieren Sie PrestaShop auf einem Linux-System

So installieren und konfigurieren Sie Elasticsearch auf einem Linux-System

So installieren und konfigurieren Sie Slack auf Linux-Distributionen

So installieren und konfigurieren Sie Perf in Linux-Distributionen

So installieren und konfigurieren Sie Terraform in Linux-Distributionen