[defaults]
host_key_checking = False
interpreter_python = auto_legacy_silent
inventory = hosts
11 November 2022
Kleine Einführung in ansible mit Minimalbeispiel
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
ansible auf Ansible-Host installieren (Bsp: apt install ansible)
ssh-key auf Zielsystemen verteilen (vgl. https://plocki.org/blog/linux/ssh-public-key.html)
Verzeichnis anlegen (mkdir ansible-tut; cd ansible-tut)
Important
|
Reihenfolge beachten (https://docs.ansible.com/ansible/latest/reference_appendices/config.html) |
[defaults]
host_key_checking = False
interpreter_python = auto_legacy_silent
inventory = 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
ansible -m ping <hosts>
ansible -m shell all -a "uname -a"
Important
|
Auspassen bei yaml Dateien! (Leerzeichen - keine Tabs!) |
Unterteilung:
playbooks
roles
tasks
module
Beispiel: roles/dns-update
Beispiel: role/sys-update
ansible-playbook dns-update.yml
ansible-playbook sys-updates.yml --extra-vars "target=debian"