因此,我要负责更换zabbix服务器。为此,我必须在所有服务器中修改zabbix_agent文件,并且有很多。这是我第一次看到ansible,所以我需要一些帮助。而且我正在使用ansible-playbook。
在zabbix_agentd.conf文件中,有旧的zabbix conf:
HostMetadata=Linux
PidFile=/var/run/zabbix/zabbx_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=zabbix.company.com
ServerActive=zabbix.company.com
HostnameItem=system.hostname
Include=/etc/zabbix_agentd.d/
现在我需要将“服务器”和“ ServerActive”替换为“ zabbix2.company.com”
我已经尝试过使用此页面上的各种代码来满足我的需求,但是到目前为止,它失败了。不知道我在做什么错
答案 0 :(得分:1)
尝试这个
- lineinfile:
path: /etc/zabbix_agentd.conf
regexp: '^\s*{{ key }}\s*=(.*)$'
line: '{{ key }}={{ value }}'
notify: reload zabix
loop:
- {key: 'Server', value: 'zabbix2.company.com'}
- {key: 'ServerActive', value: 'zabbix2.company.com'}
(未经测试)
\s*
中搜索空白regexp
。但是,它将匹配并修复配置中的潜在空间。reload zabix
。参见Handlers: Running Operations On Change。答案 1 :(得分:0)
我已设法使用此代码解决此问题。
---
tasks:
- name: 'replace line'
lineinfile:
dest: /etc/zabbix/zabbix_agentd.conf
regexp: '^(.*)Server=zabbix.company.com(.*)$'
line: 'Server=zabbix2.company.com'
backrefs: yes