Ansible Documentation
2.7

Installation, Upgrade & Configuration

  • Installation Guide
  • Configuring Ansible
  • Ansible Porting Guides

Using Ansible

  • User Guide

Contributing to Ansible

  • Ansible Community Guide

Extending Ansible

  • Developer Guide

Scenario Guides

  • Cisco ACI Guide
  • Amazon Web Services Guide
  • Microsoft Azure Guide
  • CloudStack Cloud Guide
  • Getting Started with Docker
  • Google Cloud Platform Guide
  • Infoblox Guide
  • Getting Started with Kubernetes and OpenShift
  • Cisco Meraki Guide
  • Using Ansible with the Packet host
  • Rackspace Cloud Guide
  • Continuous Delivery and Rolling Upgrades
  • Using Vagrant and Ansible
  • Vultr Guide

Ansible for VMWare

  • Ansible for VMware

Ansible for Network Automation

  • Ansible for Network Automation

Reference & Appendices

  • Module Index
  • Playbook Keywords
  • Ansible Galaxy
  • Return Values
  • Ansible Configuration Settings
  • YAML Syntax
  • Python 3 Support
  • Release and maintenance
  • Testing Strategies
  • Sanity Tests
  • Frequently Asked Questions
  • Glossary
  • Ansible Reference: Module Utilities
  • Special Variables
  • Ansible Tower

Roadmaps

  • Ansible Roadmap
Ansible Documentation
  • Docs »
  • nagios – Perform common tasks in Nagios related to downtime and notifications.

nagios – Perform common tasks in Nagios related to downtime and notifications.¶

  • Synopsis
  • Parameters
  • Examples
  • Status

Synopsis¶

  • The nagios module has two basic functions: scheduling downtime and toggling alerts for services or hosts.
  • All actions require the host parameter to be given explicitly. In playbooks you can use the {{inventory_hostname}} variable to refer to the host the playbook is currently running on.
  • You can specify multiple services at once by separating them with commas, .e.g., services=httpd,nfs,puppet.
  • When specifying what service to handle there is a special service value, host, which will handle alerts/downtime for the host itself, e.g., service=host. This keyword may not be given with other services at the same time. Setting alerts/downtime for a host does not affect alerts/downtime for any of the services running on it. To schedule downtime for all services on particular host use keyword “all”, e.g., service=all.
  • When using the nagios module you will need to specify your Nagios server using the delegate_to parameter.

Parameters¶

Parameter Choices/Defaults Comments
action
- / required
    Choices:
  • downtime
  • delete_downtime
  • enable_alerts
  • disable_alerts
  • silence
  • unsilence
  • silence_nagios
  • unsilence_nagios
  • command
  • servicegroup_service_downtime
  • servicegroup_host_downtime
Action to take.
servicegroup options were added in 2.0.
delete_downtime options were added in 2.2.
author
-
Default:
Ansible
Author to leave downtime comments as. Only usable with the downtime action.
cmdfile
-
Default:
auto-detected
Path to the nagios command file (FIFO pipe). Only required if auto-detection fails.
command
- / required
The raw command to send to nagios, which should not include the submitted time header or the line-feed Required option when using the command action.
comment
-
added in 2.0
Default:
Scheduling downtime
Comment for downtime action.
host
-
Host to operate on in Nagios.
minutes
-
Default:
30
Minutes to schedule downtime for.
Only usable with the downtime action.
servicegroup
-
added in 2.0
The Servicegroup we want to set downtimes/alerts for. Required option when using the servicegroup_service_downtime amd servicegroup_host_downtime.
services
- / required
What to manage downtime/alerts for. Separate multiple services with commas. service is an alias for services. Required option when using the downtime, enable_alerts, and disable_alerts actions.

aliases: service

Examples¶

# set 30 minutes of apache downtime
- nagios:
    action: downtime
    minutes: 30
    service: httpd
    host: '{{ inventory_hostname }}'

# schedule an hour of HOST downtime
- nagios:
    action: downtime
    minutes: 60
    service: host
    host: '{{ inventory_hostname }}'

# schedule an hour of HOST downtime, with a comment describing the reason
- nagios:
    action: downtime
    minutes: 60
    service: host
    host: '{{ inventory_hostname }}'
    comment: Rebuilding machine

# schedule downtime for ALL services on HOST
- nagios:
    action: downtime
    minutes: 45
    service: all
    host: '{{ inventory_hostname }}'

# schedule downtime for a few services
- nagios:
    action: downtime
    services: frob,foobar,qeuz
    host: '{{ inventory_hostname }}'

# set 30 minutes downtime for all services in servicegroup foo
- nagios:
    action: servicegroup_service_downtime
    minutes: 30
    servicegroup: foo
    host: '{{ inventory_hostname }}'

# set 30 minutes downtime for all host in servicegroup foo
- nagios:
    action: servicegroup_host_downtime
    minutes: 30
    servicegroup: foo
    host: '{{ inventory_hostname }}'

# delete all downtime for a given host
- nagios:
    action: delete_downtime
    host: '{{ inventory_hostname }}'
    service: all

# delete all downtime for HOST with a particular comment
- nagios:
    action: delete_downtime
    host: '{{ inventory_hostname }}'
    service: host
    comment: Planned maintenance

# enable SMART disk alerts
- nagios:
    action: enable_alerts
    service: smart
    host: '{{ inventory_hostname }}'

# "two services at once: disable httpd and nfs alerts"
- nagios:
    action: disable_alerts
    service: httpd,nfs
    host: '{{ inventory_hostname }}'

# disable HOST alerts
- nagios:
    action: disable_alerts
    service: host
    host: '{{ inventory_hostname }}'

# silence ALL alerts
- nagios:
    action: silence
    host: '{{ inventory_hostname }}'

# unsilence all alerts
- nagios:
    action: unsilence
    host: '{{ inventory_hostname }}'

# SHUT UP NAGIOS
- nagios:
    action: silence_nagios

# ANNOY ME NAGIOS
- nagios:
    action: unsilence_nagios

# command something
- nagios:
    action: command
    command: DISABLE_FAILURE_PREDICTION

Status¶

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

Authors¶

  • Tim Bielawa (@tbielawa)

Hint

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


© Copyright 2013-2021 Ansible, Inc Last updated on Jul 27, 2021.

Built with Sphinx using a theme provided by Read the Docs.