2016-09-27 92 views
6

我發現這個blockinfile issue,其中一個用戶建議在「|」之後添加一個數字,在「塊:|」行,但給出了語法錯誤。基本上,我想使用blockinfile模塊在文件中添加一行代碼塊,但我希望該代碼塊在文件中縮進6個空格。這裏的任務如何在Ansible的blockinfile的塊的開頭添加空格?

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

我希望

authc: 
    line0 
     line1 
     line2 
     line3 
     line4 

,但得到的線之初

authc: 
line0 
    line1 
    line2 
    line3 
    line4 

添加空間不會做。我怎樣才能做到這一點?

回答

0

我該如何做到這一點?

參考this answer

一般來說它更規範使用的模板文件。

+0

謝謝@techraf。 Kludgy,雖然,漂亮。 –

+0

@ChrisF你能不能接受這個答案?這是一次一次性的解決方法,但目前沒有任何價值。請接受其他答案。 – techraf

12

您可以使用名爲「塊縮進指示器」一個YAML特點:

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

這是所有關於2後|

參考文獻:

+0

[**當前損壞的**](https://groups.google.com/forum/#!topic/ansible-project/mmXvhTh6Omo)自Ansible版本爲'2.1'並且至少達到'2.3.1.0' –

+1

A夫婦的事情,首先這應該是正確的答案!其次,這是[**沒有破壞**](https://github.com/ansible/ansible/issues/23777),而是對塊的解釋從「Block Indentation Indicator」開始,正如答案正確表明的那樣。請注意,答案中代碼的第一行在'block:| 2'行下面有四個空格。這被解釋爲意味着要插入的以下塊在兩個空格(每行)之後開始,這將導致文件在插入第一行之前有2個空格。 – darkwing

相關問題