marker penonaktifan blockinfile yang dimungkinkan


11

Saya baru untuk ansible, namun saya berhasil menggunakan fungsi blockinfile . Namun saya tidak tahu bagaimana mencegah spidol dimasukkan. Saya membaca dokumentasi tetapi sepertinya tidak menggambarkannya.

Inilah yang muncul di setiap file yang ditulis oleh blockinfile.

# BEGIN ANSIBLE MANAGED BLOCK
# END ANSIBLE MANAGED BLOCK

Jawaban:


14

Saya telah melihat blockinfilemodul asli di github - sebelum Ansible 2 tidak dibundel dengan Ansible. Ternyata, marka sebenarnya digunakan untuk mengidentifikasi blok :

Itu sepertinya perilaku yang dituju. Ini menggantikan semua baris yang dikelilingi oleh penanda blok dengan konten yang ditentukan.

Itu berarti jika Anda menghapus penanda, blockinfiletidak akan lagi dapat mengidentifikasi blok, yang akan menghasilkan modul untuk menambahkan blok ke file setiap kali Anda menjalankan playbook.

Jadi penanda sebelum dan sesudah blok tertulis adalah persyaratan modul dan tidak dapat dihapus.

Jika ini adalah buku pedoman satu kali yang tidak akan pernah dieksekusi lagi Anda bisa menjalankan lineinfilemodul dengan state: absentopsi setelahnya.


Jawaban lama:

Menurut dokumen, blockinfilemodul memiliki markeropsi.

Apakah Anda mencoba mengaturnya ke string kosong atau Salah?

blockinfile:
    dest: /var/www/html/index.html
    marker: ""

atau

blockinfile:
    dest: /var/www/html/index.html
    marker: False

1
Maaf tentang pernyataan tidak lengkap di atas, seseorang mengetuk pintu dan aku harus lari. Saya mencoba ide-ide ini kemarin. marker: "" - Menambahkan baris ke atas dan bawah file. Salah: - Hanya menambahkan kata false di bagian bawah dan atas file. Ada ide lain?
Nik

2
Saya memperbarui jawaban saya. Marker sebenarnya diperlukan oleh modul gthe itu sendiri dan bahkan jika Anda bisa, Anda mungkin tidak ingin menghapusnya. Lihat jawaban yang diperbarui untuk detailnya.
udondan

0

saya melakukan sesuatu seperti ini ...

- name: Insert someline in somefile.sh
    blockinfile:
      path: /usr/share/somefile.sh
      block: -sometext
      insertafter: '-XX:originaltext'
      marker: ""
      backup: yes


 - name: Remove blank lines blockinfile put in
    lineinfile :
     path: /usr/share/somefile.sh
     state: absent
     regexp: '^$'
  • penanda "" akan menyisipkan baris kosong ke file
  • lineinfile akan menghapusnya (bersama semua baris kosong lainnya) jadi waspadalah !!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.