stephankn / ansible-zabbix-web

Installing and maintaining zabbix-web for RedHat/Debian/Ubuntu.

Home Page:https://galaxy.ansible.com/dj-wasabi/zabbix-web/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Table of Contents

Overview

Build Status:

Build Status

This is a role for installing and maintaining zabbix-web, the web UI for the zabbix-server.

This is one of the 'dj-wasabi' roles which configures your whole zabbix environment. See the complete list:

Requirements

Operating Systems

This role will work on the following operating systems:

  • RedHat
  • Debian
  • Ubuntu

So, you'll need one of those operating systems.. :-) Please sent Pull Requests or suggestions when you want to use this role for other Operating Systems.

Zabbix Versions

See the following list of supported Operating Systems with the Zabbix releases.

  • CentOS 7.x
  • Amazon 7.x
  • RedHat 7.x
  • OracleLinux 7.x
  • Scientific Linux 7.x
  • Ubuntu 14.04, 16.04, 18.04
  • Debian 7, 8, 9
  • CentOS 7.x
  • Amazon 7.x
  • RedHat 7.x
  • OracleLinux 7.x
  • Scientific Linux 7.x
  • Ubuntu 14.04, 16.04
  • Debian 7, 8
  • CentOS 5.x, 6.x, 7.x
  • Amazon 5.x, 6.x, 7.x
  • RedHat 5.x, 6.x, 7.x
  • OracleLinux 5.x, 6.x, 7.x
  • Scientific Linux 5.x, 6.x, 7.x
  • Ubuntu 14.04
  • Debian 7, 8
  • CentOS 6.x, 7.x
  • Amazon 6.x, 7.x
  • RedHat 6.x, 7.x
  • OracleLinux 6.x, 7.x
  • Scientific Linux 6.x, 7.x
  • Ubuntu 12.04 14.04
  • Debian 7
  • CentOS 5.x, 6.x
  • RedHat 5.x, 6.x
  • OracleLinux 5.x, 6.x
  • Scientific Linux 5.x, 6.x
  • Ubuntu 12.04
  • Debian 7
  • xenserver 6

Installation

Installing this role is very simple: ansible-galaxy install dj-wasabi.zabbix-web

When the Zabbix Web needs to be running on the same host as the Zabbix Server, please also install the Zabbix Server by executing the following command: ansible-galaxy install dj-wasabi.zabbix-server

Role Variables

Main variables

The following is an overview of all available configuration defaults for this role.

Overall Zabbix

  • zabbix_version: This is the version of zabbix. Default: 3.4. Can be overridden to 3.2, 3.0, 2.4, or 2.2.
  • zabbix_repo_yum: A list with Yum repository configuration.

Zabbix Web specific

  • zabbix_url: This is the url on which the zabbix web interface is available. Default is zabbix.example.com, you should override it. For example, see "Example Playbook"
  • zabbix_url_aliases: A list with Aliases for the Apache Virtual Host configuration.
  • zabbix_timezone: This is the timezone. The Apache Virtual Host needs this parameter. Default: Europe/Amsterdam
  • zabbix_vhost: True / False. When you don't want to create an Apache Virtual Host configuration, you can set it to False.
  • zabbix_apache_vhost_port: The port on which Zabbix HTTP vhost is running.
  • zabbix_apache_vhost_tls_port: The port on which Zabbix HTTPS vhost is running.
  • zabbix_apache_tls: If the Apache vhost should be configured with TLS encryption or not.
  • zabbix_apache_redirect: If a redirect should take place from HTTP to HTTPS
  • zabbix_apache_tls_crt: The path to the TLS certificate file.
  • zabbix_apache_tls_key: The path to the TLS key file.
  • zabbix_apache_tls_chain: The path to the TLS certificate chain file.
  • zabbix_apache_vhost_port: On which port the Apache Virtual Host is available.
  • zabbix_web_max_execution_time:
  • zabbix_web_memory_limit:
  • zabbix_web_post_max_size:
  • zabbix_web_upload_max_filesize:
  • zabbix_web_max_input_time:
  • zabbix_web_env: (Optional) A Dictionary of PHP Environments

