我在/etc/foo.txt有一個簡單的文件。該文件包含以下內容:Ansible lineinfile重複行
#bar
我有以下ansible劇本任務以取消上述線路:
- name: test lineinfile
lineinfile: backup=yes state=present dest=/etc/foo.txt
regexp='^#bar'
line='bar'
當我第一次運行ansible-劇本,行被取消註釋並在/ etc/foo.txt的現在包含以下內容:
bar
但是,如果我再次運行ansible-劇本,我得到如下:
bar
bar
如果我再次運行它,那麼/etc/foo.txt文件看起來是這樣的:
bar
bar
bar
如何避免線路重複這個?我只想取消註釋'#bar'並完成它。
但是總是改變文件。我的理解是,只有匹配正則表達式時纔會插入(文件修改)行。 – jdevora
只要文件每次出來都一樣,任務就是冪等的。這就是關鍵所在。 – joemaller
我發現了一個難題,即如果將'insertafter'與此結合使用,那麼最終會再次出現重複行。 'insertafter'打破這個公式。 –