新服务器安装和配置zabbix的playbook

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新服务器安装和配置zabbix的playbook相关的知识,希望对你有一定的参考价值。

公司的金山区云服务器是由我负责的,每一次新购买了金山区的服务器都要把这些新服务器添加到zabbix监控里,于是我就编写了一个ansible的playbook,这样以后就可以在执行playbook的时候“带薪拉屎”了。


ansible主机准备:

1)准备一个已经填写好zabbix_server同时hostname为空的zabbix_agentd.conf放在/root/路径下;

2)把新购买的机器ip地址填写到/etc/ansible/hosts里,原有的hosts要另外保存一份;

3)playbook跑完之后,具体的自定义项目比如pid、端口检查等监控项就是自己单独配置了;

4)别忘了去zabbix的web页面确认;


整个playbook如下文:

---

- hosts: all
  tasks:
        - name: 给新购买的机器安装zabbix 2.2版本
          yum: name=zabbix22 state=latest
          yum: name=zabbix22-agent state=latest
          
        - name: 备份原来的zabbix_agentd.conf
          shell: mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf-bak
          
        - name: 将控制端上的zabbix_agent.conf下发到目标机器
          copy: src=/root/zabbix_agentd.conf dest=/etc/zabbix/ owner=root group=root mode=0777
          
        - name: 对应更改Hostname
          shell: sed -i s/Hostname=/Hostname=$(hostname)/ /etc/zabbix/zabbix_agentd.conf
          notify: Start Zabbix-agent Service

  handlers:
        - name: Start Zabbix-agent Service
          service: name=zabbix-agent start=started


执行之后,会有一个提示,如图:

技术分享

ansible提示,最好使用template或者lineinfile模块,而不要用sed命令。


在这个案例里,如果用lineinfile的话,整个yaml就简化很多,如下文:

---

- hosts: all
  tasks:
        - name: 给新购买的机器安装zabbix 2.2版本
          yum: name=zabbix22 state=latest
          yum: name=zabbix22-agent state=latest
          
        - name: 备份原来的conf同时更换新的conf
          lineinfile: dest=/etc/zabbix/zabbix_agentd.conf regexp=^Hostname line=Hostname={{ansible_nodename}} backup=yes
          notify: Start Zabbix-agent Service
          
  handlers:
        - name: Start Zabbix-agent Service
          service: name=zabbix-agent start=started


多说一下lineinfile模块,lineinfile模块具备“文件备份、语句替换、语句删除、新语句插入”功能。其格式是:

lineinfile: dest=目标文件绝对路径  具体内容

其中具体内容可以是以下几项:

1)backup=yes,将原来的dest文件备份,默认是No;

2)regexp= ,接正则表达式,本文用的是“^Hostname”,即匹配以Hostname开头的行;

3)state= ,不单独写出来的话,默认是present,如果是state=absent,就是把regexp= 满足的语句删除;

4)line="要插入的话",如果前面没有regexp匹配出来的语句,那么默认是把“要插入的话”插入到文件最后一行。






本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1856628

以上是关于新服务器安装和配置zabbix的playbook的主要内容,如果未能解决你的问题,请参考以下文章

ansible-playbook基于role的配置一键安装zabbix客户端以及拉取自定义监控脚本

ansible-playbook批量部署zabbix

ansible-playbook 批量安装zabbix_agent

Ansible-playbook批量添加zabbix监控项目同步配置信息

ansible-playbook roles 安装zabbix-agent 监控 php

安装zabbix-server之ansible-playbook