community.general.pagerduty – Create PagerDuty maintenance windows

Note

This plugin is part of the community.general collection (version 4.2.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.pagerduty.

Synopsis

  • This module will let you create PagerDuty maintenance windows

Requirements

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

  • PagerDuty API access

Parameters

Parameter Choices/Defaults Comments
desc
string
Default:
"Created by Ansible"
Short description of maintenance window.
hours
string
Default:
"1"
Length of maintenance window in hours.
minutes
string
Default:
"0"
Maintenance window in minutes (this is added to the hours).
name
string
PagerDuty unique subdomain. Obsolete. It is not used with PagerDuty REST v2 API.
requester_id
string
ID of user making the request. Only needed when creating a maintenance_window.
service
list / elements=string
A comma separated list of PagerDuty service IDs.

aliases: services
state
string / required
    Choices:
  • running
  • started
  • ongoing
  • absent
Create a maintenance window or get a list of ongoing windows.
token
string / required
A pagerduty token, generated on the pagerduty site. It is used for authorization.
user
string
PagerDuty user ID. Obsolete. Please, use token for authorization.
validate_certs
boolean
    Choices:
  • no
  • yes ←
If no, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.
window_id
string
ID of maintenance window. Only needed when absent a maintenance_window.

Examples

- name: List ongoing maintenance windows using a token
  community.general.pagerduty:
    name: companyabc
    token: xxxxxxxxxxxxxx
    state: ongoing

- name: Create a 1 hour maintenance window for service FOO123
  community.general.pagerduty:
    name: companyabc
    user: [email protected]
    token: yourtoken
    state: running
    service: FOO123

- name: Create a 5 minute maintenance window for service FOO123
  community.general.pagerduty:
    name: companyabc
    token: xxxxxxxxxxxxxx
    hours: 0
    minutes: 5
    state: running
    service: FOO123


- name: Create a 4 hour maintenance window for service FOO123 with the description "deployment"
  community.general.pagerduty:
    name: companyabc
    user: [email protected]
    state: running
    service: FOO123
    hours: 4
    desc: deployment
  register: pd_window

- name: Delete the previous maintenance window
  community.general.pagerduty:
    name: companyabc
    user: [email protected]
    state: absent
    window_id: '{{ pd_window.result.maintenance_window.id }}'

# Delete a maintenance window from a separate playbook than its creation,
# and if it is the only existing maintenance window
- name: Check
  community.general.pagerduty:
    requester_id: XXXXXXX
    token: yourtoken
    state: ongoing
  register: pd_window

- name: Delete
  community.general.pagerduty:
    requester_id: XXXXXXX
    token: yourtoken
    state: absent
    window_id: "{{ pd_window.result.maintenance_windows[0].id }}"

Authors

  • Andrew Newdigate (@suprememoocow)

  • Dylan Silva (@thaumos)

  • Justin Johns (!UNKNOWN)

  • Bruce Pennypacker (@bpennypacker)