Ich hatte einen Blick auf das Original - blockinfile
Modul auf Github - vor ansible 2 nicht mit ansible gebündelt wurde. Es stellt sich heraus, dass die Markierungen tatsächlich verwendet werden, um den Block zu identifizieren :
Das scheint beabsichtigtes Verhalten. Es ersetzt alle von den Blockmarkierungen umgebenen Zeilen durch den angegebenen Inhalt.
Das heißt, wenn Sie die Markierungen entfernen blockinfile
, kann der Block nicht mehr identifiziert werden, was dazu führt, dass das Modul den Block jedes Mal, wenn Sie das Playbook ausführen, zur Datei hinzufügt.
Die Markierungen vor und nach dem geschriebenen Block sind daher eine Anforderung des Moduls und können nicht entfernt werden.
Wenn dies ein einmaliges Playbook ist, das nie wieder ausgeführt wird, können Sie das lineinfile
Modul anschließend mit der state: absent
Option ausführen .
Alte Antwort:
Laut Dokumentation hat das blockinfile
Modul eine marker
Option.
Haben Sie versucht, eine leere Zeichenfolge oder False festzulegen?
blockinfile:
dest: /var/www/html/index.html
marker: ""
oder
blockinfile:
dest: /var/www/html/index.html
marker: False
Ich habe so etwas gemacht ...
quelle
Fairerweise habe ich Folgendes verwendet, um mehrere Zeilen zu erstellen.
/programming/24334115/ansible-lineinfile-for-several-lines
Danke @udondan
quelle