2016-09-27 62 views
1

我有一個包含以下文本塊的文件。我在文本塊之前和之後有文本爲什麼state = absent的blockinfile不適用於這些行?

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 

我想使用此代碼刪除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 

我希望得到的結果是:

other_user: 
    hash: JKJ;LKJA;LDKJF;LKJA;LKJIUR;JFKLJDQPIRQKJ;LKFJPOQJ 
    #password is: some_pw0 
other_user1: 
    hash: JJKLJDRKJOPIQMVOIUROIJFAUROJJFIUQWKERJJFKQURJAKDJ 
    #password is: some_pw1 

我缺少什麼?

回答

2

有一件關於blockinfile。密切關注在description

該模塊將插入/更新/刪除的自定義標記線包圍多行文本塊。

爲標誌的默認值:# {mark} ANSIBLE MANAGED BLOCK其中標誌是BEGIN/END
因此,如果文件中沒有標記,模塊會將其視爲未找到塊。

+1

謝謝!我錯過了那部分描述。我現在用lineinfile,而且它工作。 –

相關問題