# zabbix_maintenance – Create Zabbix maintenance windows

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Status

## 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

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Alexander Bulimov (@abulimov)

Hint

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