NOTE: When zabbix_apache_tls_crt, zabbix_apache_tls_key and/or zabbix_apache_tls_chain are used, make sure that these files exists before executing this role. The Zabbix-Web role will not install the mentioned files.

Zabbix Server

  • zabbix_server_name: The name of the Zabbix Server.
  • zabbix_server_database: The type of database used. Can be: mysql or pgsql
  • zabbix_server_database_long: The type of database used, but long name. Can be: mysql or postgresql
  • zabbix_server_hostname: The hostname on which the zabbix-server is running. Default set to: {{ inventory_hostname }}
  • zabbix_server_listenport: On which port the Zabbix Server is available. Default: 10051
  • zabbix_server_dbhost: The hostname on which the database is running.
  • zabbix_server_dbname: The database name which is used by the Zabbix Server.
  • zabbix_server_dbuser: The database username which is used by the Zabbix Server.
  • zabbix_server_dbpassword: The database user password which is used by the Zabbix Server.
  • zabbix_server_dbport: The database port which is used by the Zabbix Server.

Examples of configuration

zabbix_repo_yum

Current default configuration and example for

zabbix_repo_yum:
  - name: zabbix
    description: Zabbix Official Repository - $basearch
    baseurl: http://repo.zabbix.com/zabbix/{{ zabbix_version }}/rhel/{{ ansible_distribution_major_version }}/$basearch/
    gpgcheck: 0
    gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    state: present
  - name: zabbix
    description: Zabbix Official Repository non-supported - $basearch
    baseurl: http://repo.zabbix.com/non-supported/rhel/{{ ansible_distribution_major_version }}/$basearch/
    gpgcheck: 0
    gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    state: present

Dependencies

This role has one "hardcoded" dependency: geerlingguy.apache.

As it is also possible to run the zabbix-web on a different host than the zabbix-server, the zabbix-server is not configured to be an dependency.

Example Playbook

There are two ways of using the zabbix-web:

  • Single instance
  • Multi host setup

Single instance

When there is one host running both Zabbix Server and the Zabbix Web (Running MySQL as database):

- hosts: zabbix-server
  become: yes
  roles:
     - { role: geerlingguy.apache }
     - { role: zabbix_server, database_type: mysql, database_type_long: mysql, server_dbport: 3306 }
     - { role: zabbix_web, zabbix_url: zabbix.dj-wasabi.nl, database_type: mysql, database_type_long: mysql, server_dbport: 3306}

Multi host setup

This is a two host setup. On one host (Named: "zabbix-server") the Zabbix Server is running, and the other host (Named: zabbix-web) runs Zabbix Web (with MySQL as database):

- hosts: zabbix-server
  become: yes
  roles:
     - { role: zabbix_server, database_type: mysql, database_type_long: mysql, server_dbport: 3306 }

- hosts: zabbix-web
  become: yes
  roles:
     - { role: geerlingguy.apache }
     - { role: zabbix_web, zabbix_server_hostname: zabbix-server, zabbix_url: zabbix.dj-wasabi.nl, database_type: mysql, database_type_long: mysql, server_dbport: 3306 }

Adding Environment Variables for zabbix_web

Sometimes you need to add environment variables to your zabbix.conf.php, for example to add LDAP CA certificates. To do this add a zabbix_web_env dictionary:

- { role: zabbix_web, zabbix_url: zabbix.dj-wasabi.nl, database_type: mysql, database_type_long: mysql, server_dbport: 3306, zabbix_web_env: {LDAPTLS_CACERT: /etc/ssl/certs/ourcert.pem}

Molecule

This role is configured to be tested with Molecule. Molecule will boot at least 3 different kinds of containers, one for each supported Operating System (Debian, Ubuntu and RedHat). Pull Requests are only merged when the tests are successful.

For more information, please check the following page: https://www.werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker

License

GPLv3

Author Information

Github: https://github.com/dj-wasabi/ansible-zabbix-web

mail: ikben [ at ] werner-dijkerman . nl

About

Installing and maintaining zabbix-web for RedHat/Debian/Ubuntu.

https://galaxy.ansible.com/dj-wasabi/zabbix-web/

License:MIT License


Languages

Language:Python 100.0%