ฉันได้ดูblockinfile
โมดูลดั้งเดิมบน GitHub - ก่อน Ansible 2 มันไม่ได้รวมกับ Ansible ปรากฎว่ามีการใช้เครื่องหมายเพื่อระบุบล็อก :
ดูเหมือนว่าพฤติกรรมที่ตั้งใจไว้ มันจะแทนที่ทุกบรรทัดที่ล้อมรอบด้วยเครื่องหมายบล็อกด้วยเนื้อหาที่ระบุ
ซึ่งหมายความว่าหากคุณลบเครื่องหมายblockinfile
จะไม่สามารถระบุบล็อกได้อีกต่อไปซึ่งจะส่งผลให้โมดูลเพิ่มบล็อกลงในไฟล์ทุกครั้งที่คุณเรียกใช้เพลย์บุค
ดังนั้นเครื่องหมายก่อนและหลังบล็อกที่เขียนเป็นความต้องการของโมดูลและไม่สามารถลบได้
หากนี่เป็น playbook แบบครั้งเดียวที่จะไม่ถูกดำเนินการอีกครั้งคุณสามารถเรียกใช้lineinfile
โมดูลด้วยstate: absent
ตัวเลือกหลังจากนั้น
คำตอบเก่า:
ตามเอกสารที่blockinfile
โมดูลมีmarker
ตัวเลือก
คุณพยายามตั้งค่าเป็นสตริงว่างหรือเท็จ?
blockinfile:
dest: /var/www/html/index.html
marker: ""
หรือ
blockinfile:
dest: /var/www/html/index.html
marker: False