11 November 2022

Kleine Einführung in ansible mit Minimalbeispiel

Was ist ansibel?

  • Automatisierungswerkzeug zur Orchestrierung (vergleichbar mit Saltstack, Puppet, …​)

  • i.d.R. über ssh + python (kein Client/Agent erforderlich)

  • ad-hoc Kommandos, SW-deployment, Konfiguration über vielzahl an Modulen (alternativ: shell Modul), …​

  • Beschreibung über yaml-Dateien (https://de.wikipedia.org/wiki/YAML)

  • ist idempotent (https://de.wikipedia.org/wiki/Idempotenz)

  • Viele Module haben "deklarative Ansätze"

Hervorragende Doku unter https://docs.ansible.com/ansible/latest

Vorbereitung

Ansible Konfiguration (ansible.cfg)

[defaults]
host_key_checking = False
interpreter_python = auto_legacy_silent
inventory = hosts

Host-File (hosts)

[debian]
fs1.int.plocki.org      ansible_user=root
pihole1.int.plocki.org  ansible_user=root
checkmk.int.plocki.org  ansible_user=root

[centos]
test01.int.plocki.org   ansible_user=root

[dns]
pihole1.int.plocki.org

[opnsense]
fw1.int.plocki.org
fw2.int.plocki.org

[linux:children]
debian
centos

[opnsense:vars]
ansible_user=admin
ansible_python_interpreter=/usr/local/bin/python3

ad-hoc

ansible -m ping <hosts>
ansible -m shell all -a "uname -a"

playbooks

Important

Auspassen bei yaml Dateien! (Leerzeichen - keine Tabs!)

Unterteilung:

  • playbooks

  • roles

  • tasks

  • module

Beispiel

  • Beispiel: roles/dns-update

  • Beispiel: role/sys-update

ansible-playbook dns-update.yml
ansible-playbook sys-updates.yml --extra-vars "target=debian"