Ich habe eine einfache Datei bei/etc/foo.txt. Die Datei enthält folgende Komponenten:Ansible lineinfile duplicates Linie
#bar
ich folgende ansible Textbuch Aufgabe haben, die Zeile oben Kommentar-:
- name: test lineinfile
lineinfile: backup=yes state=present dest=/etc/foo.txt
regexp='^#bar'
line='bar'
Als ich das erste ansible-Playbook laufen, wird die Linie unkommentiert und die/etc/foo.txt enthält nun die folgende:
bar
wenn ich jedoch wieder ansible-Playbook laufen, erhalte ich folgendes:
bar
bar
Wenn ich es noch einmal laufen, dann ist die /etc/foo.txt Datei wird wie folgt aussehen:
bar
bar
bar
Wie diese Vervielfältigungen von Linien zu vermeiden? Ich möchte nur die '#bar' auskommentieren und damit fertig sein.
Aber das ändert immer die Datei. Mein Verständnis war, dass die Zeile nur eingefügt wird (Datei geändert), wenn die Regexp übereinstimmte. – jdevora
Solange die Datei jedes Mal gleich ist, ist die Aufgabe idempotent. Das ist alles was zählt. – joemaller
Ich fand den harten Weg heraus, dass, wenn Sie 'insertafter' in Kombination damit verwenden, Sie wieder mit doppelten Zeilen enden. 'insertafter' bricht diese Formel. –