(Bezogen auf Rückrufe oder Hooks und wiederverwendbare Aufgabenserien in Ansible-Rollen ):
Gibt es eine bessere Möglichkeit, an eine Liste anzuhängen oder einem Wörterbuch in Ansible einen Schlüssel hinzuzufügen, als (ab) einen jina2-Vorlagenausdruck zu verwenden?
Ich weiß, dass Sie so etwas tun können:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
Aber gibt es wirklich keine Meta-Aufgabe oder einen Helfer dafür?
Es fühlt sich zerbrechlich an, scheint undokumentiert zu sein und basiert auf vielen Annahmen darüber, wie Variablen in Ansible funktionieren.
Mein Anwendungsfall sind mehrere Rollen (Datenbankservererweiterungen), die jeweils eine Konfiguration für eine Basisrolle (den Datenbankserver) benötigen. Es ist nicht so einfach, eine Zeile an die Konfigurationsdatei des Datenbankservers anzuhängen. Jede Änderung gilt für dieselbe Zeile , z. B. die Erweiterungen, bdr
und pg_stat_statements
muss in einer Zielzeile erscheinen:
shared_preload_libaries = 'bdr, pg_stat_statements'
Ist dies die Ansible-Methode, um die Konfigurationsdatei nur mehrere Male (einmal pro Erweiterung) mit einem regulären Ausdruck zu verarbeiten, der den aktuellen Wert extrahiert, analysiert und dann neu schreibt? Wenn ja, wie macht man das über mehrere Läufe hinweg idempotent?
Was ist, wenn die Konfiguration schwerer zu analysieren ist und es nicht so einfach ist, einen anderen durch Kommas getrennten Wert anzufügen? Denken Sie an XML-Konfigurationsdateien.