2016-09-27 10 views
6

Znalazłem to blockinfile issue, gdzie użytkownik zasugerował dodanie numeru po "|" w "bloku: |" linii, ale podaje błąd składni. Zasadniczo, chcę użyć bloku blockinfile, aby dodać blok wierszy w pliku, ale chcę, aby blok był wcięty 6 spacji w pliku. Oto zadanieJak dodać spacje na początku bloku w bloku blockible?

- name: Added a block of lines in the file 
    blockinfile: 
    dest: /path/some_file.yml 
    insertafter: 'authc:' 
    block: | 
    line0 
     line1 
     line2 
     line3 
     line4 

Spodziewam

authc: 
    line0 
     line1 
     line2 
     line3 
     line4 

ale dostać

authc: 
line0 
    line1 
    line2 
    line3 
    line4 

Dodawanie spacji na początku linii nie zrobić. Jak mogę to zrobić?

Odpowiedz

0

Jak mogę to zrobić?

Patrz this answer

Ogólnie jest to bardziej kanoniczny użycie plików szablonów.

+0

Dzięki @techraf. Kludgy, ale fajnie. –

+0

@ChrisF Czy możesz nie akceptować tej odpowiedzi? Było to obejście raz na jakiś czas, ale obecnie nie ma żadnej wartości. Proszę przyjąć drugą odpowiedź. – techraf

12

Można użyć funkcji YAML nazwie "Block Wskaźnik wcięcia":

- name: Added a block of lines in the file 
    blockinfile: 
    dest: /path/some_file.yml 
    insertafter: 'authc:' 
    block: |2 
     line0 
     line1 
     line2 
     line3 
      line4 

To wszystko jest o 2 Gdy przycisk |

Referencje:

+0

[** Obecnie zepsute **] (https://groups.google.com/forum/#!topic/ansible-project/mmXvhTh6Omo) od wersji Ansible "2.1" i co najmniej do "2.3.1.0" –

+1

A kilka rzeczy, po pierwsze to powinna być poprawna odpowiedź! Po drugie, jest to [** nie zepsute **] (https://github.com/ansible/ansible/issues/23777), ale raczej interpretacja bloku zaczyna się od "Wskaźnika wcięcia bloku", co poprawnie pokazuje odpowiedź. Zauważ, że pierwsza linia kodu w odpowiedzi ma cztery spacje pod linią 'block: | 2'. Oznacza to, że następujący blok do wstawienia rozpoczyna się po 2 odstępach (w każdej linii), co spowoduje, że plik będzie miał 2 spacje przed pierwszym wierszem po wstawieniu. – darkwing