小编tom*_*_ny的帖子

在同一个文件上执行多个 ansible.builtin.blockinfile 任务?

我发现,如果单个文件有多个 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

4
推荐指数
1
解决办法
2596
查看次数

标签 统计

ansible ×1