记录一次批量安装zabbix_agent

 由于要安装的系统里面是其他组安装了openstack不想用他们的源来安装不知道什么版本的agent所以我就写一个简单的批量安装我们自己版本的zabbix_agent

     知识点 ansible的一些命令,会点系统的都能看懂。

    首先有这么几个文件和目录 
    hosts
    readme.txt
    roles
    zabbix.yml
先看readme.txt
直接运行,注意远程用户的修改
ansible-playbook -i hosts zabbix.yml

如果报错,rpm包已经安装就这样忽略rpm包的安装
ansible-playbook -i hosts zabbix.yml  --skip-tags=rpm_yes

hosts里面修改需要安装的机器列表

如果是密钥连接
eval `ssh-agent`
ssh-add
之后就可以运行了。

hosts里面就是ansible的INVENTORY : Ansible管理主机的清单
[zabbix]
1.1.1.1
2.2.2.2
[aa]
3.3.3.3
4.4.4.4
之后就是zabbiy.yml文件

  • hosts: zabbix #这个就是指定要在那些机器上安装,在hosts里面对应
    remote_user: wuyantao #远程机器的用户 要安装的机器上要有
    sudo: yes #是否需要sudo 因为要安装rpm所以要sudo
    vars:
    zabbix_ServerActive: 1.1.1.1 #定义变量 就是agent.conf里面的值的替换
    zabbix_Server: 2.2.2.2
    roles:
    • zabbix #指定执行的roles里面的那个
      之后就是看roles里面的zabbix内容了就是安装
      主要看task里面的mian.yml配置

  • name: create-software
    file: path=/home/{{ansible_env.SUDO_USER}}/software state=directory
    这段就是创建了目录放一些需要用的文件

  • name: copy-rpm
    copy: src={{item}} dest=/home/{{ansible_env.SUDO_USER}}/software/ mode=0644
    with_items:

    • scripts.tar.gz
    • zabbix-agent-3.2.6-1.el7.x86_64.rpm
    • zabbix_agentd.tar.gz
    • zabbix-get-3.2.6-1.el7.x86_64.rpm
    • zabbix-sender-3.2.6-1.el7.x86_64.rpm
      copy模块就是复制文件到目录里面
  • name: shell
    shell: rpm -ivh /home/{{ansible_env.SUDO_USER}}/software/{{item}}
    with_items:

    • zabbix-agent-3.2.6-1.el7.x86_64.rpm
    • zabbix-get-3.2.6-1.el7.x86_64.rpm
    • zabbix-sender-3.2.6-1.el7.x86_64.rpm
      tags: rpm_yes
      shell模块就是用rpm命令直接安装特定的包,如果报错就是已经安装了rpm_zabbix包了通过tags可以跳过这个name
  • name: unarchive_scripts
    unarchive: src=/home/{{ansible_env.SUDO_USER}}/software/scripts.tar.gz dest=/etc/zabbix/ copy=no mode=755
    unarchive解压模块解压到特定的目录里面

  • name: copy files
    copy: src={{item}} dest=/etc/zabbix/zabbix_agentd.d/ mode=0644 owner=root
    with_fileglob:

    • ../templates/zabbix_agentd.d/*.conf
      notify: restart zabbix-agent
      也是copy模块实际上可以写到一起不过没有安装rpm包就没有zabbix目录copy就会出错。
  • name: start-zabbix-agent
    service: name=zabbix-agent state=started enabled=yes
    就是把服务开启 设置开机启动这个可以设置到最后

  • name: copy-zabbix-agentd-conf
    template: src=zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf mode=0644
    notify: restart zabbix-agent
    修改配置并重启

文件下载在 http://down.51cto.com/data/2453090