如何使用Ansible替换文件中的特定行?

时间:2019-07-17 14:16:53

标签: text replace ansible

我想使用ansible转到nignx配置文件,并将ssl_certificate行替换为我自己的行。 这是nginx.conf

中的行
ssl_certificate "/etc/pki/nginx/server.crt";

我只想知道什么模块,以及如何使用它将证书的路径替换为我想要的模块。

2 个答案:

答案 0 :(得分:0)

尝试以下

- name: modify
  replace:
    path=/path/to/nginx.conf
    regexp="^(ssl_certificate\s+)[^\n]+$"
    replace="ssl_certificate \"/required/file/path/here\";"

答案 1 :(得分:0)

要使用ansible替换文件中的特定行,您可以使用lineinfile_module

- name: Replace a localhost entry with our own
  lineinfile:
    path: nginx.conf
    regexp: '^    ssl_certificate "/etc/pki/nginx/server.crt";'
    line: '    ssl_certificate "/your/path/server.crt";'

在我的示例中,我得到了这个差异

<     ssl_certificate "/etc/pki/nginx/server.crt";
---
>     ssl_certificate "/your/path/server.crt";

但是请考虑使用ansible role for NGINX