用主机名

时间:2017-01-21 23:13:20

标签: ansible

我一直在寻找一种方法,用ansible_hostname的内容替换文件中的字符串。假设我在配置文件中有类似的东西:

kern.*       /syslog/SYSLOG_SERVER/kern.log 
auth.*       /syslog/SYSLOG_SERVER/auth.log

Ansible中是否有一种简单的方法可以将所有出现的SYSLOG_SERVER替换为配置文件复制到的服务器的主机名?如果有人有一个例子或链接描述如何做到这一点,如果你分享它,我将非常感激。

2 个答案:

答案 0 :(得分:2)

您可以使用replace module

- replace:
    dest: /path/to/configuration/file
    regexp: SYSLOG_SERVER
    replace: '{{ ansible_hostname }}'
    backup: yes

backup参数是可选的,但由于您将首先进行实验,因此保留它会更安全。一旦建立了正确的程序,就可以将其遗漏。

答案 1 :(得分:0)

如果目标服务器上的文件已经输出,您可以使用lineinfile模块确保内容符合您的要求。

如果文件作为playbook运行的一部分进行分发/更新,则可以使用模板模块在将destionation节点的主机名复制到destionation时动态注入它。