如何使用ansible更新httpd conf文件

如何使用ansible更新httpd conf文件

我想使用 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'

请告诉我我们是否可以使用更好的正则表达式。

相关内容