# zabbix_screen – Create/update/delete Zabbix screens

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

## Synopsis

- This module allows you to create, modify and delete Zabbix screens and associated graph data.

## 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
--- | --- | ---
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.
screens list / elements=dictionary / required |  | List of screens to be created/updated/deleted (see example).
| graph_height integer |  | Graph height will be set in graph settings.
| graph_names list / elements=string |  | Graph names will be added to a screen. Case insensitive. Required if state=present.
| graph_width integer |  | Graph width will be set in graph settings.
| graphs_in_row integer | Default: 3 | Limit columns of a screen and make multiple rows.
| host_group string |  | Host group will be used for searching hosts. Required if state=present.
| screen_name string / required |  | Screen name will be used. If a screen has already been added, the screen name won't be updated.

sort
boolean

Choices:
- no ←
- yes

Sort hosts alphabetically.
If there are numbers in hostnames, leading zero should be used.

state
string

Choices:
- absent
- present ←

present - Create a screen if it doesn't exist. If the screen already exists, the screen will be updated as needed.
absent - If a screen exists, the screen will be deleted.

server_url string / required |  | URL of Zabbix server, with protocol (http or https). `url` is an alias for `server_url`. aliases: url
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

- Too many concurrent updates to the same screen may cause Zabbix to return errors, see examples for a workaround if needed.
- 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

    # Create/update a screen.
    - name: Create a new screen or update an existing screen's items 5 in a row
      local_action:
        module: zabbix_screen
        server_url: http://monitor.example.com
        login_user: username
        login_password: password
        screens:
          - screen_name: ExampleScreen1
            host_group: Example group1
            state: present
            graph_names:
              - Example graph1
              - Example graph2
            graph_width: 200
            graph_height: 100
            graphs_in_row: 5

    # Create/update multi-screen
    - name: Create two of new screens or update the existing screens' items
      local_action:
        module: zabbix_screen
        server_url: http://monitor.example.com
        login_user: username
        login_password: password
        screens:
          - screen_name: ExampleScreen1
            host_group: Example group1
            state: present
            graph_names:
              - Example graph1
              - Example graph2
            graph_width: 200
            graph_height: 100
          - screen_name: ExampleScreen2
            host_group: Example group2
            state: present
            graph_names:
              - Example graph1
              - Example graph2
            graph_width: 200
            graph_height: 100

    # Limit the Zabbix screen creations to one host since Zabbix can return an error when doing concurrent updates
    - name: Create a new screen or update an existing screen's items
      local_action:
        module: zabbix_screen
        server_url: http://monitor.example.com
        login_user: username
        login_password: password
        state: present
        screens:
          - screen_name: ExampleScreen
            host_group: Example group
            state: present
            graph_names:
              - Example graph1
              - Example graph2
            graph_width: 200
            graph_height: 100
      when: inventory_hostname==groups['group_name'][0]

## Status

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

### Authors

- Cove (@cove)
- Tony Minfei Ding (!UNKNOWN)
- Harrison Gu (@harrisongu)

Hint

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