ansible blockinfile 禁用标记

ansible blockinfile 禁用标记

我是 ansible 的新手,但我能够成功使用阻止文件函数。但是我不知道如何防止插入标记。我读了文档,但似乎没有描述它。

这就是 blockinfile 写入的每个文件中显示的内容。

# BEGIN ANSIBLE MANAGED BLOCK
# END ANSIBLE MANAGED BLOCK

答案1

这些标记实际上是用来识别区块的。

这意味着如果您删除标记,blockinfile将不再能够识别该块,这将导致模块每次运行任务时将该块添加到文件中。

所以,书面块前后的标记是模块的要求,不能被删除。

如果这是一次性的剧本,永远不会再执行,您可以lineinfile使用随后的选项运行该模块state: absent

答案2

我做了类似的事情......

- name: Insert someline in somefile.sh
    blockinfile:
      path: /usr/share/somefile.sh
      block: -sometext
      insertafter: '-XX:originaltext'
      marker: ""
      backup: yes


 - name: Remove blank lines blockinfile put in
    lineinfile :
     path: /usr/share/somefile.sh
     state: absent
     regexp: '^$'
  • 标记“”将在文件中插入空白行
  • lineinfile 将删除它们(以及所有其他空行),所以要小心!!

答案3

公平地说,我最终使用以下内容来创建多条线。

https://stackoverflow.com/questions/24334115/ansible-lineinfile-for-several-lines

谢谢@udondan

相关内容