我发现,如果单个文件有多个 ansible.builtin.blockinfile 任务,则最后一个 blockinfile 任务将覆盖单个# BEGIN ANSIBLE MANAGED BLOCK {mark} # END ANSIBLE MANAGED BLOCK. 我期望它像 lineinfile 一样工作,可以在文件的多个区域中执行多次替换。
有没有解决的办法?
初始文件:
ini.foo=bar
ini.bar=foo
Run Code Online (Sandbox Code Playgroud)
任务文件:
- blockinfile:
path: /my/file
block: |
block1
block1
block1
insertbefore: '^ini.foo=bar'
- blockinfile:
path: /my/file
block: |
block2
block2
block2
insertbefore: '^ini.bar=foo'
Run Code Online (Sandbox Code Playgroud)
预期结果:
# BEGIN ANSIBLE MANAGED BLOCK
block1
block1
block1
# END ANSIBLE MANAGED BLOCK
ini.foo=bar
# BEGIN ANSIBLE MANAGED BLOCK
block2
block2
block2
# END ANSIBLE MANAGED BLOCK
ini.bar=foo
Run Code Online (Sandbox Code Playgroud)
实际结果:
# BEGIN ANSIBLE …Run Code Online (Sandbox Code Playgroud) ansible ×1