我找到了这个blockinfile issue,用户建议在" |"之后添加一个数字。在"块中:|"行,但给出语法错误。基本上,我想使用blockinfile模块在文件中添加一个行块,但我希望块在文件中缩进6个空格。这是任务
- 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 :(得分:23)
您可以使用名为“Block Indentation Indicator”的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参考文献:
答案 1 :(得分:2)
|
后面的数字描述了该块的预期行数。
例如:
block: |2
insert some stuff
^^ to spaces here.
block: |4
insert some stuff
^^^^ 4 spaces here.
如果您想在目标文件中使用您的行,您可以使用以下解决方法:
block: |
# this is a comment
insert some stuff
在本例中,行 # this is a comment
是非预期的,行 insert some stuff
有 2 个前导空格。
我宁愿对已接受的解决方案发表评论,但我没有足够的赞成票...
答案 2 :(得分:0)
答案 3 :(得分:0)
我试图从另一个答案中使用称为“块缩进指示器”的YAML功能,但是它对我不起作用(可使用2.9.10.post0)。丑陋,但可行的解决方案是:
- name: docker-compose.yml - service has links to another container
lineinfile:
path: "/path/to/docker-compose.yml"
insertafter: "service:"
line: " links:\n - apache2:proxy.example.com\n - apache2:proxy2.example.com"
基本上,您需要在元素之前放置尽可能多的空格。并将\ n用作换行符。