如何确保文件中存在特定行,并且使用ansible的“lineinfile”取消注释
我想要取消注释的行(.htaccess
):
#php_flag display_errors on
我使用了以下内容:
- name: Make sure PHP Errors are turned on
lineinfile: dest={{ www_path }}/.htaccess line="php_flag display_errors on"
答案 0 :(得分:8)
实际上你的例子是这样的:
.htaccess
文件的内容:
#php_flag display_errors on
ansible play:
- name: Make sure PHP Errors are turned on
lineinfile:
dest: "{{ www_path }}/.htaccess"
line: "php_flag display_errors on"
有关此剧的ansible-playbook的结果:
$ cat .htaccess
#php_flag display_errors on
php_flag display_errors on
如果文件以注释行开头,您将看到第二行未注释。要更正此问题,请使用与现有行匹配的正则表达式并替换它:
- lineinfile:
dest: /Users/bwhaley/tmp/file
regexp: '^#php_flag display_errors'
line: 'php_flag display_errors'
backrefs: yes
请注意backrefs: yes
,如果您想要取消注释的行尚未显示和评论,则该播放将完全不做任何更改。