rispondi marcatore di disabilitazione blocco dati


11

Sono nuovo a rispondere, tuttavia sono stato in grado di utilizzare correttamente la funzione blockinfile . Tuttavia, non riesco a capire come impedire l'inserimento di marker. Ho letto la documentazione ma non sembra descriverla.

Questo è ciò che appare in ogni file in cui scrive blockinfile.

# BEGIN ANSIBLE MANAGED BLOCK
# END ANSIBLE MANAGED BLOCK

Risposte:


14

Ho dato un'occhiata al blockinfilemodulo originale su github - prima di Ansible 2 non era in bundle con Ansible. Si scopre che i marker sono effettivamente utilizzati per identificare il blocco :

Sembra un comportamento previsto. Sostituisce tutte le linee circondate dai marcatori di blocco con il contenuto specificato.

Ciò significa che se si rimuovono i marker, blockinfilenon sarà più possibile identificare il blocco, il che comporterà il modulo per aggiungere il blocco al file ogni volta che si esegue il playbook.

Quindi i marker prima e dopo il blocco scritto sono un requisito del modulo e non possono essere rimossi.

Se si tratta di un playbook monouso che non verrà mai più eseguito, è possibile eseguire il lineinfilemodulo con l' state: absentopzione in seguito.


Vecchia risposta:

Secondo i documenti il blockinfilemodulo ha markerun'opzione.

Hai provato a impostarlo su una stringa vuota o False?

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

o

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

1
Mi dispiace per la dichiarazione incompleta sopra, qualcuno ha bussato alla porta e ho dovuto correre. Ho provato queste idee ieri. marker: "" - Aggiunge una riga all'inizio e alla fine del file. Falso: - Aggiunge semplicemente la parola falso nella parte inferiore e superiore del file. Altre idee?
Nik,

2
Ho aggiornato la mia risposta. I marker in realtà sono richiesti dal modulo stesso e anche se tu potessi, probabilmente non vuoi rimuoverli. Vedi la risposta aggiornata per i dettagli.
udondan,

0

ho fatto qualcosa del genere ...

- 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: '^$'
  • marker "" inserirà righe vuote nel file
  • lineinfile li rimuoverà (insieme a tutte le altre righe vuote) quindi attenzione !!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.