ansible blockinfile devre dışı bırakma işareti


11

Ansible'da yeniyim, ancak blockinfile işlevini başarıyla kullanabildim . Ancak, işaretleyicilerin takılmasını nasıl önleyeceğimi bilemiyorum. Belgeleri okudum ama tarif ettiği anlaşılmadı.

Blockinfile'ın yazdığı her dosyada gösterilen budur.

# BEGIN ANSIBLE MANAGED BLOCK
# END ANSIBLE MANAGED BLOCK

Yanıtlar:


14

Github'daki orijinal blockinfilemodüle bir göz attım - Ansible 2'den önce Ansible ile birlikte değildi. Görünen o ki, işaretçiler aslında bloğu tanımlamak için kullanılır :

Bu amaçlanan davranış gibi görünüyor. Blok işaretleyicileri ile çevrelenen tüm satırları belirtilen içerikle değiştirir.

Bu, işaretleri kaldırırsanız, blockinfilebloğu tanımlayamayacağı anlamına gelir ; bu, modülün, oynatma kitabını her çalıştırdığınızda bloğu dosyaya eklemesine neden olur.

Bu nedenle, yazılı bloktan önceki ve sonraki işaretçiler modülün bir gereksinimidir ve çıkarılamaz.

Bu bir daha asla yürütülmeyecek tek seferlik bir oynatma kitabıysa, lineinfilemodülü state: absentdaha sonra seçenekle çalıştırabilirsiniz .


Eski cevap:

Dokümanlara göre blockinfilemodülün bir markerseçeneği var.

Boş bir dizeye veya False olarak ayarlamaya çalıştınız mı?

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

veya

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

1
Yukarıdaki eksik ifade için özür dilerim, birisi kapıyı çaldı ve ben kaçmak zorunda kaldım. Dün bu fikirleri denedim. işaretleyici: "" - Dosyanın üstüne ve altına bir satır ekler. False: - Dosyanın altına ve üstüne false kelimesini ekler. Başka fikir var mı?
Nik

2
Cevabımı güncelledim. İşaretleyiciler aslında modülün kendisi için gereklidir ve yapabilseniz bile, muhtemelen bunları kaldırmak istemezsiniz. Ayrıntılar için güncellenmiş cevaba bakınız.
udondan

0

böyle bir şey yaptım ...

- 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: '^$'
  • "" işareti dosyaya boş satır ekleyecek
  • lineinfile onları (diğer tüm boş çizgilerle birlikte) kaldıracak bu yüzden dikkat !!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.