我想使用 Ansible 更新 http 日志格式。
当前配置如下:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
需要更新为以下内容:
LogFormat "%h %l %u %t %D %X \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combined
尝试使用该replace
模块。但它没有编辑文件...
---
- name: test
hosts: testServer
gather_facts: no
tasks:
- name: configure httpd
replace:
path: /tmp/httpd.conf
regexp: 'LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined'
replace: 'LogFormat "%h %l %u %t %D %X \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combined'
注:我已复制httpd.conf
到/tmp
以进行测试。
答案1
最终得到下面的剧本
---
- name: test
hosts: testServer
gather_facts: no
tasks:
- name: configure httpd
replace:
path: /tmp/httpd.conf
regexp: '^LogFormat.*combined$'
replace: 'LogFormat "%h %l %u %t %D %X \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combined'
请告诉我我们是否可以使用更好的正则表达式。