Rzuciłem okiem na oryginalny blockinfile
moduł na githubie - przed Ansible 2 nie był dołączony do Ansible. Okazuje się, że markery są faktycznie używane do identyfikacji bloku :
To wydaje się zamierzone zachowanie. Zastępuje wszystkie wiersze otoczone znacznikami bloków określoną treścią.
Oznacza to, że jeśli usuniesz znaczniki, blockinfile
nie będzie już w stanie zidentyfikować bloku, co spowoduje, że moduł będzie dodawał blok do pliku przy każdym uruchomieniu playbooka.
Tak więc znaczniki przed i po zapisanym bloku są wymaganiem modułu i nie można ich usunąć.
Jeśli jest to jednorazowy podręcznik, który nigdy więcej nie zostanie wykonany, możesz później uruchomić lineinfile
moduł z state: absent
opcją.
Stara odpowiedź:
Według dokumentacji blockinfile
moduł ma marker
opcję.
Czy próbowałeś ustawić go na pusty ciąg lub False?
blockinfile:
dest: /var/www/html/index.html
marker: ""
lub
blockinfile:
dest: /var/www/html/index.html
marker: False
zrobiłem coś takiego ...
źródło
W porządku, skończyło się na tym, aby utworzyć wiele linii.
/programming/24334115/ansible-lineinfile-for-several-lines
Dzięki @udondan
źródło