Ansible Kurs


Inhalt


Willkommen

Einstieg

Übersicht

Das erste Playbook

Struktur & Rollen

Templates

Arbeiten mit Containern

Erweiterte Übung

Conditionals

Ansible-Vault

Dark Mode

Übersicht

Ansible ist ein offenes Automatisierungstool geschrieben in Python 3. Es entstand aus dem Wunsch, den gängigen Lösungen Puppet und Chef, eine kleinere und einfachere Software entgegen zu setzen. Daraus entstand ein Paket, das dem:der Nutzer:in eine API aus Standardwerkzeugen bietet. So wird die übliche Client-Server Architektur mit Agents auf allen Subs durch ssh-Verbindungen ersetzt und für die Konfiguration Yaml und Jinja2 genutzt.

Unter Ubuntu kann Ansible aus den Standardrepositories installiert werden.

sudo apt install ansible

Zur Überprüfung der eigenen Syntax kann zusätzlich ansible-lint installiert werden.

sudo apt install ansible-lint

Für ältere Distributionen stehen auch aktuelle Repositories der Entwickler bereit.

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

Das Paket muss lediglich auf dem main Server, der zum Ausrollen der Pakete genutzt wird, installiert werden. Die Subs müssen per ssh erreichbar sein und einen funktionierenden Python Interpreter vorhalten.

Das erste Playbook

Um mit Ansible eine Konfiguration auszurollen brauchen wir

Dazu können wir nutzen

Inventar:

# hosts[.ini/.toml]
# -----------------
# Definiere Gruppe training
[training]
ansible-t000002 # Hostname
ansible-t000003 # Hostname

Playbook:

# training-user.yaml
# ------------------
# `name` wird ausgegeben, wenn Playbook ausgeführt wird
- name: "Create user 'training'"
  # Welche Gruppe?
  hosts: training 
  # Was wird ausgeführt?
  roles:
    - role: training.training-user