Repository URL to install this package:
|
Version:
6.0.0 ▾
|
| .. |
| changelogs |
| examples |
| meta |
| plugins |
| roles |
| CHANGELOG.md |
| CHANGELOG.rst |
| CODE_OF_CONDUCT.md |
| CONTRIBUTING.md |
| FILES.json |
| LICENSE |
| MANIFEST.json |
| README.md |
| renovate.json |
This Ansible collection contains:
Ansible modules to change objects in Icinga 2 using the director API.
Additionally all supported modules have an appropriate *_info-module to gather facts about the existing objects in the director.
icinga_command_templateicinga_commandicinga_endpointicinga_host_templateicinga_hosticinga_hostgroupicinga_notificationicinga_notification_templateicinga_serviceicinga_service_applyicinga_service_templateicinga_servicegroupicinga_serviceseticinga_timeperiodicinga_timeperiod_templateicinga_user_groupicinga_user_templateicinga_usericinga_zoneA role to change objects in Icinga 2 using the the provided modules.
An inventory plugin to use hosts and groups defined in Icinga as a dynamic inventory.
Required Ansible version: 2.9.10
If you use Ansible >=3.0.0, this collection is included in Ansible.
If you use an older version, you can install it with Ansible Galaxy:
ansible-galaxy collection install t_systems_mms.icinga_director
Alternatively put the collection into a requirements.yml-file:
---
collections:
- t_systems_mms.icinga_director
Our modules include documentation.
You can find the complete documentation for the modules in the docs-folder or in the Ansible documentation.
To display it on the command-line you can use the ansible-doc command.
For example, to see the documentation for the module icinga_host run the following command on the cli:
ansible-doc t_systems_mms.icinga_director.icinga_host
To see the documentation for the inventory plugin, run:
ansible-doc -t inventory t_systems_mms.icinga_director.icinga_director_inventory
See the examples directory for a complete list of examples.
- hosts: localhost
collections:
- t_systems_mms.icinga_director
tasks:
- name: create a host in icinga
t_systems_mms.icinga_director.icinga_host:
state: present
url: "https://example.com"
url_username: "{{ icinga_user }}"
url_password: "{{ icinga_pass }}"
object_name: "{{ ansible_hostname }}"
address: "{{ ansible_default_ipv4.address }}"
display_name: "{{ ansible_hostname }}"
groups:
- "foo"
imports:
- "StandardServer"
vars:
dnscheck: "no"
- name: Query a service apply rule in icinga
t_systems_mms.icinga_director.icinga_service_apply_info:
url: "{{ icinga_url }}"
url_username: "{{ icinga_user }}"
url_password: "{{ icinga_pass }}"
query: "SERVICE_dummy"
register: result
Please see the README of the role.
Create a file that ends with icinga_director_inventory.yaml, for example inventory.icinga_director_inventory.yaml.
The content should look like this:
plugin: t_systems_mms.icinga_director.icinga_director_inventory
url: "https://example.com"
url_username: foo
url_password: bar
force_basic_auth: False
Then you can use the dynamic inventory like this:
ansible-playbook -i inventory.icinga_director_inventory.yaml path/to/your/playbook.yml
See Contributing.
If the following error is thrown, check if you're behind a proxy and use force_basic_auth: true in the task.
fatal: [localhost]: FAILED! => {"changed": false, "msg": "bad return code while creating: -1. Error message: Request failed: <urlopen error Tunnel connection failed: 302 Found>"}
Please see the README for more information.
GPLv3