Name
Last commit
Last update
..
.gitkeep ansible, 2021-03-08, update16
README.md NTP, modify

logo

Ansible을 이용한 Zabbix-Agent 배포

원격 시스템에 Zabbix-Agent의 설치 및 설정을 자동화 한다.

활용 용도

  • YUM, APT와 같은 Package Manager를 이용하지않고, Package 파일로 직접 설치한다.
  • Zabbix-Agent의 사전 검토된 설정을 배포할 때 유용하다. 사전 검토된 설정은 Jinja2 템플릿을 사용한다.

Inventory 설정

# cat hosts
[ALL_HOSTS]
172.16.0.100 managed_ip=172.16.0.100 des="2020-12-03"

[ALL_HOSTS_OK]

대상 호스트는 172.16.0.100이며, 추가는 2020-12-03에 수행한다. 참고적으로 ALL_HOSTS_OK 호스트 그룹은 작업이 완료된 호스트의 history를 위한 그룹이다.

Host Variables 설정

# cat host_vars/172.16.0.100
ansible_ssh_host: 172.16.0.100
ansible_ssh_port: SSH_포트번호
ansible_ssh_user: 사용자 아이디
ansible_ssh_pass: "사용자 패스워드"
ansible_become: yes
ansible_become_method: su
ansible_become_user: root
ansible_become_pass: "!root_패스워드"
ansible_python_interpreter: python2.7

Playbook 설정

---
- name: Zabbix-Agent Remote Install
  hosts: ALL_HOSTS
  vars:
    zabbix_server: 172.24.0.254
  tasks:
    - name: Directory Create
      file:
        path: "{{ item }}"
        state: directory
        owner: 'root'
        group: 'root'
        mode: 0700
      with_items:
        - /root/test/zabbix-agent

    - name: Zabbix dep Package Copy
      copy:
        src: "{{ item }}"
        dest: /root/test/zabbix-agent
        owner: 'root'
        group: 'root'
        mode: 0644
        #attr: i
      with_items:
       ['zabbix-agent_buster.deb']
      when: 
       - ansible_distribution_major_version == '10'
       - ansible_os_family == "Debian"

    - name: Zabbix RPM Package Copy
      copy:
        src: "{{ item }}"
        dest: /root/test/zabbix-agent
        owner: 'root'
        group: 'root'
        mode: 0644
      with_items:
       ['zabbix-agent-4.4.10-1.el7.x86_64.rpm']
      when: ansible_os_family == "CentOS"

    - name: dpkg command Result
      shell: yes | dpkg -i /root/test/zabbix-agent/zabbix-agent_buster.deb
      register: dpkg_result
      when: 
       - ansible_distribution_major_version == '10'
       - ansible_os_family == "Debian"

    - name: rpm command Result
      shell: rpm -ivh /root/test/zabbix-agent/zabbix-agent-4.4.10-1.el7.x86_64.rpm
      register: dpkg_result
      when: ansible_os_family == "CentOS"

    - name: Zabbix agents configuration
      template: src=templates/zabbix_agented.conf_debian.j2 dest=/etc/zabbix/zabbix_agentd.conf mode=0644
      when:
       - ansible_distribution_major_version == '10'
       - ansible_os_family == "Debian"

    - name: Zabbix agents configuration
      template: src=templates/zabbix_agented.conf_redhat.j2 dest=/etc/zabbix/zabbix_agentd.conf mode=0644
      when: ansible_os_family == "CentOS"

    - name: zabbix-agent Daemon Restart
      systemd:
        state: restarted
        name: zabbix-agent.service
        enabled: True

Zabbix-Agent 설치에 대한 Playbook 분석

  • OS에 따라(redhat, debian계열) Agent를 설치한다.

playbook 실행

# ansible-playbook -i hosts zabbix-agent_install.yml