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.
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