telekom_mms.icinga_director.icinga_service_apply (2.1.0) — module

Manage service apply rules in Icinga2

| "added in version" 1.0.0 of telekom_mms.icinga_director"

Authors: Sebastian Gumprich (@rndmh3ro)

Install collection

Install with ansible-galaxy collection install telekom_mms.icinga_director:==2.1.0


Add to requirements.yml

  collections:
    - name: telekom_mms.icinga_director
      version: 2.1.0

Description

Add or remove a service apply rule to Icinga2 through the director API.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add service apply rule to icinga
  telekom_mms.icinga_director.icinga_service_apply:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: "SERVICE_dummy"
    assign_filter: 'host.name="foohost"'
    check_command: hostalive
    display_name: "dummy process"
    check_interval: "10m"
    check_period: "24/7"
    check_timeout: "1m"
    enable_active_checks: true
    enable_event_handler: true
    enable_notifications: true
    enable_passive_checks: false
    enable_perfdata: false
    event_command: restart_httpd
    max_check_attempts: "5"
    retry_interval: "3m"
    imports:
      - fooservicetemplate
    groups:
      - fooservicegroup
    vars:
      http_address: "$address$"
      http_port: "9080"
      http_uri: "/ready"
      http_string: "Ready"
      http_expect: "Yes"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add service apply rule with command_endpoint
  telekom_mms.icinga_director.icinga_service_apply:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: "SERVICE_dummy"
    assign_filter: 'host.name="foohost"'
    check_command: hostalive
    display_name: "dummy process"
    check_interval: "10m"
    check_period: "24/7"
    check_timeout: "1m"
    enable_active_checks: true
    enable_event_handler: true
    enable_notifications: true
    enable_passive_checks: false
    event_command: restart_httpd
    max_check_attempts: "5"
    retry_interval: "3m"
    command_endpoint: "fooendpoint"
    imports:
      - fooservicetemplate
    groups:
      - fooservicegroup
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update service apply rule with command_endpoint
  telekom_mms.icinga_director.icinga_service_apply:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: "SERVICE_dummy"
    enable_perfdata: true
    append: true

Inputs

    
url:
    description:
    - HTTP, HTTPS, or FTP URL in the form (http|https|ftp)://[user[:pass]]@host.domain[:port]/path
    required: true
    type: str

vars:
    default: {}
    description:
    - Custom properties of the service apply rule.
    type: dict

force:
    default: false
    description:
    - If V(yes) do not get a cached copy.
    type: bool

notes:
    description:
    - Additional notes for this object.
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Apply feature state.
    type: str

append:
    choices:
    - true
    - false
    description:
    - Do not overwrite the whole object but instead append the defined properties.
    - Note - Appending to existing vars, imports or any other list/dict is not possible.
      You have to overwrite the complete list/dict.
    - Note - Variables that are set by default will also be applied, even if not set.
    type: bool
    version_added: 1.25.0
    version_added_collection: telekom_mms.icinga_director

groups:
    default: []
    description:
    - Service groups that should be directly assigned to this service.
    - Servicegroups can be useful for various reasons.
    - They are helpful to provided service-type specific view in Icinga Web 2, either
      for custom dashboards or as an instrument to enforce restrictions.
    - Service groups can be directly assigned to single services or to service templates.
    elements: str
    type: list

imports:
    description:
    - Importable templates, add as many as you want.
    - Please note that order matters when importing properties from multiple templates
      - last one wins.
    elements: str
    type: list

apply_for:
    description:
    - Evaluates the apply for rule for all objects with the custom attribute specified.
    - For example selecting "host.vars.custom_attr" will generate "for (config in host.vars.array_var)"
      where "config" will be accessible through "$config$".
    - Note - only custom variables of type "Array" are eligible.
    type: str

notes_url:
    description:
    - An URL pointing to additional notes for this object.
    - Separate multiple urls like this "'http://url1' 'http://url2'".
    - Maximum length is 255 characters.
    type: str

use_proxy:
    default: true
    description:
    - If V(no), it will not use a proxy, even if one is defined in an environment variable
      on the target hosts.
    type: bool

client_key:
    description:
    - PEM formatted file that contains your private key to be used for SSL client authentication.
    - If O(client_cert) contains both the certificate and key, this option is not required.
    type: path

http_agent:
    default: ansible-httpget
    description:
    - Header to identify as, generally appears in web server logs.
    type: str

use_gssapi:
    default: false
    description:
    - Use GSSAPI to perform the authentication, typically this is for Kerberos or Kerberos
      through Negotiate authentication.
    - Requires the Python library L(gssapi,https://github.com/pythongssapi/python-gssapi)
      to be installed.
    - Credentials for GSSAPI can be specified with O(url_username)/O(url_password) or
      with the GSSAPI env var C(KRB5CCNAME) that specified a custom Kerberos credential
      cache.
    - NTLM authentication is B(not) supported even if the GSSAPI mech for NTLM has been
      installed.
    type: bool
    version_added: '2.11'
    version_added_collection: ansible.builtin

client_cert:
    description:
    - PEM formatted certificate chain file to be used for SSL client authentication.
    - This file can also include the key as well, and if the key is included, O(client_key)
      is not required.
    type: path

object_name:
    aliases:
    - name
    description:
    - Name for the Icinga service apply rule.
    required: true
    type: str

check_period:
    description:
    - The name of a time period which determines when this object should be monitored.
      Not limited by default.
    required: false
    type: str

display_name:
    description:
    - Alternative displayed name of the service apply rule.
    type: str

url_password:
    description:
    - The password for use in HTTP basic authentication.
    - If the O(url_username) parameter is not specified, the O(url_password) parameter
      will not be used.
    type: str

url_username:
    description:
    - The username for use in HTTP basic authentication.
    - This parameter can be used without O(url_password) for sites that allow empty passwords
    type: str

assign_filter:
    description:
    - The filter where the service apply rule will take effect.
    type: str

check_command:
    description:
    - Check command definition.
    type: str
    version_added: 1.7.0
    version_added_collection: telekom_mms.icinga_director

check_timeout:
    description:
    - Check command timeout in seconds. Overrides the CheckCommand's timeout attribute.
    required: false
    type: str

event_command:
    description:
    - Event command for service which gets called on every check execution if one of these
      conditions matches
    - The service is in a soft state
    - The service state changes into a hard state
    - The service state recovers from a soft or hard state to OK/Up
    required: false
    type: str

check_interval:
    description:
    - Your regular check interval.
    required: false
    type: str

retry_interval:
    description:
    - Retry interval, will be applied after a state change unless the next hard state
      is reached.
    required: false
    type: str

validate_certs:
    default: true
    description:
    - If V(no), SSL certificates will not be validated.
    - This should only be used on personally controlled sites using self-signed certificates.
    type: bool

enable_perfdata:
    description:
    - Whether to process performance data provided by this object.
    required: false
    type: bool

command_endpoint:
    description:
    - The host where the service should be executed on.
    type: str

force_basic_auth:
    default: false
    description:
    - Credentials specified with O(url_username) and O(url_password) should be passed
      in HTTP Header.
    type: bool

max_check_attempts:
    description:
    - Defines after how many check attempts a new hard state is reached.
    required: false
    type: str

enable_active_checks:
    description:
    - Whether to actively check this object.
    required: false
    type: bool

enable_event_handler:
    description:
    - Whether to enable event handlers this object.
    required: false
    type: bool

enable_notifications:
    description:
    - Whether to send notifications for this object.
    required: false
    type: bool

enable_passive_checks:
    description:
    - Whether to accept passive check results for this object.
    required: false
    type: bool