如何在 Ansible blockinfile 的块开头添加空格?
How to add spaces at beginning of block in Ansible's blockinfile?
我发现这个 blockinfile issue,用户建议在“|”后添加一个数字在 "block: |" 行中,但给出语法错误。基本上,我想使用 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
行首添加空格不起作用。我怎样才能做到这一点?
您可以使用名为 "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
参考文献:
- https://groups.google.com/forum/#!topic/ansible-project/mmXvhTh6Omo
- In YAML, how do I break a string over multiple lines?
- http://www.yaml.org/spec/1.2/spec.html#id2793979
我试图使用另一个答案中称为“块缩进指示器”的 YAML 功能,但它对我不起作用 (ansible 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 换行。
|
之后的数字描述了该块缩进了多少行。
例如:
block: |2
insert some stuff
^^ 2 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 个前导空格。
我发现这个 blockinfile issue,用户建议在“|”后添加一个数字在 "block: |" 行中,但给出语法错误。基本上,我想使用 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
行首添加空格不起作用。我怎样才能做到这一点?
您可以使用名为 "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参考文献:
- https://groups.google.com/forum/#!topic/ansible-project/mmXvhTh6Omo
- In YAML, how do I break a string over multiple lines?
- http://www.yaml.org/spec/1.2/spec.html#id2793979
我试图使用另一个答案中称为“块缩进指示器”的 YAML 功能,但它对我不起作用 (ansible 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 换行。
|
之后的数字描述了该块缩进了多少行。
例如:
block: |2
insert some stuff
^^ 2 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 个前导空格。