1.Januar 2025
In diesem Tipp zeige ich euch, wie ihr in euren Konfigurationsdateien eine Kennzeichnung einfügt, um deutlich zu machen, dass diese von Ansible verwaltet werden.
Ansible-Templates und die Variable ansible_managed
Beim Deployment von Konfigurationsdateien mit Ansible wird oft ein template
-Task verwendet. Ansible stellt hierfür die Variable ansible_managed
bereit, die ihr am Anfang eures Templates einfügen könnt:
1# {{ ansible_managed }}
2[section]
3key = value
4...
Nach der Verarbeitung durch Ansible könnte die Datei dann beispielsweise so aussehen:
# ansible_managed
[section]
key = value
...
Das allein ist zwar hilfreich, aber die Standardausgabe von ansible_managed
ist nicht besonders aussagekräftig. Glücklicherweise lässt sich die Variable in der ansible.cfg
anpassen.
Anpassung der ansible_managed
-Variable
In der ansible.cfg
könnt ihr festlegen, wie die ansible_managed
-Zeile aussehen soll:
1[defaults]
2ansible_managed = This file is managed by Ansible, changes will be overwritten.
Nun würde der Header so aussehen:
# This file is managed by Ansible, changes will be overwritten.
[section]
key = value
...
Dynamische Informationen hinzufügen
Noch besser wird es, wenn ihr zusätzliche Variablen in ansible_managed
integriert. Ihr könnt z. B. den Dateinamen, das Änderungsdatum, den Benutzer und den Host in die Markierung aufnehmen:
1[defaults]
2ansible_managed = This file is managed by Ansible: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}
Nach der Template-Verarbeitung könnte die Datei dann so aussehen:
# This file is managed by Ansible: templates/test.file.j2 modified on 2024-08-07 11:54:37 by schmidm on tux02
[section]
key = value
...
Mit dieser Methode könnt ihr jederzeit nachvollziehen, wann und von wem eine Konfigurationsdatei zuletzt geändert wurde – eine nützliche Ergänzung für jedes automatisierte Deployment mit Ansible.