zabbix_maintenance – Create Zabbix maintenance windows

Synopsis

  • This module will let you create Zabbix maintenance windows.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6

  • zabbix-api >= 0.5.4

Parameters

Parameter Choices/Defaults Comments
collect_data
boolean
    Choices:
  • no
  • yes ←
Type of maintenance. With data collection, or without.
desc
string
Default:
"Created by Ansible"
Short description of maintenance window.
host_groups
list / elements=string
Host groups to manage maintenance window for.
Required option when state=present and host_names is not used.

aliases: host_group
host_names
list / elements=string
Hosts to manage maintenance window for.
Required option when state=present and host_groups is not used.

aliases: host_name
http_login_password
string
Basic Auth password
http_login_user
string / required
Basic Auth login
login_password
string / required
Zabbix user password.
login_user
string / required
Zabbix user name.
minutes
integer
Default:
10
Length of maintenance window in minutes.
name
string / required
Unique name of maintenance window.
server_url
string / required
URL of Zabbix server, with protocol (http or https). url is an alias for server_url.

aliases: url
state
string
    Choices:
  • present ←
  • absent
Create or remove a maintenance window. Maintenance window to remove is identified by name.
timeout
integer
Default:
10
The timeout of API request (seconds).
validate_certs
boolean
added in 2.5
    Choices:
  • no
  • yes ←
If set to False, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.

Notes

Note

  • Useful for setting hosts in maintenance mode before big update, and removing maintenance window after update.

  • Module creates maintenance window from now() to now() + minutes, so if Zabbix server’s time and host’s time are not synchronized, you will get strange results.

  • Install required module with ‘pip install zabbix-api’ command.

  • If you use login_password=zabbix, the word “zabbix” is replaced by “****” in all module output, because login_password uses no_log. See this FAQ for more information.

Examples

- name: Create a named maintenance window for host www1 for 90 minutes
  zabbix_maintenance:
    name: Update of www1
    host_name: www1.example.com
    state: present
    minutes: 90
    server_url: https://monitoring.example.com
    login_user: ansible
    login_password: pAsSwOrD

- name: Create a named maintenance window for host www1 and host groups Office and Dev
  zabbix_maintenance:
    name: Update of www1
    host_name: www1.example.com
    host_groups:
      - Office
      - Dev
    state: present
    server_url: https://monitoring.example.com
    login_user: ansible
    login_password: pAsSwOrD

- name: Create a named maintenance window for hosts www1 and db1, without data collection.
  zabbix_maintenance:
    name: update
    host_names:
      - www1.example.com
      - db1.example.com
    state: present
    collect_data: False
    server_url: https://monitoring.example.com
    login_user: ansible
    login_password: pAsSwOrD

- name: Remove maintenance window by name
  zabbix_maintenance:
    name: Test1
    state: absent
    server_url: https://monitoring.example.com
    login_user: ansible
    login_password: pAsSwOrD

Status

Authors

  • Alexander Bulimov (@abulimov)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.