6 Installation

Offizielle Dokumentation

6.1 Voraussetzungen

Bevor Ansible installiert werden kann, müssen einige grundlegende Voraussetzungen erfüllt sein:

6.1.1 Python-Version prüfen:

python3 --version
python3 -m pip --version

Wenn Python 3 nicht installiert ist, kann es über den jeweiligen Paketmanager nachinstalliert werden:

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install python3 python3-pip python3-venv

CentOS/RHEL/Fedora:

sudo dnf install python3 python3-pip

Pip sollte anschließend aktualisiert werden:

python3 -m pip install --upgrade pip

6.2 Installationsmethoden

6.2.1 Empfohlene Installation: Pip (Python-Paketmanager)

Die empfohlene Methode zur Installation von Ansible ist die Verwendung von Pip, da dies die aktuellste Version garantiert und plattformunabhängig funktioniert.

6.2.1.1 Ansible-Core vs. Ansible

Es gibt zwei Hauptpakete zur Auswahl:

Für die meisten Anwendungsfälle wird das vollständige ansible-Paket empfohlen:

pip3 install ansible

Für minimale Installationen oder spezielle Anforderungen:

pip3 install ansible-core

6.2.1.2 Installation in virtueller Umgebung (Empfohlen)

Um Konflikte mit anderen Python-Paketen zu vermeiden, sollte Ansible in einer virtuellen Umgebung installiert werden:

python3 -m venv ansible-venv
source ansible-venv/bin/activate
pip install ansible

Die virtuelle Umgebung kann bei zukünftigen Sitzungen mit source ansible-venv/bin/activate aktiviert werden.

6.2.2 Alternative: Installation über Paketmanager

Achtung: Paketmanager-Installationen können veraltete Versionen enthalten.

Ubuntu/Debian (mit offiziellem PPA):

sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

CentOS/RHEL/Fedora:

sudo dnf install epel-release
sudo dnf install ansible

macOS (mit Homebrew):

brew install ansible

6.2.3 Installation aus dem Quellcode (Nur für Entwickler)

⚠️ Nicht empfohlen für Produktionsumgebungen

Für Entwickler, die an Ansible selbst arbeiten möchten:

git clone https://github.com/ansible/ansible.git
cd ansible
python3 -m pip install -e .

6.3 Einrichtung der Ansible-Umgebung

6.3.1 SSH-Konfiguration

Da Ansible standardmäßig über SSH mit den Zielknoten kommuniziert, müssen auf dem Steuerknoten SSH-Schlüssel vorhanden sein.

SSH-Schlüssel erstellen:

ssh-keygen -t ed25519 -b 4096 -f ~/.ssh/ansible_key

SSH-Agent konfigurieren:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/ansible_key

Optional: Dedizierter Ansible-Benutzer Für bessere Sicherheit kann ein separater Benutzer für Ansible-Operationen erstellt werden:

sudo useradd -m -s /bin/bash ansible
sudo usermod -aG sudo ansible

6.3.2 Ansible-Konfiguration

Erstellen Sie eine ansible.cfg-Datei in Ihrem Projektverzeichnis:

[defaults]
inventory = ./inventory.ini
host_key_checking = False
deprecation_warnings = False
interpreter_python = auto_silent

[inventory]
enable_plugins = host_list, script, auto, yaml, ini, toml

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s

6.3.3 Inventar-Konfiguration

Anstatt der starren /etc/ansible/hosts-Datei sollte ein flexibles Inventar verwendet werden.

Beispiel inventory.ini:

[webservers]
web1.example.com
web2.example.com

[databases]
db1.example.com ansible_user=dbadmin

[all:vars]
ansible_ssh_private_key_file=~/.ssh/ansible_key

YAML-Format (inventory.yml):

all:
  children:
    webservers:
      hosts:
        web1.example.com:
        web2.example.com:
    databases:
      hosts:
        db1.example.com:
          ansible_user: dbadmin
  vars:
    ansible_ssh_private_key_file: ~/.ssh/ansible_key

6.4 Installation überprüfen

Nach der Installation kann Ansible mit folgenden Befehlen getestet werden:

# Version anzeigen
ansible --version

# Konfiguration anzeigen
ansible-config view

# Inventar testen
ansible all -m ping

6.5 Diagramm: Moderner Ansible-Installationsprozess

Hier ist eine Darstellung des empfohlenen Installationsprozesses für Ansible:

Dieses Diagramm zeigt die grundlegenden Schritte für eine moderne Ansible-Installation, beginnend mit der Python-Umgebung, über die Pip-Installation in einer virtuellen Umgebung, bis hin zur flexiblen Konfiguration mit ansible.cfg und strukturierten Inventardateien.

6.6 Troubleshooting

Häufige Probleme und Lösungen: