为什么带有 state=absent 的 blockinfile 不适用于这些行?

Chr*_*s F 5 ansible ansible-2.x

我有一个包含以下文本块的文件。我在文本块之前和之后都有文本

other_user:
  hash: JKJ;LKJA;LDKJF;LKJA;LKJIUR;JFKLJDQPIRQKJ;LKFJPOQJ 
  #password is: some_pw0
logstash:
  hash: $fj;kdjjfajf;ajKFJ;dfj;dkfja;dfjFJ:LFJj;kj;lfkajs 
  #password is: some_pw
other_user1:
  hash: JJKLJDRKJOPIQMVOIUROIJFAUROJJFIUQWKERJJFKQURJAKDJ 
  #password is: some_pw1
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此代码删除 logstash 用户的块,但它没有删除它。

- name: Delete existing logstash user
  blockinfile:
    dest: /path_to_file/foo.yml
    state: absent
    block: |
      logstash:
        hash: $fj;kdjjfajf;ajKFJ;dfj;dkfja;dfjFJ:LFJj;kj;lfkajs
        #password is: some_pw
Run Code Online (Sandbox Code Playgroud)

我希望结果是:

other_user:
  hash: JKJ;LKJA;LDKJF;LKJA;LKJIUR;JFKLJDQPIRQKJ;LKFJPOQJ 
  #password is: some_pw0
other_user1:
  hash: JJKLJDRKJOPIQMVOIUROIJFAUROJJFIUQWKERJJFKQURJAKDJ 
  #password is: some_pw1
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Kon*_*rov 6

有件事关于blockinfile. 密切注意描述

该模块将插入/更新/删除由可自定义标记线包围的多行文本块。

标记的默认值:# {mark} ANSIBLE MANAGED BLOCK其中标记是BEGIN/ END
因此,如果文件中没有标记,模块会将其视为未找到块。