From 3667197efb7b18ec842efd504785965911f8ac4b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 5 Jun 2024 18:18:34 +0200 Subject: Adding upstream version 10.0.0+dfsg. Signed-off-by: Daniel Baumann --- .../telekom_mms/icinga_director/.aar_doc.yml | 72 + .../telekom_mms/icinga_director/CHANGELOG.rst | 40 + .../telekom_mms/icinga_director/FILES.json | 741 +++---- .../telekom_mms/icinga_director/MANIFEST.json | 4 +- .../telekom_mms/icinga_director/README.md | 30 +- .../icinga_director/changelogs/.plugin-cache.yaml | 2 +- .../icinga_director/changelogs/changelog.yaml | 444 ++-- .../icinga_director/docs/icinga_deploy.rst | 5 + .../icinga_director/docs/icinga_notification.rst | 28 +- .../icinga_director/examples/icinga_deploy.yml | 1 + .../examples/icinga_notification.yml | 23 +- .../telekom_mms/icinga_director/meta/runtime.yml | 2 +- .../plugins/modules/icinga_deploy.py | 12 +- .../plugins/modules/icinga_notification.py | 39 +- .../plugins/modules/icinga_service_apply.py | 14 +- .../icinga_director/roles/ansible_icinga/README.md | 2268 ++++++++++++++++++-- .../roles/ansible_icinga/defaults/main.yml | 18 +- .../roles/ansible_icinga/handlers/main.yml | 8 +- .../roles/ansible_icinga/meta/argument_specs.yml | 1345 ++++++++++++ .../roles/ansible_icinga/meta/main.yml | 5 +- .../roles/ansible_icinga/tasks/icinga_command.yml | 26 +- .../tasks/icinga_command_template.yml | 28 +- .../roles/ansible_icinga/tasks/icinga_endpoint.yml | 18 +- .../roles/ansible_icinga/tasks/icinga_host.yml | 72 +- .../ansible_icinga/tasks/icinga_host_template.yml | 72 +- .../ansible_icinga/tasks/icinga_hostgroup.yml | 14 +- .../ansible_icinga/tasks/icinga_notification.yml | 30 +- .../tasks/icinga_notification_template.yml | 32 +- .../tasks/icinga_scheduled_downtime.yml | 24 +- .../roles/ansible_icinga/tasks/icinga_service.yml | 53 +- .../ansible_icinga/tasks/icinga_service_apply.yml | 52 +- .../tasks/icinga_service_template.yml | 54 +- .../ansible_icinga/tasks/icinga_servicegroup.yml | 14 +- .../ansible_icinga/tasks/icinga_serviceset.yml | 14 +- .../ansible_icinga/tasks/icinga_timeperiod.yml | 16 +- .../roles/ansible_icinga/tasks/icinga_user.yml | 22 +- .../ansible_icinga/tasks/icinga_user_group.yml | 24 + .../ansible_icinga/tasks/icinga_user_template.yml | 18 +- .../roles/ansible_icinga/tasks/icinga_zone.yml | 14 +- .../roles/ansible_icinga/tasks/main.yml | 77 +- 40 files changed, 4613 insertions(+), 1162 deletions(-) create mode 100644 ansible_collections/telekom_mms/icinga_director/.aar_doc.yml create mode 100644 ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/argument_specs.yml create mode 100644 ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_group.yml (limited to 'ansible_collections/telekom_mms/icinga_director') diff --git a/ansible_collections/telekom_mms/icinga_director/.aar_doc.yml b/ansible_collections/telekom_mms/icinga_director/.aar_doc.yml new file mode 100644 index 000000000..9991be7fb --- /dev/null +++ b/ansible_collections/telekom_mms/icinga_director/.aar_doc.yml @@ -0,0 +1,72 @@ +output_template: | + + # Ansible Role: {{ role }} + --- + {%- if "version" in galaxy_collection %} + Version: {{ galaxy_collection.version }} + {% endif %} + {{ metadata.galaxy_info.description }} + {% if ("galaxy_tags" in metadata.galaxy_info) and (metadata.galaxy_info.galaxy_tags | length > 0) %} + Tags: {{ metadata.galaxy_info.galaxy_tags | join(', ') }} + {%- endif %} + + ## Requirements + --- + | Platform | Versions | + | -------- | -------- | + {%- for platform in metadata.galaxy_info.platforms %} + | {{ platform.name }} | {{ platform.versions | default([]) | join(', ') }} | + {%- endfor %} + + ## Supported Operating Systems + + {%- for platform in metadata.galaxy_info.platforms %} + - {{ platform.name }} + {%- if "versions" in platform %} + - {{ platform.versions | default([]) | join(', ') }} + {%- endif %} + {%- endfor %} + + ## Role Variables + {% for entrypoint in argument_specs.keys() %} + {%- set path, options=entrypoint_options[entrypoint][0] -%} + {%- for name, details in options.items() |sort() %} + - `{{ name }}`: + - Default: `{{ details.display_default }}` + - Description: {{ details.display_description }} + - Type: {{ details.display_type }} + - Required: {{ details.display_required }} + {% if details.options -%} + - Options: + {% for key, value in details.options.items() %} + - `{{ key }}`: + - description: + {% for line in value.description %} + - "{{ line }}" + {% endfor %} + {%- if value.choices %} + - Choices: + {%- for choice in value.choices %} + - {{ choice }} + {%- endfor %} + {%- endif %} + - default: "{{ value.default }}" + - type: "{{ value.type }}" + - required: "{{ value.display_required }}" + {% endfor %} + {%- endif %} + {%- endfor %} + {%- endfor %} + + ## Dependencies + + {%- if ("dependencies" in metadata) and (metadata.dependencies | length > 0) %} + {%- for dependency in metadata.dependencies %} + - {{ dependency }} + {%- endfor %} + {%- else %} + + None. + {%- endif %} + + diff --git a/ansible_collections/telekom_mms/icinga_director/CHANGELOG.rst b/ansible_collections/telekom_mms/icinga_director/CHANGELOG.rst index 338e4ad1a..655db019b 100644 --- a/ansible_collections/telekom_mms/icinga_director/CHANGELOG.rst +++ b/ansible_collections/telekom_mms/icinga_director/CHANGELOG.rst @@ -5,6 +5,46 @@ telekom_mms.icinga_director Release Notes .. contents:: Topics +v2.1.2 +====== + +v2.1.1 +====== + +Bugfixes +-------- + +- change notification interval variable to int-type (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/254) +- set user_groups in notification to empty list (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/255) + +v2.1.0 +====== + +Minor Changes +------------- + +- Increase sleep to 5 seconds (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/245) + +v2.0.5 +====== + +v2.0.4 +====== + +v2.0.3 +====== + +v2.0.2 +====== + +v2.0.1 +====== + +Bugfixes +-------- + +- Fixes #190 - Workaround for service apply bug (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/239) + v1.35.0 ======= diff --git a/ansible_collections/telekom_mms/icinga_director/FILES.json b/ansible_collections/telekom_mms/icinga_director/FILES.json index 93627f1e6..9c9f11913 100644 --- a/ansible_collections/telekom_mms/icinga_director/FILES.json +++ b/ansible_collections/telekom_mms/icinga_director/FILES.json @@ -8,388 +8,402 @@ "format": 1 }, { - "name": "CHANGELOG.md", + "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "99d0821e711ba004b27660d12cfedefdbd22714040ad8758da0de2e7e7a6a18b", + "chksum_sha256": "cbd05e65ef1941cf778aa7194150be8aafdfda99574ff76475bccb7dfb40f356", "format": 1 }, { - "name": "renovate.json", + "name": "CHANGELOG.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e711d74edde804d88ffcdb2f07cd04fdb50c088ed7e8733bce44f95b56fba8b4", + "chksum_sha256": "560ba024e6d16a87a027b64a354f7457557e64e2ca459df5a2b80564fcb78aaa", "format": 1 }, { - "name": "LICENSE", + "name": ".aar_doc.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "chksum_sha256": "4553d719d053f16602266cd5b772273391bf7921a7d6540fd903642371b40942", "format": 1 }, { - "name": "meta", + "name": "CONTRIBUTING.md", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "95e2b2b6d356582984f8c830150fcfa1b879807776d24c0111426df8191febca", + "format": 1 + }, + { + "name": ".gitattributes", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2deb48e94193846f3933845436e4b28bd819b7e54f87f713c4e45925e84d645", + "format": 1 + }, + { + "name": "docs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "meta/runtime.yml", + "name": "docs/icinga_notification_template.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7987b97d023a17278e43b9e5977acb7a3717efc4997816565f9471c67e48999e", + "chksum_sha256": "4dba0f64ee219cea065ee72054722622f8011b47958ab0ccaedc3cc3cb3721fa", "format": 1 }, { - "name": "README.md", + "name": "docs/icinga_user_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18b4f88a37545cedf51b2d6bde363654cfe832525217d4c38a8a590a692f0088", + "chksum_sha256": "65f2cc11ca8e564df632609b154f39411402811b0fbbd1b1a6220aeedca56451", "format": 1 }, { - "name": "plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/icinga_timeperiod_info.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "379a46278cad4604604d98b839e88b050db962329a22d9bebc18a3a734c2f2be", "format": 1 }, { - "name": "plugins/inventory", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/icinga_timeperiod_template_info.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "38ea5dca279e66726bfedb9eb906decfef42b60b578eae0c71999dcff2b9ced0", "format": 1 }, { - "name": "plugins/inventory/icinga_director_inventory.py", + "name": "docs/icinga_servicegroup_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afce980e40cd5134fb384d20d89db8b6ed94500cf18afe4a25f201c5d1b33403", + "chksum_sha256": "9a99593e23cb0c744204e4761aae8557dc2e1db7d15d8cfe03dad62a5cd09897", "format": 1 }, { - "name": "plugins/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/icinga_service_info.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2b6272b280c7c9d24908096ae72245c53828cee1497b624192d689c7f2cbf0bb", "format": 1 }, { - "name": "plugins/modules/icinga_user_group.py", + "name": "docs/icinga_hostgroup_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0bbe9b060799897810c637ffacb1b1a723e46b99db928999f1093503cdbdad2e", + "chksum_sha256": "68f3bb8c3bd161b0979580c51f409e58dc53e8d050f6cf2cf92ca94e414fd93e", "format": 1 }, { - "name": "plugins/modules/icinga_user_info.py", + "name": "docs/icinga_host_template_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "581b14244d8c3706e6631780b29f46b0fb89f63cd8b1cbdda5c23c0651e9c3cf", + "chksum_sha256": "b5820cd58abb5fcca940d318f2fe600d596becf192754b1766a9d454fd18e86e", "format": 1 }, { - "name": "plugins/modules/icinga_user_template.py", + "name": "docs/icinga_command_template_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "002207d6493402887a2b66a02ef12cbe09fd5402a62f329089d8572fbb669bcd", + "chksum_sha256": "4fd5b810c23e74381890134eaf332b4c07846fdd8b2c676d0b4604360c0ebf3d", "format": 1 }, { - "name": "plugins/modules/icinga_zone_info.py", + "name": "docs/icinga_endpoint.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "031dab242c365b3aee630abee6448545a818f38430358d3358aa3db5f58c00b2", + "chksum_sha256": "98d4c03cffe0d6ec6996c9fdb02dcd83b11c6fbf5417f1ad3babe465487d845d", "format": 1 }, { - "name": "plugins/modules/icinga_notification_template_info.py", + "name": "docs/icinga_timeperiod_template.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b94210434c4785785f183e94539bad62b7e906abd763cfafc199291324a66a4b", + "chksum_sha256": "2023e5f94e875f8a49c9e6305239c7c9aa2058a25a412fed6ddc8ce140ba423e", "format": 1 }, { - "name": "plugins/modules/icinga_host_template.py", + "name": "docs/icinga_serviceset.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f08ea8599c552ba06ef28fd87223ad3176a5fae73077adc0ff13e1ce5e870d29", + "chksum_sha256": "f00d2d38ace64bfc24ce034ecea861de33fd8cf054da1184721d8a799b22638b", "format": 1 }, { - "name": "plugins/modules/icinga_notification_template.py", + "name": "docs/icinga_notification.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d44a47b755ea484cae1334f8a8904ee38000510e178c1fbc5fa709f0987cd0fd", + "chksum_sha256": "a0b0c2fc93bcb3826801337041212917f7d76fda0509031b9aa459b4041a198c", "format": 1 }, { - "name": "plugins/modules/icinga_service_apply_info.py", + "name": "docs/icinga_service_template_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7b1ef59f8f83ae999174fc5023ebfcf4b831b44356a4704b0d5757d31f9413a", + "chksum_sha256": "26aea36bc17910c713576b95ef1800704a81caec2a2c1f62611085dda8c5a97d", "format": 1 }, { - "name": "plugins/modules/icinga_service_template_info.py", + "name": "docs/icinga_deploy_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "79027979d612de069884ea422b430660c1823ebcbef95872b2ae4b12089f7100", + "chksum_sha256": "04c3b91f6ccc48f19bfc1b2287e97cc15158626e0de4018a359a523858a58847", "format": 1 }, { - "name": "plugins/modules/icinga_service_apply.py", + "name": "docs/icinga_user_template.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39fdca31bf58c5a11d1b6670cb39227b5a5b01fa5b289d7949f50e643937722f", + "chksum_sha256": "b6479d03bff152baef69dbe2db979077248f0c61addf85af0ff8fcd95c45a1df", "format": 1 }, { - "name": "plugins/modules/icinga_endpoint.py", + "name": "docs/icinga_host_template.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b00feba05e27cbe1e62eaf2d99e9293d8f4fcbeb6342811aade18398ef0b66b5", + "chksum_sha256": "3073ef58234d064561bd1c61afd3bf13c155b031ca154813dfe6cf6cea2e8d60", "format": 1 }, { - "name": "plugins/modules/icinga_endpoint_info.py", + "name": "docs/icinga_notification_template_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3fd36c406dd69b24afcbc405f384ce9ccbd509d54a5b7e31eb0023357861258", + "chksum_sha256": "a8c8bf662b23f55fc34fb9354369ac7b551f70efaa21abe4222c77c058817daf", "format": 1 }, { - "name": "plugins/modules/icinga_user_template_info.py", + "name": "docs/icinga_director_inventory.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09015fa2d503a63f75918ebeadf81488d5db96d8003553accd666534e17258ec", + "chksum_sha256": "83eac988b52587241a2e171a655111e58418375e21fd7d82149e1ec4f5014851", "format": 1 }, { - "name": "plugins/modules/icinga_zone.py", + "name": "docs/icinga_command_template.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "68a82be1565b2841b69c20d663ae084c364c517b27531f683024d3f1fb32badd", + "chksum_sha256": "712ceada4873413eaf6f514e7f11204ab84e41fc3fcbf9ba0a848021e180dfdf", "format": 1 }, { - "name": "plugins/modules/icinga_user.py", + "name": "docs/icinga_host_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94cca6809793d50a7716466701bcaadd307b1bf36ae2db1839ed679631936e5d", + "chksum_sha256": "c953507375cbf5d1bd4b727bfcaabd7719f4f7a4489186d1569474e206d395d3", "format": 1 }, { - "name": "plugins/modules/icinga_service_template.py", + "name": "docs/icinga_zone.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7aaf5a8cbe631079be1e54aaa74048ff39a067b9443af9f3e3e706e7e4958e71", + "chksum_sha256": "6698e90afcc560405494f8a5cb15446ad300db0cf43a71b96cc9710fda7c99dd", "format": 1 }, { - "name": "plugins/modules/icinga_host.py", + "name": "docs/icinga_host.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "932cb54002669c25a603ea998dfa3bc5845e025d5362a0afba8f38733fe5a672", + "chksum_sha256": "c84d729e51fed6bb199f22b5d6113118ab4647a55d1b9f98fccdc62ff1bbb312", "format": 1 }, { - "name": "plugins/modules/icinga_command_template_info.py", + "name": "docs/icinga_endpoint_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0552ff8bcecd00973bae4ef9f695ba27cdebd2d806e5341fe2b292b87a7792e2", + "chksum_sha256": "b167b9c55be74dcb839737b6fcac7d4d70f4d4607578c20e4e9d7a57a97ee263", "format": 1 }, { - "name": "plugins/modules/icinga_scheduled_downtime.py", + "name": "docs/.gitkeep", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f156a76ea47beff013a3de0f879aaf7245274c53c1e01355ec7a7c5fc034782f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/icinga_hostgroup.py", + "name": "docs/icinga_timeperiod.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25fe567954b8e78857aad9a889ea0da80f24a9005d2316a1e9b2aa2172fa9947", + "chksum_sha256": "7ef79a953606d7d5745c045cb83db736251d825e377d89c26079b2d919533b80", "format": 1 }, { - "name": "plugins/modules/icinga_servicegroup_info.py", + "name": "docs/icinga_user_group.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d3f9d954c477286c2b789f604da25d116cf850e9e1e14b0ea04b4d755037cac", + "chksum_sha256": "76a7629d4d25a9939f443bdf6d227957b937ea2bc0bce6adabef07c2efff5ce3", "format": 1 }, { - "name": "plugins/modules/icinga_hostgroup_info.py", + "name": "docs/icinga_notification_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e385fdf84e961d6cae5496c59bdc710b8cc8516eaa921d36991b826185423b2", + "chksum_sha256": "8320c94d95451596987f446d4efed37889e03f5b9e6e53b3181791cdf486f639", "format": 1 }, { - "name": "plugins/modules/icinga_host_info.py", + "name": "docs/icinga_deploy.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7c4e5676e867e448abc760dd5480bd064852aff48ebf3b9c644a4032747c2b4", + "chksum_sha256": "6524856305f2d5cda1cff40aa29ce58cd51a12d85a0648dc67c5cf94e81840c7", "format": 1 }, { - "name": "plugins/modules/icinga_notification_info.py", + "name": "docs/icinga_zone_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0acf822f2bfbf15b9a197750457f71117973b92d31a301ddb51d3adc49d5cabe", + "chksum_sha256": "b46356a8245852122b172a2c9daff95947f9996d4119b09d0a3125b6b59b910d", "format": 1 }, { - "name": "plugins/modules/icinga_serviceset.py", + "name": "docs/icinga_user_group_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9cffad89eeb2cc4da1ef1749836025725df751db35fefbcd420e00528f440f71", + "chksum_sha256": "d79cf09e18862e57adf7976bbdfa19c2b8c9e53e89eebc6b8c35a5faab3932ab", "format": 1 }, { - "name": "plugins/modules/icinga_command_info.py", + "name": "docs/icinga_hostgroup.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f3325e7be18fa95480235d7905bc83756c1d958bcfb3e39de047c6aaf37c0d12", + "chksum_sha256": "4dbb0f673fb9bdbc4e200d7789e6c9e31ef767c9d2870dfe411e4b1169f8dfd1", "format": 1 }, { - "name": "plugins/modules/icinga_timeperiod.py", + "name": "docs/icinga_command.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08ff91ecd1d9f0e160bd9b7997cdbc2ebbeb287b77969c8477c30d29d54701b1", + "chksum_sha256": "5af5899a3f95baf28cafe4a262bd5f9351abf27bb1c7543a653a70a4c89574db", "format": 1 }, { - "name": "plugins/modules/icinga_timeperiod_info.py", + "name": "docs/icinga_servicegroup.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f87bfe7a7e6f88867ad916658c4d92d63867179f3e793ff4d800ffc753ac66d5", + "chksum_sha256": "c6b7007f9b9c819d9d8ee38887ed5143da04363c92dff84b6562eb29e3e82c22", "format": 1 }, { - "name": "plugins/modules/icinga_timeperiod_template_info.py", + "name": "docs/icinga_scheduled_downtime.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7ecd6655ff95b53700806d00d09ef2b8d606ad3edcd8c9c5f40b526d6746fbd4", + "chksum_sha256": "eb05d0dcddad62d103030a48fcb2b7be270e44008fc0c7d66c3eeeb965a95c4b", "format": 1 }, { - "name": "plugins/modules/icinga_notification.py", + "name": "docs/icinga_user_template_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a18c8f247b9350f212481a9df6382ffbc040ed12a0215af5c033ff678239508", + "chksum_sha256": "b5abd1e0ef18abe2e48caa887151484b02e35481a57842ee7873987312eba8ac", "format": 1 }, { - "name": "plugins/modules/icinga_service_info.py", + "name": "docs/icinga_service_apply.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef2c457bf40f38f8973a23ed3946e27387a441d0aeb0e0dba3e9a3099bec1782", + "chksum_sha256": "e717a877bf9b007a02e6201a93d787a2764b9fbf179d1d2a4b32f7f58d61662c", "format": 1 }, { - "name": "plugins/modules/icinga_deploy.py", + "name": "docs/icinga_user.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a10712f3ff9598c8ec99609c9ed58c9b6e3afa3b54a9d79149d4cb8451cb2a5", + "chksum_sha256": "f1a9a588e8abdf884c79e963d167d3bbeea6e7ee9c9aa2e855347590e7ec65b8", "format": 1 }, { - "name": "plugins/modules/icinga_host_template_info.py", + "name": "docs/icinga_command_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a916778512b0d6f27f525e2da8280e065a6e06f32fca4325e5164a3f4ff31b6", + "chksum_sha256": "ff12f037d7dc8f6e6e1ee533dac6e89fcefd1b6ec522e6f1bb3a86b1fac549d7", "format": 1 }, { - "name": "plugins/modules/icinga_command_template.py", + "name": "docs/icinga_service_apply_info.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc15ac65064e261663ed9fb329fd4b8bcee60c9a02d1b3f7b0e53ec38060e9b1", + "chksum_sha256": "128ae7c70f7c0a6095bb6eff2fd9e85ac180b0575265c40ef621d611d192f085", "format": 1 }, { - "name": "plugins/modules/icinga_service.py", + "name": "docs/icinga_service_template.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15fa5bed2a8d7c308fb7f95892ad540a764fc57352e2c48f6f57269cadf41333", + "chksum_sha256": "f787870a906543323acf30f41c10df902aa3a04848ffdaff89557f297f91e19d", "format": 1 }, { - "name": "plugins/modules/icinga_user_group_info.py", + "name": "docs/icinga_service.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e5f229cafab5a3d8024752f58e3192082d956aea409f4f4b9dba0f1b2a6371e", + "chksum_sha256": "3b2fdfcc93e1cdf1c5908719c08884b3d48e33bf958686242e9bec9dcea5d852", "format": 1 }, { - "name": "plugins/modules/icinga_command.py", + "name": "CHANGELOG.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4850dd60b1c6557995e0f0a30a2e8e05bfaa3873febfb410e663429585a72707", + "chksum_sha256": "99d0821e711ba004b27660d12cfedefdbd22714040ad8758da0de2e7e7a6a18b", "format": 1 }, { - "name": "plugins/modules/icinga_timeperiod_template.py", + "name": "renovate.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aef9cb6ea2ee9f4a8540da6ef4b0185e9fc8d904e7ec63b4a451a9b78e66d092", + "chksum_sha256": "e711d74edde804d88ffcdb2f07cd04fdb50c088ed7e8733bce44f95b56fba8b4", "format": 1 }, { - "name": "plugins/modules/icinga_deploy_info.py", + "name": "CODEOWNERS", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c15b71eb94e7323670d54a49bbcf74c0f198af9b4418064a86e9465f9b32d49", + "chksum_sha256": "24cd4a61cdbb71f31779fccb0e8cfca894fb02eade70c5c9cee71ae6828d1b58", "format": 1 }, { - "name": "plugins/modules/icinga_servicegroup.py", + "name": ".gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9208341a441e4b47b70dd3ecbbd7749dbe730b327ad582c8e04acc44a258897e", + "chksum_sha256": "0cb2d7d561d8f1feb38146d6c58c6143c7568b624e2ab6cf03ebc6247e35c991", "format": 1 }, { - "name": "plugins/doc_fragments", + "name": "changelogs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/doc_fragments/common_options.py", + "name": "changelogs/.plugin-cache.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4636a41b3a10c7786474a983e2e95c4098b9134c4ea779322639c4907380714e", + "chksum_sha256": "e225ec6a82744ba0692e5df987b9bf94ddcbf9da65236a16ba291528bc789fb9", "format": 1 }, { - "name": "plugins/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "changelogs/config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "abbab66a433f6362c97d2c632af58683642922225a26a1dd7c6a78923d4ab8d8", "format": 1 }, { - "name": "plugins/module_utils/icinga.py", + "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a17012640e0de964ad91678334aafd451c37e18566e4bb852374c764f0e857d8", + "chksum_sha256": "2ec3b1408f299447a0545db3af5352d7805e500126d402052a2a5350d6176cf3", "format": 1 }, { - "name": ".gitattributes", + "name": "LICENSE", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2deb48e94193846f3933845436e4b28bd819b7e54f87f713c4e45925e84d645", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", "format": 1 }, { @@ -406,6 +420,13 @@ "chksum_sha256": null, "format": 1 }, + { + "name": "roles/ansible_icinga/README.md", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b4f92a3f9a28b13ac06e528005998559a6127e397f993786178592f8cbcad953", + "format": 1 + }, { "name": "roles/ansible_icinga/tasks", "ftype": "dir", @@ -417,147 +438,140 @@ "name": "roles/ansible_icinga/tasks/icinga_notification_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b40258afda97cc0a454a143530b109c6859a5e4e18a525ab091c1b06075cc2f", + "chksum_sha256": "3ed510aecab0815ba21273b12109ad176a82109e8d4632fd55cc4a6a1351e950", "format": 1 }, { "name": "roles/ansible_icinga/tasks/icinga_user.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1a71b5185068e8547ba6b5d8b984a89bf2b9aef5a5570fb01187e3308c6be20", + "chksum_sha256": "0a22ae1878b383e50b0ce070f93dea6891ebfb7435ee8418855dc97ebfbf018a", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_endpoint.yml", + "name": "roles/ansible_icinga/tasks/icinga_user_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9bff8ec9f24722912d56fe4aef10678726f43171e75787044ede75fd922f8ed", + "chksum_sha256": "909270ad5fb424847e0c83bcda5b4a1c57594cd84cfa4e1c69163d0bf1647965", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_command.yml", + "name": "roles/ansible_icinga/tasks/icinga_hostgroup.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9dfd5df8e7f84087bfbb6ef993f49bb8db875c8b09496f4c1a62550ee430995", + "chksum_sha256": "0c6b23d97d1a9952ec9c136412169c2aaab0fb6afb5d60f2a284f47170d61976", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_service_apply.yml", + "name": "roles/ansible_icinga/tasks/icinga_command.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d698077d5a521445d4ffb3b99da0b00ca68f4949c74ce52a12c0d46a3dc035a", + "chksum_sha256": "120bc74b88e32236c14c79c883b780bae6a897fd44b326f1a173c33365a236be", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/main.yml", + "name": "roles/ansible_icinga/tasks/icinga_host_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c78b9cb1b47b8fed5166803121a998d0f7cd44bc7840f2a5fb9074dfd7bae6e1", + "chksum_sha256": "7c991233dc5f88dbb383cac233b6555ddcb6aee765de0305bd567ab89d06f680", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_timeperiod.yml", + "name": "roles/ansible_icinga/tasks/icinga_zone.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d93eaf04ff4345e95f5442b8d65736936a65db5bb3bdbdd8c88dcaf800133b62", + "chksum_sha256": "de69367fb15d7a51a9fb5d1efcc639f042745c62c1912715bbcc38e28b2d974b", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_host.yml", + "name": "roles/ansible_icinga/tasks/icinga_notification.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc7a01b09dbc8f55da467561db37a50597fe0f898ca4315b9be142436ed2adb1", + "chksum_sha256": "70c88549773540214c9606974ea596853b65c3ac25e9b89b4f51462e9a49edf2", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_serviceset.yml", + "name": "roles/ansible_icinga/tasks/icinga_scheduled_downtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58759313dc7e005b8305061f763914db20a39d49b355d73d15cd216cd6891edf", + "chksum_sha256": "c08714a38f6614ca9b5f180fa8074a70e664c87ed8bdd3d1fcd7dddfb1c9b10e", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_notification.yml", + "name": "roles/ansible_icinga/tasks/icinga_serviceset.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b070e387a00a888c727fded1c0e606071a3b17d330e2b804e09facf25b489b69", + "chksum_sha256": "b1a5d31ae8f72d61af4f5c2d1748a9a026f13e65270b7433dbb0b797aeac228b", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_scheduled_downtime.yml", + "name": "roles/ansible_icinga/tasks/icinga_command_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64be740615cf8dd41d6fe6e6822c7c1d88996e2d2ff932d758790909f735f547", + "chksum_sha256": "6a863accf72920058f286460f9abba307277807ec979532702f297403035bb8b", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_command_template.yml", + "name": "roles/ansible_icinga/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8557d9101cbc474d273d1a79b36b9267384e815d516c7dc624c259c8ec3c9137", + "chksum_sha256": "8ea7cf03bc7719dd5bbb4b180c3c58f4ea0ff960db5b497b206a3be9aebc0c41", "format": 1 }, { "name": "roles/ansible_icinga/tasks/icinga_service_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3f13bce269bd96b971880d84b12b11ce7ce80ecf9791be1b886e22a92e3e444", + "chksum_sha256": "ca5c61d35dcd4f5d0a5f87549bff8bf49ef7777e94b6f03acca1a1f934f85b88", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_servicegroup.yml", + "name": "roles/ansible_icinga/tasks/icinga_service.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c2a6537dcf570c01b0174c1d2a3ec0617f6e2c3b88a3712f729179dbe042332f", + "chksum_sha256": "e5541f52f89db4d37cd95835c81808ec35d4caaa410e1c65596cc8d6d768242a", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_zone.yml", + "name": "roles/ansible_icinga/tasks/icinga_endpoint.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f60ea308d382cbe5bff05ad356e83642a56311bcab056ab43d3f44bc05aa151", + "chksum_sha256": "4483c6972926b577c2e6c3eac78d751391ecab194a86060a453c280f32b8ed1c", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_hostgroup.yml", + "name": "roles/ansible_icinga/tasks/icinga_host.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec9efa8c517983730ba94a9fb8b2887d7403b3f9a8a4472df659c393943a1fd5", + "chksum_sha256": "36bb7da0f254af2ff2a498450dcfd9d867d1c0529647603d3cc3c25fabdc0e8f", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_service.yml", + "name": "roles/ansible_icinga/tasks/icinga_timeperiod.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1c45c43c43b4a9b5191bd82d7f7af12fea23b278f6824a47fbd92430d0e6b9f", + "chksum_sha256": "97e1ca54f74e56dab1e87e8a69bfc126bb949818bcac01b2217a65996873595b", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_host_template.yml", + "name": "roles/ansible_icinga/tasks/icinga_servicegroup.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df94796dfa810cdeebaedf6d6aff926a5dd561e92d620054edea2caff09bcc77", + "chksum_sha256": "1863a5620567750f71ebe476ee433424eaa0da7727c8000dc166dc6bd27162e6", "format": 1 }, { - "name": "roles/ansible_icinga/tasks/icinga_user_template.yml", + "name": "roles/ansible_icinga/tasks/icinga_service_apply.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e08ecac2e205d4ff1a3824b2053f3c916b124f2c6607b53ae8d7a906e2aa0cde", + "chksum_sha256": "1eb3e2cb19d048f5e37b8c622a6c6ec7fdd731611d3633caaee984f60aea4862", "format": 1 }, { - "name": "roles/ansible_icinga/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "roles/ansible_icinga/meta/main.yml", + "name": "roles/ansible_icinga/tasks/icinga_user_group.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7203a939bb29fcfd6d88a7ecc1a93c75833c8a82ca683a6414356b87906476ff", + "chksum_sha256": "dc35eb0051ce092cc9048472539576d0f8d862f23c2ec4cd221b0bb4c2cc0f27", "format": 1 }, { @@ -571,14 +585,7 @@ "name": "roles/ansible_icinga/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b37f3b9d942e8ef665c760298b361ebf9b1ee62d0ca2f1c8c365b12649cdccef", - "format": 1 - }, - { - "name": "roles/ansible_icinga/README.md", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e67a3d46ad1dcab9da55b04eab44fa386a548027ed182d6e21e5d0d4af324791", + "chksum_sha256": "5ff6af0c5eb2a0a234c2359e4ef5c078dfa16d22b7f18a806829f30cb1c1b36d", "format": 1 }, { @@ -592,371 +599,385 @@ "name": "roles/ansible_icinga/handlers/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8867063615e078327203d9d9a3dc7d49a4544144c4ad87b1e734ea08f658aebb", + "chksum_sha256": "1851c12423d24d98f49fd53cb56da447f2ccb725f280db6969dc3eb30d0b8ea8", "format": 1 }, { - "name": "CODE_OF_CONDUCT.md", + "name": "roles/ansible_icinga/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "roles/ansible_icinga/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14ec928234a7ed52bf8b458d31e4862335111e477e4dbe7fb543686c24115140", + "chksum_sha256": "78562ed7a833674efbe5cde1822727ea75caf3b549500c4b9052c0edd5f63384", "format": 1 }, { - "name": "CODEOWNERS", + "name": "roles/ansible_icinga/meta/argument_specs.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24cd4a61cdbb71f31779fccb0e8cfca894fb02eade70c5c9cee71ae6828d1b58", + "chksum_sha256": "25860ec1fafc849c73719f5cbb52de08d240a80f34b7838a9557aa7f64f548f5", "format": 1 }, { - "name": "docs", + "name": "meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "docs/icinga_serviceset.rst", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f00d2d38ace64bfc24ce034ecea861de33fd8cf054da1184721d8a799b22638b", + "chksum_sha256": "28cccdc20bd762974f58a8cf94c75cf0579034a0ccb7d2018c5693bfe4a3d3b7", "format": 1 }, { - "name": "docs/icinga_host_template_info.rst", + "name": "CODE_OF_CONDUCT.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5820cd58abb5fcca940d318f2fe600d596becf192754b1766a9d454fd18e86e", + "chksum_sha256": "14ec928234a7ed52bf8b458d31e4862335111e477e4dbe7fb543686c24115140", "format": 1 }, { - "name": "docs/.gitkeep", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/icinga_notification_info.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8320c94d95451596987f446d4efed37889e03f5b9e6e53b3181791cdf486f639", + "name": "plugins/module_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/icinga_deploy_info.rst", + "name": "plugins/module_utils/icinga.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04c3b91f6ccc48f19bfc1b2287e97cc15158626e0de4018a359a523858a58847", + "chksum_sha256": "a17012640e0de964ad91678334aafd451c37e18566e4bb852374c764f0e857d8", "format": 1 }, { - "name": "docs/icinga_command_template.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "712ceada4873413eaf6f514e7f11204ab84e41fc3fcbf9ba0a848021e180dfdf", + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/icinga_service_apply_info.rst", + "name": "plugins/modules/icinga_notification.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "128ae7c70f7c0a6095bb6eff2fd9e85ac180b0575265c40ef621d611d192f085", + "chksum_sha256": "731478a58e562235f434eea6157672258d52558a1aec5b541389261f0ae5030a", "format": 1 }, { - "name": "docs/icinga_hostgroup_info.rst", + "name": "plugins/modules/icinga_host_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "68f3bb8c3bd161b0979580c51f409e58dc53e8d050f6cf2cf92ca94e414fd93e", + "chksum_sha256": "6a916778512b0d6f27f525e2da8280e065a6e06f32fca4325e5164a3f4ff31b6", "format": 1 }, { - "name": "docs/icinga_user_info.rst", + "name": "plugins/modules/icinga_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65f2cc11ca8e564df632609b154f39411402811b0fbbd1b1a6220aeedca56451", + "chksum_sha256": "4850dd60b1c6557995e0f0a30a2e8e05bfaa3873febfb410e663429585a72707", "format": 1 }, { - "name": "docs/icinga_timeperiod_info.rst", + "name": "plugins/modules/icinga_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "379a46278cad4604604d98b839e88b050db962329a22d9bebc18a3a734c2f2be", + "chksum_sha256": "581b14244d8c3706e6631780b29f46b0fb89f63cd8b1cbdda5c23c0651e9c3cf", "format": 1 }, { - "name": "docs/icinga_service_info.rst", + "name": "plugins/modules/icinga_user_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b6272b280c7c9d24908096ae72245c53828cee1497b624192d689c7f2cbf0bb", + "chksum_sha256": "6e5f229cafab5a3d8024752f58e3192082d956aea409f4f4b9dba0f1b2a6371e", "format": 1 }, { - "name": "docs/icinga_user.rst", + "name": "plugins/modules/icinga_timeperiod_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1a9a588e8abdf884c79e963d167d3bbeea6e7ee9c9aa2e855347590e7ec65b8", + "chksum_sha256": "7ecd6655ff95b53700806d00d09ef2b8d606ad3edcd8c9c5f40b526d6746fbd4", "format": 1 }, { - "name": "docs/icinga_endpoint.rst", + "name": "plugins/modules/icinga_command_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98d4c03cffe0d6ec6996c9fdb02dcd83b11c6fbf5417f1ad3babe465487d845d", + "chksum_sha256": "f3325e7be18fa95480235d7905bc83756c1d958bcfb3e39de047c6aaf37c0d12", "format": 1 }, { - "name": "docs/icinga_zone.rst", + "name": "plugins/modules/icinga_service_apply_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6698e90afcc560405494f8a5cb15446ad300db0cf43a71b96cc9710fda7c99dd", + "chksum_sha256": "b7b1ef59f8f83ae999174fc5023ebfcf4b831b44356a4704b0d5757d31f9413a", "format": 1 }, { - "name": "docs/icinga_host_template.rst", + "name": "plugins/modules/icinga_zone_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3073ef58234d064561bd1c61afd3bf13c155b031ca154813dfe6cf6cea2e8d60", + "chksum_sha256": "031dab242c365b3aee630abee6448545a818f38430358d3358aa3db5f58c00b2", "format": 1 }, { - "name": "docs/icinga_notification_template_info.rst", + "name": "plugins/modules/icinga_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a8c8bf662b23f55fc34fb9354369ac7b551f70efaa21abe4222c77c058817daf", + "chksum_sha256": "4e416026f92cbb6e21667a8832161748078932cd096a78011ba4b85bca99109b", "format": 1 }, { - "name": "docs/icinga_command_info.rst", + "name": "plugins/modules/icinga_timeperiod_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff12f037d7dc8f6e6e1ee533dac6e89fcefd1b6ec522e6f1bb3a86b1fac549d7", + "chksum_sha256": "f87bfe7a7e6f88867ad916658c4d92d63867179f3e793ff4d800ffc753ac66d5", "format": 1 }, { - "name": "docs/icinga_timeperiod_template_info.rst", + "name": "plugins/modules/icinga_serviceset.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38ea5dca279e66726bfedb9eb906decfef42b60b578eae0c71999dcff2b9ced0", + "chksum_sha256": "9cffad89eeb2cc4da1ef1749836025725df751db35fefbcd420e00528f440f71", "format": 1 }, { - "name": "docs/icinga_notification.rst", + "name": "plugins/modules/icinga_user_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d71f9465eff1f11bae990b23e80481ff472cd8d3ae76df2f737a3d5bcd1c7c6", + "chksum_sha256": "0bbe9b060799897810c637ffacb1b1a723e46b99db928999f1093503cdbdad2e", "format": 1 }, { - "name": "docs/icinga_servicegroup.rst", + "name": "plugins/modules/icinga_endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6b7007f9b9c819d9d8ee38887ed5143da04363c92dff84b6562eb29e3e82c22", + "chksum_sha256": "d3fd36c406dd69b24afcbc405f384ce9ccbd509d54a5b7e31eb0023357861258", "format": 1 }, { - "name": "docs/icinga_deploy.rst", + "name": "plugins/modules/icinga_service_apply.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "083671bd5b35e19249529327624c7d515296b72b4a9441907a6a1bc6986df721", + "chksum_sha256": "70a4feba741119bf2aaa7bcf4f870cd25b6e88f9030b37f8f24f5919ea7d6899", "format": 1 }, { - "name": "docs/icinga_host.rst", + "name": "plugins/modules/icinga_host_template.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c84d729e51fed6bb199f22b5d6113118ab4647a55d1b9f98fccdc62ff1bbb312", + "chksum_sha256": "f08ea8599c552ba06ef28fd87223ad3176a5fae73077adc0ff13e1ce5e870d29", "format": 1 }, { - "name": "docs/icinga_service_template_info.rst", + "name": "plugins/modules/icinga_service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26aea36bc17910c713576b95ef1800704a81caec2a2c1f62611085dda8c5a97d", + "chksum_sha256": "15fa5bed2a8d7c308fb7f95892ad540a764fc57352e2c48f6f57269cadf41333", "format": 1 }, { - "name": "docs/icinga_zone_info.rst", + "name": "plugins/modules/icinga_zone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b46356a8245852122b172a2c9daff95947f9996d4119b09d0a3125b6b59b910d", + "chksum_sha256": "68a82be1565b2841b69c20d663ae084c364c517b27531f683024d3f1fb32badd", "format": 1 }, { - "name": "docs/icinga_user_template_info.rst", + "name": "plugins/modules/icinga_command_template.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5abd1e0ef18abe2e48caa887151484b02e35481a57842ee7873987312eba8ac", + "chksum_sha256": "bc15ac65064e261663ed9fb329fd4b8bcee60c9a02d1b3f7b0e53ec38060e9b1", "format": 1 }, { - "name": "docs/icinga_service.rst", + "name": "plugins/modules/icinga_timeperiod_template.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b2fdfcc93e1cdf1c5908719c08884b3d48e33bf958686242e9bec9dcea5d852", + "chksum_sha256": "aef9cb6ea2ee9f4a8540da6ef4b0185e9fc8d904e7ec63b4a451a9b78e66d092", "format": 1 }, { - "name": "docs/icinga_user_template.rst", + "name": "plugins/modules/icinga_notification_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6479d03bff152baef69dbe2db979077248f0c61addf85af0ff8fcd95c45a1df", + "chksum_sha256": "b94210434c4785785f183e94539bad62b7e906abd763cfafc199291324a66a4b", "format": 1 }, { - "name": "docs/icinga_notification_template.rst", + "name": "plugins/modules/icinga_hostgroup_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4dba0f64ee219cea065ee72054722622f8011b47958ab0ccaedc3cc3cb3721fa", + "chksum_sha256": "8e385fdf84e961d6cae5496c59bdc710b8cc8516eaa921d36991b826185423b2", "format": 1 }, { - "name": "docs/icinga_user_group.rst", + "name": "plugins/modules/icinga_hostgroup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76a7629d4d25a9939f443bdf6d227957b937ea2bc0bce6adabef07c2efff5ce3", + "chksum_sha256": "25fe567954b8e78857aad9a889ea0da80f24a9005d2316a1e9b2aa2172fa9947", "format": 1 }, { - "name": "docs/icinga_endpoint_info.rst", + "name": "plugins/modules/icinga_user_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b167b9c55be74dcb839737b6fcac7d4d70f4d4607578c20e4e9d7a57a97ee263", + "chksum_sha256": "09015fa2d503a63f75918ebeadf81488d5db96d8003553accd666534e17258ec", "format": 1 }, { - "name": "docs/icinga_command.rst", + "name": "plugins/modules/icinga_service_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5af5899a3f95baf28cafe4a262bd5f9351abf27bb1c7543a653a70a4c89574db", + "chksum_sha256": "79027979d612de069884ea422b430660c1823ebcbef95872b2ae4b12089f7100", "format": 1 }, { - "name": "docs/icinga_servicegroup_info.rst", + "name": "plugins/modules/icinga_deploy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a99593e23cb0c744204e4761aae8557dc2e1db7d15d8cfe03dad62a5cd09897", + "chksum_sha256": "8c15b71eb94e7323670d54a49bbcf74c0f198af9b4418064a86e9465f9b32d49", "format": 1 }, { - "name": "docs/icinga_scheduled_downtime.rst", + "name": "plugins/modules/icinga_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb05d0dcddad62d103030a48fcb2b7be270e44008fc0c7d66c3eeeb965a95c4b", + "chksum_sha256": "94cca6809793d50a7716466701bcaadd307b1bf36ae2db1839ed679631936e5d", "format": 1 }, { - "name": "docs/icinga_timeperiod.rst", + "name": "plugins/modules/icinga_notification_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7ef79a953606d7d5745c045cb83db736251d825e377d89c26079b2d919533b80", + "chksum_sha256": "0acf822f2bfbf15b9a197750457f71117973b92d31a301ddb51d3adc49d5cabe", "format": 1 }, { - "name": "docs/icinga_host_info.rst", + "name": "plugins/modules/icinga_servicegroup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c953507375cbf5d1bd4b727bfcaabd7719f4f7a4489186d1569474e206d395d3", + "chksum_sha256": "9208341a441e4b47b70dd3ecbbd7749dbe730b327ad582c8e04acc44a258897e", "format": 1 }, { - "name": "docs/icinga_command_template_info.rst", + "name": "plugins/modules/icinga_host.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4fd5b810c23e74381890134eaf332b4c07846fdd8b2c676d0b4604360c0ebf3d", + "chksum_sha256": "932cb54002669c25a603ea998dfa3bc5845e025d5362a0afba8f38733fe5a672", "format": 1 }, { - "name": "docs/icinga_director_inventory.rst", + "name": "plugins/modules/icinga_command_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83eac988b52587241a2e171a655111e58418375e21fd7d82149e1ec4f5014851", + "chksum_sha256": "0552ff8bcecd00973bae4ef9f695ba27cdebd2d806e5341fe2b292b87a7792e2", "format": 1 }, { - "name": "docs/icinga_hostgroup.rst", + "name": "plugins/modules/icinga_service_template.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4dbb0f673fb9bdbc4e200d7789e6c9e31ef767c9d2870dfe411e4b1169f8dfd1", + "chksum_sha256": "7aaf5a8cbe631079be1e54aaa74048ff39a067b9443af9f3e3e706e7e4958e71", "format": 1 }, { - "name": "docs/icinga_service_template.rst", + "name": "plugins/modules/icinga_user_template.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f787870a906543323acf30f41c10df902aa3a04848ffdaff89557f297f91e19d", + "chksum_sha256": "002207d6493402887a2b66a02ef12cbe09fd5402a62f329089d8572fbb669bcd", "format": 1 }, { - "name": "docs/icinga_user_group_info.rst", + "name": "plugins/modules/icinga_servicegroup_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d79cf09e18862e57adf7976bbdfa19c2b8c9e53e89eebc6b8c35a5faab3932ab", + "chksum_sha256": "3d3f9d954c477286c2b789f604da25d116cf850e9e1e14b0ea04b4d755037cac", "format": 1 }, { - "name": "docs/icinga_service_apply.rst", + "name": "plugins/modules/icinga_timeperiod.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e717a877bf9b007a02e6201a93d787a2764b9fbf179d1d2a4b32f7f58d61662c", + "chksum_sha256": "08ff91ecd1d9f0e160bd9b7997cdbc2ebbeb287b77969c8477c30d29d54701b1", "format": 1 }, { - "name": "docs/icinga_timeperiod_template.rst", + "name": "plugins/modules/icinga_scheduled_downtime.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2023e5f94e875f8a49c9e6305239c7c9aa2058a25a412fed6ddc8ce140ba423e", + "chksum_sha256": "f156a76ea47beff013a3de0f879aaf7245274c53c1e01355ec7a7c5fc034782f", "format": 1 }, { - "name": "changelogs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/icinga_endpoint.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b00feba05e27cbe1e62eaf2d99e9293d8f4fcbeb6342811aade18398ef0b66b5", "format": 1 }, { - "name": "changelogs/.plugin-cache.yaml", + "name": "plugins/modules/icinga_notification_template.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "753a07ef0f7ef12a58c41bd87d838c9c38596847321793a663bb05d81773d27e", + "chksum_sha256": "d44a47b755ea484cae1334f8a8904ee38000510e178c1fbc5fa709f0987cd0fd", "format": 1 }, { - "name": "changelogs/config.yaml", + "name": "plugins/modules/icinga_service_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "abbab66a433f6362c97d2c632af58683642922225a26a1dd7c6a78923d4ab8d8", + "chksum_sha256": "ef2c457bf40f38f8973a23ed3946e27387a441d0aeb0e0dba3e9a3099bec1782", "format": 1 }, { - "name": "changelogs/changelog.yaml", + "name": "plugins/modules/icinga_host_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2517d86911c97e893f0bfe6ec4710bc64af609102160c4fe65bf2855b94228df", + "chksum_sha256": "e7c4e5676e867e448abc760dd5480bd064852aff48ebf3b9c644a4032747c2b4", "format": 1 }, { - "name": "CHANGELOG.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "37b71114a4a2582519b119d06a58096412169169d949fea7160974085fab8ef5", + "name": "plugins/inventory", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": ".gitignore", + "name": "plugins/inventory/icinga_director_inventory.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0cb2d7d561d8f1feb38146d6c58c6143c7568b624e2ab6cf03ebc6247e35c991", + "chksum_sha256": "afce980e40cd5134fb384d20d89db8b6ed94500cf18afe4a25f201c5d1b33403", "format": 1 }, { - "name": "CONTRIBUTING.md", + "name": "plugins/doc_fragments", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/doc_fragments/common_options.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95e2b2b6d356582984f8c830150fcfa1b879807776d24c0111426df8191febca", + "chksum_sha256": "4636a41b3a10c7786474a983e2e95c4098b9134c4ea779322639c4907380714e", "format": 1 }, { @@ -974,276 +995,276 @@ "format": 1 }, { - "name": "examples/icinga_user.yml", + "name": "examples/icinga_timeperiod_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77a4a85033a17a2c01e0b815841b9b6f8a2005b79f79a192d8a7ff79eba88f19", + "chksum_sha256": "251b934cfff8049e8f099e27fab9004770bd5e7e70ab9e05735a58f92dcba8a3", "format": 1 }, { - "name": "examples/icinga_deploy.yml", + "name": "examples/icinga_command_template_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9240a2981ad06b06ab70b1e20f8b723db498cecd8b9da9bc238190dcd5f57b5", + "chksum_sha256": "254be467a7a0cab236214309451b5d4e0d4b3e69174bacbdf9cabdf90ca3a551", "format": 1 }, { - "name": "examples/icinga_service_apply_info.yml", + "name": "examples/icinga_user.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14d8ab6677e86c30b351eecab2a7272c78ac4655986213d3eddcf30859e623d1", + "chksum_sha256": "77a4a85033a17a2c01e0b815841b9b6f8a2005b79f79a192d8a7ff79eba88f19", "format": 1 }, { - "name": "examples/icinga_endpoint.yml", + "name": "examples/icinga_user_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "887165606d68526c02c6bfdbf0eb4645920e4daf39209ddaf45d52f2478604ec", + "chksum_sha256": "911e2d4932b2c32781659ee618b20c8601bc877ac64b60576499816f09b0090e", "format": 1 }, { - "name": "examples/icinga_user_template_info.yml", + "name": "examples/icinga_hostgroup.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b6110eeb12c02697fcece0808700950ac19fe43e3a646ce0f89118dabc81168", + "chksum_sha256": "2f97da7567484286d19828e9400893320a57437db22c48e5c6ac9d42060baa05", "format": 1 }, { - "name": "examples/icinga_command.yml", + "name": "examples/icinga_hostgroup_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6f06fb01b75049349ddfb1e9013f51ec9c4895e7608a14dddf700248bf5d513", + "chksum_sha256": "45e4689ee18180e4eb7b40d3068f97d027dd3fea15ef7d4047472c389ab29b6b", "format": 1 }, { - "name": "examples/icinga_notification_template_info.yml", + "name": "examples/icinga_command.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2809ba95d1af3826a7c9a452b9d3653b3c043b2481d2b97aed755122fbcc25fc", + "chksum_sha256": "a6f06fb01b75049349ddfb1e9013f51ec9c4895e7608a14dddf700248bf5d513", "format": 1 }, { - "name": "examples/icinga_service_apply.yml", + "name": "examples/icinga_notification_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a00a08b1b456f6e894cc8663d210c6047d52a597814297b160615c93164962d1", + "chksum_sha256": "98eef22da0092ff5377fcecca15e1fc0558c503679bc2a3294a765decaacb96e", "format": 1 }, { - "name": "examples/icinga_service_info.yml", + "name": "examples/icinga_host_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "860bc4e5be4715321447a98f302fcc5d0c5b7477261c518fabb7425f906e864b", + "chksum_sha256": "c8f6c22b0e4607397b72ce7547c53e00af67a886defe17803114098454921e24", "format": 1 }, { - "name": "examples/icinga_host_info.yml", + "name": "examples/icinga_timeperiod_template_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "055b91b5c0ee2414d2d98615f347dbd069a78435de77cd9c48920231fa676d99", + "chksum_sha256": "71d222a97afc01aea18d020ac807c0e95b8e4333b6615c46a74da488cde74184", "format": 1 }, { - "name": "examples/icinga_timeperiod.yml", + "name": "examples/icinga_user_template_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13a953f1e4cfe7d03820a103b39b0ccd7c4e0d197589d5eb07bbdc3d25008a08", + "chksum_sha256": "7b6110eeb12c02697fcece0808700950ac19fe43e3a646ce0f89118dabc81168", "format": 1 }, { - "name": "examples/icinga_deploy_info.yml", + "name": "examples/icinga_user_group_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a1b828fbaa900b4f6feb21890e80c3323f7bd7a77bab812c6b54dce83c3e8cf2", + "chksum_sha256": "5bf5d5e38e4495259143cd23953d5c4ab3159d3054f99c999290b3fa26d5c1f1", "format": 1 }, { - "name": "examples/icinga_host_template_info.yml", + "name": "examples/icinga_host_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "346041e0adb668b0804089e625b752ddec705c89d802509ecd91210c7423995c", + "chksum_sha256": "055b91b5c0ee2414d2d98615f347dbd069a78435de77cd9c48920231fa676d99", "format": 1 }, { - "name": "examples/icinga_host.yml", + "name": "examples/icinga_zone.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1c68f146fb672336cf61ef7d479eb627289e4486c1b125ba872dfe50d75468f", + "chksum_sha256": "0c274ef58c679451cad3b66fdeefe6a87b3464e6428aa6d7ffb5c2ca246998f8", "format": 1 }, { - "name": "examples/icinga_command_info.yml", + "name": "examples/icinga_notification.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b74a538c1280f212d6a6472008a257addb0eda43e0fdc6fb1ef90702d5c140e", + "chksum_sha256": "01c0155456e226ab4ad7795f7476da6a33143f7ac58c276f381420433de1a665", "format": 1 }, { - "name": "examples/icinga_serviceset.yml", + "name": "examples/icinga_service_template_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9412f532cfc7d4240833335438e2f76719fdd077e0565d105682feec0ed57077", + "chksum_sha256": "91eb87e231b61a57f0e04e7fdc1f1948d718213d509fafdc525ae641aace21ce", "format": 1 }, { - "name": "examples/icinga_notification_info.yml", + "name": "examples/icinga_service_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98eef22da0092ff5377fcecca15e1fc0558c503679bc2a3294a765decaacb96e", + "chksum_sha256": "860bc4e5be4715321447a98f302fcc5d0c5b7477261c518fabb7425f906e864b", "format": 1 }, { - "name": "examples/icinga_timeperiod_template_info.yml", + "name": "examples/icinga_scheduled_downtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71d222a97afc01aea18d020ac807c0e95b8e4333b6615c46a74da488cde74184", + "chksum_sha256": "d61714d09931ee87e2a1cec25ce88701c7fae920bef878426ac3d07df4cd7f16", "format": 1 }, { - "name": "examples/icinga_hostgroup_info.yml", + "name": "examples/icinga_serviceset.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45e4689ee18180e4eb7b40d3068f97d027dd3fea15ef7d4047472c389ab29b6b", + "chksum_sha256": "9412f532cfc7d4240833335438e2f76719fdd077e0565d105682feec0ed57077", "format": 1 }, { - "name": "examples/icinga_notification.yml", + "name": "examples/icinga_command_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c17cc131bf59ed8a505ca7b13567cb7a5dd98c57ff81a5a04ca49551ec5792d", + "chksum_sha256": "f2e846ba5a592eebb5ea3a2e7a6523086e99f82d9c5a3b513379c23875147405", "format": 1 }, { - "name": "examples/icinga_zone_info.yml", + "name": "examples/icinga_endpoint_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fb9373a0e75af62078dbd18d9bb5707fdc66bdfbf1876d4a2b72a2502053588", + "chksum_sha256": "89b884f7dc89266675d13800795addb80f63926cbc2f1123146e0004ececd715", "format": 1 }, { - "name": "examples/icinga_scheduled_downtime.yml", + "name": "examples/icinga_service_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d61714d09931ee87e2a1cec25ce88701c7fae920bef878426ac3d07df4cd7f16", + "chksum_sha256": "2c5f98d8b8071dd49cb4b5cf6008ca3920fd24aea1402a6acd9833b0df7ac639", "format": 1 }, { - "name": "examples/icinga_servicegroup_info.yml", + "name": "examples/icinga_service.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1e772f1bf28eb3201f3c82caa5ddf9ddf2eb4ff895308be373503d47636b8f4", + "chksum_sha256": "bc284c3dd237b02b1669611668c419e3d750427531ecfccb43eca797d57b9310", "format": 1 }, { - "name": "examples/icinga_command_template.yml", + "name": "examples/icinga_user_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2e846ba5a592eebb5ea3a2e7a6523086e99f82d9c5a3b513379c23875147405", + "chksum_sha256": "263c67b5908ad7a0859e72b8a87cd32455b2c4066038d2ff1b5805c299b0942c", "format": 1 }, { - "name": "examples/icinga_timeperiod_template.yml", + "name": "examples/icinga_endpoint.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33f7082668ee409157785602e8cda28d3925d152ae2e0bfdb6148c3599d01c2c", + "chksum_sha256": "887165606d68526c02c6bfdbf0eb4645920e4daf39209ddaf45d52f2478604ec", "format": 1 }, { - "name": "examples/icinga_service_template.yml", + "name": "examples/icinga_host.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c5f98d8b8071dd49cb4b5cf6008ca3920fd24aea1402a6acd9833b0df7ac639", + "chksum_sha256": "b1c68f146fb672336cf61ef7d479eb627289e4486c1b125ba872dfe50d75468f", "format": 1 }, { - "name": "examples/icinga_servicegroup.yml", + "name": "examples/icinga_deploy_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "57979256402841f081042e1f9b169696b8f34a75ec551feb8676567e99cdc4dd", + "chksum_sha256": "a1b828fbaa900b4f6feb21890e80c3323f7bd7a77bab812c6b54dce83c3e8cf2", "format": 1 }, { - "name": "examples/icinga_command_template_info.yml", + "name": "examples/icinga_service_apply_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "254be467a7a0cab236214309451b5d4e0d4b3e69174bacbdf9cabdf90ca3a551", + "chksum_sha256": "14d8ab6677e86c30b351eecab2a7272c78ac4655986213d3eddcf30859e623d1", "format": 1 }, { - "name": "examples/icinga_timeperiod_info.yml", + "name": "examples/icinga_servicegroup_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "251b934cfff8049e8f099e27fab9004770bd5e7e70ab9e05735a58f92dcba8a3", + "chksum_sha256": "c1e772f1bf28eb3201f3c82caa5ddf9ddf2eb4ff895308be373503d47636b8f4", "format": 1 }, { - "name": "examples/icinga_user_group.yml", + "name": "examples/icinga_timeperiod.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5df4b4776b7c326bc40af161670164798c0f1e2364f10f5600b5bedd6c68a79d", + "chksum_sha256": "13a953f1e4cfe7d03820a103b39b0ccd7c4e0d197589d5eb07bbdc3d25008a08", "format": 1 }, { - "name": "examples/icinga_user_info.yml", + "name": "examples/icinga_command_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "263c67b5908ad7a0859e72b8a87cd32455b2c4066038d2ff1b5805c299b0942c", + "chksum_sha256": "9b74a538c1280f212d6a6472008a257addb0eda43e0fdc6fb1ef90702d5c140e", "format": 1 }, { - "name": "examples/icinga_endpoint_info.yml", + "name": "examples/icinga_servicegroup.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89b884f7dc89266675d13800795addb80f63926cbc2f1123146e0004ececd715", + "chksum_sha256": "57979256402841f081042e1f9b169696b8f34a75ec551feb8676567e99cdc4dd", "format": 1 }, { - "name": "examples/icinga_zone.yml", + "name": "examples/icinga_notification_template_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c274ef58c679451cad3b66fdeefe6a87b3464e6428aa6d7ffb5c2ca246998f8", + "chksum_sha256": "2809ba95d1af3826a7c9a452b9d3653b3c043b2481d2b97aed755122fbcc25fc", "format": 1 }, { - "name": "examples/icinga_user_group_info.yml", + "name": "examples/icinga_host_template_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bf5d5e38e4495259143cd23953d5c4ab3159d3054f99c999290b3fa26d5c1f1", + "chksum_sha256": "346041e0adb668b0804089e625b752ddec705c89d802509ecd91210c7423995c", "format": 1 }, { - "name": "examples/icinga_hostgroup.yml", + "name": "examples/icinga_zone_info.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f97da7567484286d19828e9400893320a57437db22c48e5c6ac9d42060baa05", + "chksum_sha256": "8fb9373a0e75af62078dbd18d9bb5707fdc66bdfbf1876d4a2b72a2502053588", "format": 1 }, { - "name": "examples/icinga_service.yml", + "name": "examples/icinga_timeperiod_template.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc284c3dd237b02b1669611668c419e3d750427531ecfccb43eca797d57b9310", + "chksum_sha256": "33f7082668ee409157785602e8cda28d3925d152ae2e0bfdb6148c3599d01c2c", "format": 1 }, { - "name": "examples/icinga_host_template.yml", + "name": "examples/icinga_deploy.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8f6c22b0e4607397b72ce7547c53e00af67a886defe17803114098454921e24", + "chksum_sha256": "5d2961a15a97f5697909cc23b8b8c0066167bd2d6035d382a38d7be58dd9bbe6", "format": 1 }, { - "name": "examples/icinga_service_template_info.yml", + "name": "examples/icinga_service_apply.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91eb87e231b61a57f0e04e7fdc1f1948d718213d509fafdc525ae641aace21ce", + "chksum_sha256": "a00a08b1b456f6e894cc8663d210c6047d52a597814297b160615c93164962d1", "format": 1 }, { - "name": "examples/icinga_user_template.yml", + "name": "examples/icinga_user_group.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "911e2d4932b2c32781659ee618b20c8601bc877ac64b60576499816f09b0090e", + "chksum_sha256": "5df4b4776b7c326bc40af161670164798c0f1e2364f10f5600b5bedd6c68a79d", "format": 1 } ], diff --git a/ansible_collections/telekom_mms/icinga_director/MANIFEST.json b/ansible_collections/telekom_mms/icinga_director/MANIFEST.json index b357e7be0..27d9786e0 100644 --- a/ansible_collections/telekom_mms/icinga_director/MANIFEST.json +++ b/ansible_collections/telekom_mms/icinga_director/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "telekom_mms", "name": "icinga_director", - "version": "1.35.0", + "version": "2.1.2", "authors": [ "Sebastian Gumprich ", "Lars Krahl " @@ -27,7 +27,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c8dbd31542edb1082a047035d4829f4a60ad8cfdce054933c441ee6ea79d724", + "chksum_sha256": "e553901bd64de5ab9835fed98bb0268a7f12fa0721f7577194c921cfe5d0b280", "format": 1 }, "format": 1 diff --git a/ansible_collections/telekom_mms/icinga_director/README.md b/ansible_collections/telekom_mms/icinga_director/README.md index 199774aee..694672e90 100644 --- a/ansible_collections/telekom_mms/icinga_director/README.md +++ b/ansible_collections/telekom_mms/icinga_director/README.md @@ -34,7 +34,9 @@ Additionally all supported modules have an appropriate `*_info`-module to gather 4. An [inventory plugin](plugins/inventory) to use hosts and groups defined in Icinga as a dynamic inventory. -Required Ansible version: 2.9.10 +Required Ansible version: 2.14.0 + +Recommended Icinga-Director version: 2.11.1 ## Installation @@ -192,6 +194,32 @@ fatal: [localhost]: FAILED! => {"changed": false, "msg": "bad return code while failed: [localhost] => {"ansible_loop_var": "item", "changed": false, "item": "localhost", "msg": "AbstractDigestAuthHandler does not support the following scheme: 'Negotiate'", "status": -1, "url": "https://icinga-director.example.com/director/host?name=foohost"} ``` +## Known Errors with different Director versions + +### Director 1.11.1 + +When creating notifications that contain the `users`-parameter, the task might not be idempotent ([see](https://github.com/Icinga/icingaweb2-module-director/issues/2882)). + +### Director 1.11.0 + +You cannot create usergroups because of invalid property assign_filter ([see](https://github.com/telekom-mms/ansible-collection-icinga-director/issues/228)). + +### Director 1.10.0 + +Existing service apply rule objects cannot be modified ([see](https://github.com/telekom-mms/ansible-collection-icinga-director/issues/190)): + +``` +TASK [Add service apply rule to icinga] ******************************************************************************************** +fatal: [localhost]: FAILED! => {"changed": false, "msg": "exception when deleting: 'id'"} +``` + +### Director 1.9.0 + +When creating service checks, the tasks fails ([see](https://github.com/telekom-mms/ansible-collection-icinga-director/issues/160)): + +``` +failed: [icinga2-master1.localdomain] (item={'name': 'director-generic-service', 'enable_active_checks': True, 'enable_event_handler': True, 'enable_flapping': True, 'enable_notifications': True, 'eanble_passive_checks': True, 'enable_perfdata': True, 'use_agent': True, 'volatile': False}) => {"ansible_loop_var": "item", "changed": false, "item": {"eanble_passive_checks": true, "enable_active_checks": true, "enable_event_handler": true, "enable_flapping": true, "enable_notifications": true, "enable_perfdata": true, "name": "director-generic-service", "use_agent": true, "volatile": false}, "msg": "bad return code while creating: 422. Error message: Trying to recreate icinga_service (\"{\"object_name\":\"director-generic-service\"}\")"} +``` ## Extras diff --git a/ansible_collections/telekom_mms/icinga_director/changelogs/.plugin-cache.yaml b/ansible_collections/telekom_mms/icinga_director/changelogs/.plugin-cache.yaml index 3f683a288..c83c06f3a 100644 --- a/ansible_collections/telekom_mms/icinga_director/changelogs/.plugin-cache.yaml +++ b/ansible_collections/telekom_mms/icinga_director/changelogs/.plugin-cache.yaml @@ -217,4 +217,4 @@ plugins: shell: {} strategy: {} vars: {} -version: 1.35.0 +version: 2.1.2 diff --git a/ansible_collections/telekom_mms/icinga_director/changelogs/changelog.yaml b/ansible_collections/telekom_mms/icinga_director/changelogs/changelog.yaml index ac4912876..f0c52abb2 100644 --- a/ansible_collections/telekom_mms/icinga_director/changelogs/changelog.yaml +++ b/ansible_collections/telekom_mms/icinga_director/changelogs/changelog.yaml @@ -1,288 +1,332 @@ --- ancestor: releases: - 1.18.1: + 2.1.2: changes: trivial: - - add changelogs config so antsibull-changelog can work (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/124) - - use antsichaut and release-drafter for changelog and release generation - (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/122) - release_date: '2021-06-28' - 1.19.0: + - add service_set var to deployment of icinga_services (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/256) + release_date: '2024-04-22' + 2.1.1: changes: - minor_changes: - - add notification_template to role (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/125) + bugfixes: + - set user_groups in notification to empty list (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/255) + - change notification interval variable to int-type (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/254) trivial: - - add Inventory plugin (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/127) - - add changelogs config so antsibull-changelog can work (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/124) - - ignore changelogs directory created by a 3rd party tool (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/126) - - use antsichaut and release-drafter for changelog and release generation - (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/122) - release_date: '2021-06-28' - 1.20.0: + - update tested ansible and python versions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/253) + - Update ansible-community/ansible-test-gh-action action to v1.15.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/252) + - Update github/codeql-action digest to df5a14d (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/251) + - Update github/codeql-action digest to 47b3d88 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/250) + - document known errors for different director versions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/249) + release_date: '2024-02-14' + 2.1.0: changes: minor_changes: - - Add some more documentation on command template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/128) - - add "vars" variable to icinga_notification in the role (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/129) - release_date: '2021-07-16' - 1.20.1: + - Increase sleep to 5 seconds (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/245) + release_date: '2024-02-13' + 2.0.5: + release_date: '2024-02-12' + 2.0.4: + release_date: '2024-02-12' + 2.0.3: + release_date: '2024-02-12' + 2.0.2: changes: trivial: - - Docs and tests update (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/131) - release_date: '2021-08-05' - 1.21.0: - changes: - minor_changes: - - Add event_command parameter to icinga_service_apply module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/132) - - Add event_command parameter to service apply playbook to enable usage (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/133) - trivial: - - Docs and tests update (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/131) - release_date: '2021-08-16' - 1.21.1: + - add 1.11.1 to test-matrix (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/247) + - Update release-drafter/release-drafter action to v6 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/244) + - release only on releases, not pre-releases (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/237) + release_date: '2024-01-25' + 2.0.1: changes: bugfixes: - - Changed place in the creation order of service object in ansible_icinga - role (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/135) - release_date: '2021-08-30' - 1.21.2: - changes: + - 'Fixes #190 - Workaround for service apply bug (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/239)' trivial: - - 'Draft: updated retry pull request (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/139)' - - added 3 retries for every playbook (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/138) - release_date: '2021-09-13' - 1.22.0: + - Add optional parameters to deploy handler (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/243) + - test different director versions with the services function (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/240) + - use antsichaut action (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/238) + release_date: '2024-01-25' + 1.35.0: changes: minor_changes: - - Add support for retry_interval and max_check_attempts to host template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/140) + - Extended docs and examples for multiple assign_filter conditions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/227) trivial: - - 'Draft: updated retry pull request (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/139)' - - added 3 retries for every playbook (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/138) - release_date: '2021-09-15' - 1.22.1: + - exclude old python versions with ansible devel (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/225) + - Update actions/checkout action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/224) + - Update test matrix (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/223) + release_date: '2023-11-13' + 1.34.2: changes: trivial: - - added missing parameter to notification task (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/141) - - ansible-test needs python >= 3.8 at the controller (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/142) - release_date: '2021-09-17' - 1.23.0: - release_date: '2021-09-23' - 1.23.1: + - exclude old python versions with ansible devel (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/225) + - Update actions/checkout action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/224) + - Update test matrix (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/223) + release_date: '2023-08-07' + 1.34.1: + changes: + bugfixes: + - add more http-options for inventory module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/221) + release_date: '2023-07-28' + 1.33.3: changes: minor_changes: - - add resolve option to inventory-plugin (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/147) + - add command_endpoint var for service templates (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/222) + release_date: '2023-07-14' + 1.33.2: + changes: trivial: - - add documentation files and creation-workflow to repo (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/144) - - improve autogenerated documentation (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/145) - release_date: '2021-10-18' - 1.25.0: + - move orga (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/216) + - run CI-tests only once peer week (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/215) + release_date: '2023-06-09' + 1.33.1: changes: bugfixes: - - added a fix for the new scheduled_downtime module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/150) + - add icinga_deploy_* to action_group and test it (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/214) + trivial: + - Update README (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/211) + release_date: '2023-05-22' + 1.33.0: + changes: minor_changes: - - Add Icinga scheduled downtime module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/146) - release_date: '2021-11-22' - 1.25.1: + - Add Icinga Deploy handler and module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/205) + trivial: + - use codespell to improve spelling (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/207) + - Update actions/checkout action to v3.5.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/206) + modules: + - description: Trigger deployment in Icinga2 + name: icinga_deploy + namespace: '' + - description: Get deployment information through the director API + name: icinga_deploy_info + namespace: '' + release_date: '2023-05-22' + 1.32.3: changes: trivial: - - added duration into our scheduled_downtime task (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/151) - - fix call url function (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/154) - release_date: '2021-11-24' - 1.26.0: + - use codespell to improve spelling (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/207) + - Update actions/checkout action to v3.5.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/206) + release_date: '2023-03-09' + 1.32.2: changes: - minor_changes: - - add option to append arguments to all modules (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/153) trivial: - - added duration into our scheduled_downtime task (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/151) - - fix call url function (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/154) - release_date: '2021-12-03' - 1.27.0: + - lowercase some more bools (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/204) + release_date: '2023-03-07' + 1.32.1: + changes: + trivial: + - Consider true/false in docs for boolean (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/203) + - immediately return values and update dict-updates (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/199) + release_date: '2023-01-20' + 1.32.0: changes: minor_changes: - - Add possibility to use Compose and keyed groups in inventory-module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/155) - release_date: '2022-01-03' - 1.27.1: + - Add zone to user and notification template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/198) + trivial: + - Update ansible-test to latest collection template. (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/195) + - Update actions/checkout action to v3.2.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/194) + - Update ansible-community/ansible-test-gh-action action to v1.12.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/192) + - add galaxy.yml to yamllinting (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/191) + release_date: '2023-01-06' + 1.31.5: changes: trivial: - - fixed missing property 'display_name' in module 'icinga_service' (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/157) - release_date: '2022-02-15' - 1.27.2: + - Update ansible-test to latest collection template. (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/195) + - Update actions/checkout action to v3.2.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/194) + - Update ansible-community/ansible-test-gh-action action to v1.12.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/192) + - add galaxy.yml to yamllinting (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/191) + release_date: '2022-11-15' + 1.31.4: + release_date: '2022-11-04' + 1.31.3: + release_date: '2022-11-04' + 1.31.2: + release_date: '2022-11-04' + 1.31.1: changes: trivial: - - Fix sanity tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/159) - release_date: '2022-03-19' - 1.28.0: + - add empty default to argument docs (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/188) + - Update ansible-community/ansible-test-gh-action action to v1.11.1 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/186) + - Update ansible-community/ansible-test-gh-action action to v1.11.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/185) + - Update actions/checkout action to v3.1.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/184) + - fix problems found by refurb (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/183) + - Update ansible-community/ansible-test-gh-action action to v1.10.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/182) + - add ansible 2.14 to test-matrix, use new gh-action for tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/181) + release_date: '2022-08-22' + 1.31.0: changes: - bugfixes: - - 'role: add check_command to icinga_service_apply (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/161)' minor_changes: - - Added missing fields to 'icinga_host' and 'icinga_host_template' (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/158) + - Add flapping support to service template module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/180) + - Add icon support to service template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/179) + release_date: '2022-08-22' + 1.30.2: + release_date: '2022-08-02' + 1.30.1: + changes: + bugfixes: + - Add exception handling to diff and exist functions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/176) trivial: - - Fix sanity tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/159) - release_date: '2022-03-28' - 1.28.1: + - update list of ansible and python versions to be tested (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/178) + - update python-version for ansible-lint in tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/177) + release_date: '2022-07-01' + 1.30.0: changes: minor_changes: - - Test more ansible versions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/162) + - Add action_group to enable module default groups (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/175) trivial: - - Configure Renovate (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/164) - - 'chore(deps): update actions/checkout action (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/168)' - - 'chore(deps): update actions/setup-python action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/169)' - - 'chore(deps): update codecov/codecov-action action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/170)' - - 'chore(deps): update github-actions-x/commit action to v2.9 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/166)' - release_date: '2022-03-30' + - fix release workflow (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/174) + - 'chore(deps): update actions/setup-python action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/173)' + - 'chore(deps): update github/codeql-action action to v2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/172)' + - 'chore(deps): update actions/checkout action to v3.0.2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/171)' + release_date: '2022-06-16' + 1.29.1: + changes: + trivial: + - fix release workflow (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/174) + - 'chore(deps): update actions/setup-python action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/173)' + - 'chore(deps): update github/codeql-action action to v2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/172)' + - 'chore(deps): update actions/checkout action to v3.0.2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/171)' + release_date: '2022-04-21' 1.29.0: changes: minor_changes: - Add icinga_serviceset module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/163) - Test more ansible versions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/162) trivial: - - Configure Renovate (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/164) - - 'chore(deps): update actions/checkout action (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/168)' - - 'chore(deps): update actions/setup-python action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/169)' - 'chore(deps): update codecov/codecov-action action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/170)' + - 'chore(deps): update actions/setup-python action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/169)' + - 'chore(deps): update actions/checkout action (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/168)' - 'chore(deps): update github-actions-x/commit action to v2.9 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/166)' + - Configure Renovate (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/164) modules: - description: Manage servicesets in Icinga2 name: icinga_serviceset namespace: '' release_date: '2022-04-20' - 1.29.1: + 1.28.1: changes: + minor_changes: + - Test more ansible versions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/162) trivial: - - 'chore(deps): update actions/checkout action to v3.0.2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/171)' - - 'chore(deps): update actions/setup-python action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/173)' - - 'chore(deps): update github/codeql-action action to v2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/172)' - - fix release workflow (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/174) - release_date: '2022-04-21' - 1.30.0: + - 'chore(deps): update codecov/codecov-action action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/170)' + - 'chore(deps): update actions/setup-python action to v3 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/169)' + - 'chore(deps): update actions/checkout action (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/168)' + - 'chore(deps): update github-actions-x/commit action to v2.9 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/166)' + - Configure Renovate (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/164) + release_date: '2022-03-30' + 1.28.0: changes: + bugfixes: + - 'role: add check_command to icinga_service_apply (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/161)' minor_changes: - - Add action_group to enable module default groups (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/175) + - Added missing fields to 'icinga_host' and 'icinga_host_template' (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/158) trivial: - - 'chore(deps): update actions/checkout action to v3.0.2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/171)' - - 'chore(deps): update actions/setup-python action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/173)' - - 'chore(deps): update github/codeql-action action to v2 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/172)' - - fix release workflow (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/174) - release_date: '2022-06-16' - 1.30.1: + - Fix sanity tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/159) + release_date: '2022-03-28' + 1.27.2: changes: - bugfixes: - - Add exception handling to diff and exist functions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/176) trivial: - - update list of ansible and python versions to be tested (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/178) - - update python-version for ansible-lint in tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/177) - release_date: '2022-07-01' - 1.30.2: - release_date: '2022-08-02' - 1.31.0: + - Fix sanity tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/159) + release_date: '2022-03-19' + 1.27.1: + changes: + trivial: + - fixed missing property 'display_name' in module 'icinga_service' (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/157) + release_date: '2022-02-15' + 1.27.0: changes: minor_changes: - - Add flapping support to service template module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/180) - - Add icon support to service template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/179) - release_date: '2022-08-22' - 1.31.1: + - Add possibility to use Compose and keyed groups in inventory-module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/155) + release_date: '2022-01-03' + 1.26.0: changes: + minor_changes: + - add option to append arguments to all modules (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/153) trivial: - - Update actions/checkout action to v3.1.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/184) - - Update ansible-community/ansible-test-gh-action action to v1.10.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/182) - - Update ansible-community/ansible-test-gh-action action to v1.11.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/185) - - Update ansible-community/ansible-test-gh-action action to v1.11.1 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/186) - - add ansible 2.14 to test-matrix, use new gh-action for tests (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/181) - - add empty default to argument docs (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/188) - - fix problems found by refurb (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/183) - release_date: '2022-08-22' - 1.31.2: - release_date: '2022-11-04' - 1.31.3: - release_date: '2022-11-04' - 1.31.4: - release_date: '2022-11-04' - 1.31.5: + - fix call url function (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/154) + - added duration into our scheduled_downtime task (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/151) + release_date: '2021-12-03' + 1.25.1: changes: trivial: - - Update actions/checkout action to v3.2.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/194) - - Update ansible-community/ansible-test-gh-action action to v1.12.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/192) - - Update ansible-test to latest collection template. (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/195) - - add galaxy.yml to yamllinting (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/191) - release_date: '2022-11-15' - 1.32.0: + - fix call url function (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/154) + - added duration into our scheduled_downtime task (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/151) + release_date: '2021-11-24' + 1.25.0: changes: + bugfixes: + - added a fix for the new scheduled_downtime module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/150) minor_changes: - - Add zone to user and notification template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/198) - trivial: - - Update actions/checkout action to v3.2.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/194) - - Update ansible-community/ansible-test-gh-action action to v1.12.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/192) - - Update ansible-test to latest collection template. (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/195) - - add galaxy.yml to yamllinting (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/191) - release_date: '2023-01-06' - 1.32.1: + - Add Icinga scheduled downtime module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/146) + release_date: '2021-11-22' + 1.23.1: changes: + minor_changes: + - add resolve option to inventory-plugin (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/147) trivial: - - Consider true/false in docs for boolean (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/203) - - immediately return values and update dict-updates (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/199) - release_date: '2023-01-20' - 1.32.2: + - improve autogenerated documentation (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/145) + - add documentation files and creation-workflow to repo (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/144) + release_date: '2021-10-18' + 1.23.0: + release_date: '2021-09-23' + 1.22.1: changes: trivial: - - lowercase some more bools (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/204) - release_date: '2023-03-07' - 1.32.3: + - ansible-test needs python >= 3.8 at the controller (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/142) + - added missing parameter to notification task (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/141) + release_date: '2021-09-17' + 1.22.0: changes: + minor_changes: + - Add support for retry_interval and max_check_attempts to host template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/140) trivial: - - Update actions/checkout action to v3.5.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/206) - - use codespell to improve spelling (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/207) - release_date: '2023-03-09' - 1.33.0: + - 'Draft: updated retry pull request (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/139)' + - added 3 retries for every playbook (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/138) + release_date: '2021-09-15' + 1.21.2: changes: - minor_changes: - - Add Icinga Deploy handler and module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/205) trivial: - - Update actions/checkout action to v3.5.0 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/206) - - use codespell to improve spelling (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/207) - modules: - - description: Trigger deployment in Icinga2 - name: icinga_deploy - namespace: '' - - description: Get deployment information through the director API - name: icinga_deploy_info - namespace: '' - release_date: '2023-05-22' - 1.33.1: + - 'Draft: updated retry pull request (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/139)' + - added 3 retries for every playbook (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/138) + release_date: '2021-09-13' + 1.21.1: changes: bugfixes: - - add icinga_deploy_* to action_group and test it (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/214) + - Changed place in the creation order of service object in ansible_icinga + role (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/135) + release_date: '2021-08-30' + 1.21.0: + changes: + minor_changes: + - Add event_command parameter to service apply playbook to enable usage (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/133) + - Add event_command parameter to icinga_service_apply module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/132) trivial: - - Update README (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/211) - release_date: '2023-05-22' - 1.33.2: + - Docs and tests update (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/131) + release_date: '2021-08-16' + 1.20.1: changes: trivial: - - move orga (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/216) - - run CI-tests only once peer week (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/215) - release_date: '2023-06-09' - 1.33.3: + - Docs and tests update (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/131) + release_date: '2021-08-05' + 1.20.0: changes: minor_changes: - - add command_endpoint var for service templates (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/222) - release_date: '2023-07-14' - 1.34.1: - changes: - bugfixes: - - add more http-options for inventory module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/221) - release_date: '2023-07-28' - 1.34.2: + - add "vars" variable to icinga_notification in the role (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/129) + - Add some more documentation on command template (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/128) + release_date: '2021-07-16' + 1.19.0: changes: + minor_changes: + - add notification_template to role (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/125) trivial: - - Update actions/checkout action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/224) - - Update test matrix (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/223) - - exclude old python versions with ansible devel (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/225) - release_date: '2023-08-07' - 1.35.0: + - add Inventory plugin (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/127) + - ignore changelogs directory created by a 3rd party tool (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/126) + - add changelogs config so antsibull-changelog can work (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/124) + - use antsichaut and release-drafter for changelog and release generation + (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/122) + release_date: '2021-06-28' + 1.18.1: changes: - minor_changes: - - Extended docs and examples for multiple assign_filter conditions (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/227) trivial: - - Update test matrix (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/223) - - exclude old python versions with ansible devel (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/225) - - Update actions/checkout action to v4 (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/224) - release_date: '2023-11-13' + - add changelogs config so antsibull-changelog can work (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/124) + - use antsichaut and release-drafter for changelog and release generation + (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/122) + release_date: '2021-06-28' diff --git a/ansible_collections/telekom_mms/icinga_director/docs/icinga_deploy.rst b/ansible_collections/telekom_mms/icinga_director/docs/icinga_deploy.rst index b436f54c9..9fc59ee26 100644 --- a/ansible_collections/telekom_mms/icinga_director/docs/icinga_deploy.rst +++ b/ansible_collections/telekom_mms/icinga_director/docs/icinga_deploy.rst @@ -22,6 +22,10 @@ Trigger a deployment to Icinga2 through the director API. Parameters ---------- + timeout (optional, int, 2) + Default timeout to wait for deployment to finish in seconds. + + url (True, str, None) HTTP, HTTPS, or FTP URL in the form (http|https|ftp)://[user[:pass]]@host.domain[:port]/path @@ -100,6 +104,7 @@ Examples url: "{{ icinga_url }}" url_username: "{{ icinga_user }}" url_password: "{{ icinga_pass }}" + timeout: 5 diff --git a/ansible_collections/telekom_mms/icinga_director/docs/icinga_notification.rst b/ansible_collections/telekom_mms/icinga_director/docs/icinga_notification.rst index 9e1625a7f..d6b63da94 100644 --- a/ansible_collections/telekom_mms/icinga_director/docs/icinga_notification.rst +++ b/ansible_collections/telekom_mms/icinga_director/docs/icinga_notification.rst @@ -30,7 +30,7 @@ Parameters Name of the notification. - notification_interval (optional, str, None) + notification_interval (optional, int, None) The notification interval (in seconds). This interval is used for active notifications. Defaults to 30 minutes. If set to 0, re-notifications are disabled. @@ -90,7 +90,7 @@ Parameters When the last notification should be sent. - user_groups (optional, list, None) + user_groups (optional, list, []) User Groups that should be notified by this notification. @@ -190,7 +190,7 @@ Examples assign_filter: 'host.name="foohost"' imports: - foonotificationtemplate - notification_interval: '0' + notification_interval: 0 object_name: E-Mail_host states: - Up @@ -207,6 +207,28 @@ Examples times_begin: 20 times_end: 120 + - name: Create another notification + telekom_mms.icinga_director.icinga_notification: + state: present + url: "{{ icinga_url }}" + url_username: "{{ icinga_user }}" + url_password: "{{ icinga_pass }}" + apply_to: host + assign_filter: 'host.name="foohost"' + imports: + - foonotificationtemplate + notification_interval: 0 + object_name: E-Mail_host + states: + - Up + - Down + types: + - Problem + - Recovery + users: + - rb + time_period: "24/7" + - name: Update notification telekom_mms.icinga_director.icinga_notification: state: present diff --git a/ansible_collections/telekom_mms/icinga_director/examples/icinga_deploy.yml b/ansible_collections/telekom_mms/icinga_director/examples/icinga_deploy.yml index 017ab6b2c..9d823d10c 100644 --- a/ansible_collections/telekom_mms/icinga_director/examples/icinga_deploy.yml +++ b/ansible_collections/telekom_mms/icinga_director/examples/icinga_deploy.yml @@ -4,3 +4,4 @@ url: "{{ icinga_url }}" url_username: "{{ icinga_user }}" url_password: "{{ icinga_pass }}" + timeout: 5 diff --git a/ansible_collections/telekom_mms/icinga_director/examples/icinga_notification.yml b/ansible_collections/telekom_mms/icinga_director/examples/icinga_notification.yml index c19cfe547..09077cb41 100644 --- a/ansible_collections/telekom_mms/icinga_director/examples/icinga_notification.yml +++ b/ansible_collections/telekom_mms/icinga_director/examples/icinga_notification.yml @@ -9,7 +9,7 @@ assign_filter: 'host.name="foohost"' imports: - foonotificationtemplate - notification_interval: '0' + notification_interval: 0 object_name: E-Mail_host states: - Up @@ -25,6 +25,27 @@ time_period: "24/7" times_begin: 20 times_end: 120 +- name: Create another notification + telekom_mms.icinga_director.icinga_notification: + state: present + url: "{{ icinga_url }}" + url_username: "{{ icinga_user }}" + url_password: "{{ icinga_pass }}" + apply_to: host + assign_filter: 'host.name="foohost"' + imports: + - foonotificationtemplate + notification_interval: 0 + object_name: E-Mail_host + states: + - Up + - Down + types: + - Problem + - Recovery + users: + - rb + time_period: "24/7" - name: Update notification telekom_mms.icinga_director.icinga_notification: state: present diff --git a/ansible_collections/telekom_mms/icinga_director/meta/runtime.yml b/ansible_collections/telekom_mms/icinga_director/meta/runtime.yml index 6d1ae61a8..96f7fcac9 100644 --- a/ansible_collections/telekom_mms/icinga_director/meta/runtime.yml +++ b/ansible_collections/telekom_mms/icinga_director/meta/runtime.yml @@ -1,5 +1,5 @@ --- -requires_ansible: '>=2.9.10' +requires_ansible: ">=2.14.0" action_groups: icinga: diff --git a/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_deploy.py b/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_deploy.py index 08abc7b4f..a5ab24b7a 100644 --- a/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_deploy.py +++ b/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_deploy.py @@ -32,6 +32,12 @@ version_added: '1.33.0' extends_documentation_fragment: - ansible.builtin.url - telekom_mms.icinga_director.common_options +options: + timeout: + description: + - Default timeout to wait for deployment to finish in seconds. + default: 2 + type: int """ EXAMPLES = """ @@ -40,6 +46,7 @@ EXAMPLES = """ url: "{{ icinga_url }}" url_username: "{{ icinga_user }}" url_password: "{{ icinga_pass }}" + timeout: 5 """ RETURN = r""" @@ -71,6 +78,7 @@ def main(): # add our own arguments argument_spec.update( url=dict(required=True), + timeout=dict(required=False, default=2, type="int") ) # Define the main module @@ -92,8 +100,8 @@ def main(): icinga_deployment = Icinga2APIObject(module=module, path="/config/deploy", data=[]) result = icinga_deployment.create() # the deployment is asynchronous and I don't know of a way to check if it is finished. - # so we need some sleep here. 2 seconds is a wild guess. - sleep(2) + # so we need some sleep here. 2 seconds is a wild guess and a default, now it is a variable + sleep(module.params["timeout"]) # get the new deployment status create_deployment = icinga_deploy_status.query_deployment()["data"]["active_configuration"]["config"] diff --git a/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_notification.py b/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_notification.py index 9d100ef75..7e657edf6 100644 --- a/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_notification.py +++ b/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_notification.py @@ -40,18 +40,18 @@ options: - Apply feature state. choices: [ "present", "absent" ] default: present - type: str + type: "str" object_name: description: - Name of the notification. aliases: ['name'] required: true - type: str + type: "str" notification_interval: description: - The notification interval (in seconds). This interval is used for active notifications. - Defaults to 30 minutes. If set to 0, re-notifications are disabled. - type: str + type: "int" types: description: - The state transition types you want to get notifications for. @@ -72,7 +72,7 @@ options: description: - Whether this notification should affect hosts or services. - Required if I(state) is C(present). - type: str + type: "str" choices: ["host", "service"] assign_filter: description: @@ -121,13 +121,14 @@ options: - User Groups that should be notified by this notification. type: "list" elements: str + default: [] version_added: '1.16.0' append: 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 + type: "bool" choices: [true, false] version_added: '1.25.0' """ @@ -143,7 +144,7 @@ EXAMPLES = """ assign_filter: 'host.name="foohost"' imports: - foonotificationtemplate - notification_interval: '0' + notification_interval: 0 object_name: E-Mail_host states: - Up @@ -160,6 +161,28 @@ EXAMPLES = """ times_begin: 20 times_end: 120 +- name: Create another notification + telekom_mms.icinga_director.icinga_notification: + state: present + url: "{{ icinga_url }}" + url_username: "{{ icinga_user }}" + url_password: "{{ icinga_pass }}" + apply_to: host + assign_filter: 'host.name="foohost"' + imports: + - foonotificationtemplate + notification_interval: 0 + object_name: E-Mail_host + states: + - Up + - Down + types: + - Problem + - Recovery + users: + - rb + time_period: "24/7" + - name: Update notification telekom_mms.icinga_director.icinga_notification: state: present @@ -200,10 +223,10 @@ def main(): disabled=dict( type="bool", required=False, default=False, choices=[True, False] ), - notification_interval=dict(required=False), + notification_interval=dict(type="int", required=False), states=dict(type="list", elements="str", required=False), users=dict(type="list", elements="str", required=False), - user_groups=dict(type="list", elements="str", required=False), + user_groups=dict(type="list", elements="str", default=[], required=False), types=dict(type="list", elements="str", required=False), vars=dict(type="dict", default={}, required=False), period=dict(required=False, aliases=["time_period"]), diff --git a/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_service_apply.py b/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_service_apply.py index e5b5cba2d..7ee8a7a52 100644 --- a/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_service_apply.py +++ b/ansible_collections/telekom_mms/icinga_director/plugins/modules/icinga_service_apply.py @@ -251,6 +251,8 @@ from ansible_collections.telekom_mms.icinga_director.plugins.module_utils.icinga # Icinga2 API class # class ServiceApplyRule(Icinga2APIObject): + find_by_parameter = None + def __init__(self, module, data): path = "/service" super(ServiceApplyRule, self).__init__(module, path, data) @@ -260,18 +262,22 @@ class ServiceApplyRule(Icinga2APIObject): if ret["code"] == 200: for existing_rule in ret["data"]["objects"]: if existing_rule["object_name"] == self.data["object_name"]: - self.object_id = existing_rule["id"] + if "uuid" in existing_rule and existing_rule["uuid"] is not None: + self.find_by_parameter = "uuid" + else: + self.find_by_parameter = "id" + self.object_id = existing_rule[self.find_by_parameter] return self.object_id return False def delete(self): - return super(ServiceApplyRule, self).delete(find_by="id") + return super(ServiceApplyRule, self).delete(find_by=self.find_by_parameter) def modify(self): - return super(ServiceApplyRule, self).modify(find_by="id") + return super(ServiceApplyRule, self).modify(find_by=self.find_by_parameter) def diff(self): - return super(ServiceApplyRule, self).diff(find_by="id") + return super(ServiceApplyRule, self).diff(find_by=self.find_by_parameter) # =========================================== diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/README.md b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/README.md index d71b97c74..767e69622 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/README.md +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/README.md @@ -1,239 +1,2064 @@ -# Ansible Icinga + +# Ansible Role: telekom_mms.icinga_director.ansible_icinga +--- +Version: 1.35.0 This role is used to configure an Icinga Instance over its Icinga Director. -## Installation - -* create a `requirements.yml`: +Tags: icinga -```bash +## Requirements --- -collections: - - name: telekom_mms.icinga_director - src: https://github.com/telekom_mms/ansible-collection-icinga-director - version: 1.2.2 -``` +| Platform | Versions | +| -------- | -------- | +| all | | -* install the collections: +## Supported Operating Systems +- all -```bash -ansible-galaxy collection install -r requirements.yml -p collections/ -``` +## Role Variables + +- `icinga_command_templates`: + - Default: `` + - Description: A list of Icinga command_templat to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `command`: + - description: + + - "The command Icinga should run." + + - "Absolute paths are accepted as provided, relative paths are prefixed with "PluginDir + ", similar Constant prefixes are allowed." + + - "Spaces will lead to separation of command path and standalone arguments." + + - "Please note that this means that we do not support spaces in plugin names and paths right now." + + - default: "" + - type: "str" + - required: "no" + + - `command_type`: + - description: + + - "Plugin Check commands are what you need when running checks against your infrastructure." + + - "Notification commands will be used when it comes to notify your users." + + - "Event commands allow you to trigger specific actions when problems occur." + + - "Some people use them for auto-healing mechanisms, like restarting services or rebooting systems at specific thresholds." + + - Choices: + - PluginCheck + - PluginNotification + - PluginEvent + - default: "PluginCheck" + - type: "str" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + + - `name`: + - description: + + - "Name of the command template." + + - default: "" + - type: "str" + - required: "yes" + + - `imports`: + - description: + + - "Importable templates, add as many as you want. Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `timeout`: + - description: + + - "Optional command timeout. Allowed values are seconds or durations postfixed with a specific unit (for example 1m or also 3m 30s)." + + - default: "" + - type: "str" + - required: "no" + + - `zone`: + - description: + + - "Icinga cluster zone. Allows to manually override Directors decisions of where to deploy your config to." + + - "You should consider not doing so unless you gained deep understanding of how an Icinga Cluster stack works." + + - default: "" + - type: "str" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the command template." + + - default: "" + - type: "dict" + - required: "no" + + - `arguments`: + - description: + + - "Arguments of the command template." + + - default: "" + - type: "dict" + - required: "no" + +- `icinga_commands`: + - Default: `` + - Description: A list of Icinga commands to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `command`: + - description: + + - "The command Icinga should run. Required when state is C(present)." + + - "Absolute paths are accepted as provided, relative paths are prefixed with "PluginDir + ", similar Constant prefixes are allowed." + + - "Spaces will lead to separation of command path and standalone arguments." + + - "Please note that this means that we do not support spaces in plugin names and paths right now." + + - default: "" + - type: "str" + - required: "no" + + - `command_type`: + - description: + + - "Plugin Check commands are what you need when running checks against your infrastructure." + + - "Notification commands will be used when it comes to notify your users." + + - "Event commands allow you to trigger specific actions when problems occur." + + - "Some people use them for auto-healing mechanisms, like restarting services or rebooting systems at specific thresholds." + + - Choices: + - PluginCheck + - PluginNotification + - PluginEvent + - default: "PluginCheck" + - type: "str" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + + - `name`: + - description: + + - "Name of the command." + + - default: "" + - type: "str" + - required: "yes" + + - `imports`: + - description: + + - "Importable templates, add as many as you want. Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `timeout`: + - description: + + - "Optional command timeout. Allowed values are seconds or durations postfixed with a specific unit (for example 1m or also 3m 30s)." + + - default: "" + - type: "str" + - required: "no" + + - `zone`: + - description: + + - "Icinga cluster zone. Allows to manually override Directors decisions of where to deploy your config to." + + - "You should consider not doing so unless you gained deep understanding of how an Icinga Cluster stack works." + + - default: "" + - type: "str" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the command." + + - default: "" + - type: "dict" + - required: "no" + + - `arguments`: + - description: + + - "Arguments of the command." + + - default: "" + - type: "dict" + - required: "no" + +- `icinga_endpoints`: + - Default: `` + - Description: A list of Icinga endpoints to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Icinga object name for this endpoint." + + - "This is usually a fully qualified host name but it could basically be any kind of string." + + - "To make things easier for your users we strongly suggest to use meaningful names for templates." + + - "For example "generic-endpoint" is ugly, "Standard Linux Server" is easier to understand." + + - default: "" + - type: "str" + - required: "yes" + + - `host`: + - description: + + - "The hostname/IP address of the remote Icinga 2 instance." + + - default: "" + - type: "str" + - required: "no" + + - `port`: + - description: + + - "The service name/port of the remote Icinga 2 instance. Defaults to 5665." + + - default: "" + - type: "int" + - required: "no" + + - `log_duration`: + - description: + + - "Duration for keeping replay logs on connection loss. Defaults to 1d (86400 seconds). Attribute is specified in seconds. If log_duration is set to 0, replaying logs is disabled. You could also specify the value in human readable format like 10m for 10 minutes or 1h for one hour." + + - default: "" + - type: "str" + - required: "no" + + - `zone`: + - description: + + - "The name of the zone this endpoint is part of." + + - default: "" + - type: "str" + - required: "no" + +- `icinga_host_templates`: + - Default: `` + - Description: A list of Icinga host_templates to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Icinga object name for this host template." + + - "This is usually a fully qualified host name but it could basically be any kind of string." + + - "To make things easier for your users we strongly suggest to use meaningful names for templates." + + - "For example "generic-host" is ugly, "Standard Linux Server" is easier to understand." + + - default: "" + - type: "str" + - required: "yes" + + - `display_name`: + - description: + + - "Alternative name for this host." + + - "Might be a host alias or and kind of string helping your users to identify this host." + + - default: "" + - type: "str" + - required: "no" + + - `address`: + - description: + + - "Host address. Usually an IPv4 address, but may be any kind of address your check plugin is able to deal with." + + - default: "" + - type: "str" + - required: "no" + + - `address6`: + - description: + + - "Host IPv6 address. Usually an IPv64 address, but may be any kind of address your check plugin is able to deal with." + + - default: "" + - type: "str" + - required: "no" + + - `groups`: + - description: + + - "Hostgroups that should be directly assigned to this node. Hostgroups can be useful for various reasons." + + - "You might assign service checks based on assigned hostgroup. They are also often used as an instrument to enforce restricted views in Icinga Web 2." + + - "Hostgroups can be directly assigned to single hosts or to host templates." + + - "You might also want to consider assigning hostgroups using apply rules." + + - default: "[]" + - type: "list" + - required: "no" + + - `check_command`: + - description: + + - "The name of the check command." + + - "Though this is not required to be defined in the director, you still have to supply a check_command in a host or host-template." + + - default: "" + - type: "str" + - required: "no" + + - `event_command`: + - description: + + - "Event command for host which gets called on every check execution if one of these conditions matches" + + - "The host is in a soft state" + + - "The host state changes into a hard state" + + - "The host state recovers from a soft or hard state to OK/Up" + + - default: "" + - type: "str" + - required: "no" + + - `check_interval`: + - description: + + - "Your regular check interval." + + - default: "" + - type: "str" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + + - `imports`: + - description: + + - "Choose a host-template." + + - default: "" + - type: "list" + - required: "no" + + - `zone`: + - description: + + - "Set the zone." + + - default: "" + - type: "str" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the host." + + - default: "" + - type: "dict" + - required: "no" + + - `notes`: + - description: + + - "Additional notes for this object." + + - default: "" + - type: "str" + - required: "no" + + - `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." + + - default: "" + - type: "str" + - required: "no" + + - `has_agent`: + - description: + + - "Whether this host has the Icinga 2 Agent installed." + + - Choices: + - True + - False + - default: "" + - type: "bool" + - required: "no" + + - `master_should_connect`: + - description: + + - "Whether the parent (master) node should actively try to connect to this agent." + + - Choices: + - True + - False + - default: "" + - type: "bool" + - required: "no" + + - `accept_config`: + - description: + + - "Whether the agent is configured to accept config." + + - Choices: + - True + - False + - default: "" + - type: "bool" + - required: "no" + +- `icinga_hostgroups`: + - Default: `` + - Description: A list of Icinga hostgroups to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Icinga object name for this hostgroup." + + - default: "" + - type: "str" + - required: "yes" + + - `display_name`: + - description: + + - "An alternative display name for this group." + + - "If you wonder how this could be helpful just leave it blank." + + - default: "" + - type: "str" + - required: "no" + + - `assign_filter`: + - description: + + - "This allows you to configure an assignment filter." + + - "Please feel free to combine as many nested operators as you want." + + - default: "" + - type: "str" + - required: "no" + +- `icinga_hosts`: + - Default: `` + - Description: A list of Icinga hosts to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Icinga object name for this host." + + - "This is usually a fully qualified host name but it could basically be any kind of string." + + - "To make things easier for your users we strongly suggest to use meaningful names for templates." + + - "For example "generic-host" is ugly, "Standard Linux Server" is easier to understand." + + - default: "" + - type: "str" + - required: "yes" + + - `display_name`: + - description: + + - "Alternative name for this host. Might be a host alias or and kind of string helping your users to identify this host." + + - default: "" + - type: "str" + - required: "no" + + - `address`: + - description: + + - "Host address. Usually an IPv4 address, but may be any kind of address your check plugin is able to deal with." + + - default: "" + - type: "str" + - required: "no" + + - `address6`: + - description: + + - "Host IPv6 address. Usually an IPv6 address, but may be any kind of address your check plugin is able to deal with." + + - default: "" + - type: "str" + - required: "no" + + - `groups`: + - description: + + - "Hostgroups that should be directly assigned to this node. Hostgroups can be useful for various reasons." + + - "You might assign service checks based on assigned hostgroup. They are also often used as an instrument to enforce restricted views in Icinga Web 2." + + - "Hostgroups can be directly assigned to single hosts or to host templates." + + - "You might also want to consider assigning hostgroups using apply rules." + + - default: "[]" + - type: "list" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + + - `imports`: + - description: + + - "Choose a Host Template. Required when state is C(present)." + + - default: "" + - type: "list" + - required: "no" + + - `zone`: + - description: + + - "Set the zone." + + - default: "" + - type: "str" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the host." + + - default: "" + - type: "dict" + - required: "no" + + - `check_command`: + - description: + + - "The name of the check command." + + - "Though this is not required to be defined in the director, you still have to supply a check_command in a host or host-template." + + - default: "" + - type: "str" + - required: "no" + + - `notes`: + - description: + + - "Additional notes for this object." + + - default: "" + - type: "str" + - required: "no" + + - `notes_url`: + - description: + + - "An URL pointing to additional notes for this object." + + - "Separate multiple urls like this "http://url1 http://url2"" + + - "The maximum length is 255 characters." + + - default: "" + - type: "str" + - required: "no" + + - `has_agent`: + - description: + + - "Whether this host has the Icinga 2 Agent installed." + + - Choices: + - True + - False + - default: "" + - type: "bool" + - required: "no" + + - `master_should_connect`: + - description: + + - "Whether the parent (master) node should actively try to connect to this agent." + + - Choices: + - True + - False + - default: "" + - type: "bool" + - required: "no" + + - `accept_config`: + - description: + + - "Whether the agent is configured to accept config." + + - Choices: + - True + - False + - default: "" + - type: "bool" + - required: "no" + +- `icinga_notifications`: + - Default: `` + - Description: A list of Icinga notifications to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name of the notification." + + - default: "" + - type: "str" + - required: "yes" + + - `notification_interval`: + - description: + + - "The notification interval (in seconds). This interval is used for active notifications." + + - "Defaults to 30 minutes. If set to 0, re-notifications are disabled." + + - default: "" + - type: "str" + - required: "no" + + - `types`: + - description: + + - "The state transition types you want to get notifications for." + + - default: "" + - type: "list" + - required: "no" + + - `users`: + - description: + + - "Users that should be notified by this notification." + + - default: "" + - type: "list" + - required: "no" + + - `states`: + - description: + + - "The host or service states you want to get notifications for." + + - default: "" + - type: "list" + - required: "no" + + - `apply_to`: + - description: + + - "Whether this notification should affect hosts or services." + + - Choices: + - host + - service + - default: "" + - type: "str" + - required: "yes" + + - `assign_filter`: + - description: + + - "The filter where the notification will take effect." + + - default: "" + - type: "str" + - required: "no" + + - `imports`: + - description: + + - "Importable templates, add as many as you want. Required when state is C(present)." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the notification." + + - default: "" + - type: "dict" + - required: "no" + + - `time_period`: + - description: + + - "The name of a time period which determines when this notification should be triggered." + + - default: "" + - type: "strod" + - required: "no" + + - `times_begin`: + - description: + + - "First notification delay." + + - "Delay unless the first notification should be sent." + + - default: "" + - type: "int" + - required: "no" + + - `times_end`: + - description: + + - "Last notification." + + - "When the last notification should be sent." + + - default: "" + - type: "int" + - required: "no" + + - `user_groups`: + - description: + + - "User Groups that should be notified by this notification." + + - default: "" + - type: "list" + - required: "no" + +- `icinga_service_applies`: + - Default: `` + - Description: A list of Icinga service_applies to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name for the Icinga service apply rule." + + - default: "" + - type: "str" + - required: "yes" + + - `display_name`: + - description: + + - "Alternative displayed name of the service apply rule." + + - default: "" + - type: "str" + - required: "no" + + - `check_command`: + - description: + + - "Check command definition." + + - default: "" + - type: "str" + - required: "no" + + - `check_interval`: + - description: + + - "Your regular check interval." + + - default: "" + - type: "str" + - required: "no" + + - `check_period`: + - description: + + - "The name of a time period which determines when this object should be monitored. Not limited by default." + + - default: "" + - type: "str" + - required: "no" + + - `check_timeout`: + - description: + + - "Check command timeout in seconds. Overrides the CheckCommand's timeout attribute." + + - default: "" + - type: "str" + - required: "no" + + - `enable_active_checks`: + - description: + + - "Whether to actively check this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_event_handler`: + - description: + + - "Whether to enable event handlers this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_notifications`: + - description: + + - "Whether to send notifications for this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_passive_checks`: + - description: + + - "Whether to accept passive check results for this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_perfdata`: + - description: + + - "Whether to process performance data provided by this object." + + - default: "" + - type: "bool" + - required: "no" + + - `max_check_attempts`: + - description: + + - "Defines after how many check attempts a new hard state is reached." + + - default: "" + - type: "str" + - required: "no" + + - `retry_interval`: + - description: + + - "Retry interval, will be applied after a state change unless the next hard state is reached." + + - default: "" + - type: "str" + - required: "no" + + - `groups`: + - 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." + + - default: "" + - type: "list" + - required: "no" + + - `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." + + - default: "" + - type: "str" + - required: "no" + + - `assign_filter`: + - description: + + - "The filter where the service apply rule will take effect." + + - default: "" + - type: "str" + - required: "no" + + - `command_endpoint`: + - description: + + - "The host where the service should be executed on." + + - default: "" + - type: "str" + - required: "no" + + - `imports`: + - description: + + - "Importable templates, add as many as you want." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the service apply rule." + + - default: "" + - type: "dict" + - required: "no" + + - `notes`: + - description: + + - "Additional notes for this object." + + - default: "" + - type: "str" + - required: "no" + + - `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." + + - default: "" + - type: "str" + - required: "no" + +- `icinga_service_templates`: + - Default: `` + - Description: A list of Icinga service_templat to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name of the service template." + + - default: "" + - type: "str" + - required: "yes" + + - `check_command`: + - description: + + - "Check command definition." + + - default: "" + - type: "str" + - required: "no" + + - `check_interval`: + - description: + + - "Your regular check interval." + + - default: "" + - type: "str" + - required: "no" + + - `check_period`: + - description: + + - "The name of a time period which determines when this object should be monitored. Not limited by default." + + - default: "" + - type: "str" + - required: "no" + + - `check_timeout`: + - description: + + - "Check command timeout in seconds. Overrides the CheckCommand's timeout attribute." + + - default: "" + - type: "str" + - required: "no" + + - `enable_active_checks`: + - description: + + - "Whether to actively check this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_event_handler`: + - description: + + - "Whether to enable event handlers this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_notifications`: + - description: + + - "Whether to send notifications for this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_passive_checks`: + - description: + + - "Whether to accept passive check results for this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_perfdata`: + - description: + + - "Whether to process performance data provided by this object." + + - default: "" + - type: "bool" + - required: "no" + + - `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" + + - default: "" + - type: "str" + - required: "no" + + - `groups`: + - 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." + + - default: "[]" + - type: "list" + - required: "no" + + - `imports`: + - description: + + - "Importable templates, add as many as you want." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "[]" + - type: "list" + - required: "no" + + - `max_check_attempts`: + - description: + + - "Defines after how many check attempts a new hard state is reached." + + - default: "" + - type: "str" + - required: "no" + + - `notes`: + - description: + + - "Additional notes for this object." + + - default: "" + - type: "str" + - required: "no" + + - `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." + + - default: "" + - type: "str" + - required: "no" + + - `retry_interval`: + - description: + + - "Retry interval, will be applied after a state change unless the next hard state is reached." + + - default: "" + - type: "str" + - required: "no" + + - `use_agent`: + - description: + + - "Whether the check command for this service should be executed on the Icinga agent." + + - default: "" + - type: "bool" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the service template." + + - default: "{}" + - type: "dict" + - required: "no" + + - `volatile`: + - description: + + - "Whether this check is volatile." + + - default: "" + - type: "bool" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + +- `icinga_servicegroups`: + - Default: `` + - Description: A list of Icinga sservicegroups to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name for the Icinga servicegroup." + + - default: "" + - type: "str" + - required: "yes" + + - `display_name`: + - description: + + - "An alternative display name for this group." + + - "If you wonder how this could be helpful just leave it blank." + + - default: "" + - type: "str" + - required: "no" + + - `assign_filter`: + - description: + + - "This allows you to configure an assignment filter." + + - "Please feel free to combine as many nested operators as you want." + + - default: "" + - type: "str" + - required: "no" + +- `icinga_services`: + - Default: `` + - Description: A list of Icinga services to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name of the service." + + - default: "" + - type: "str" + - required: "yes" + + - `check_command`: + - description: + + - "Check command definition." + + - default: "" + - type: "str" + - required: "no" + + - `check_interval`: + - description: + + - "Your regular check interval." + + - default: "" + - type: "str" + - required: "no" + + - `check_period`: + - description: + + - "The name of a time period which determines when this object should be monitored. Not limited by default." + + - default: "" + - type: "str" + - required: "no" + + - `check_timeout`: + - description: + + - "Check command timeout in seconds. Overrides the CheckCommand's timeout attribute." + + - default: "" + - type: "str" + - required: "no" + + - `enable_active_checks`: + - description: + + - "Whether to actively check this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_event_handler`: + - description: + + - "Whether to enable event handlers this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_notifications`: + - description: + + - "Whether to send notifications for this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_passive_checks`: + - description: + + - "Whether to accept passive check results for this object." + + - default: "" + - type: "bool" + - required: "no" + + - `enable_perfdata`: + - description: + + - "Whether to process performance data provided by this object." + + - default: "" + - type: "bool" + - required: "no" + + - `groups`: + - 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." + + - default: "[]" + - type: "list" + - required: "no" + + - `host`: + - description: + + - "Choose the host this single service should be assigned to." + + - default: "" + - type: "str" + - required: "yes" + + - `imports`: + - description: + + - "Importable templates, add as many as you want." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "[]" + - type: "list" + - required: "no" + + - `max_check_attempts`: + - description: + + - "Defines after how many check attempts a new hard state is reached." + + - default: "" + - type: "str" + - required: "no" + + - `notes`: + - description: + + - "Additional notes for this object." + + - default: "" + - type: "str" + - required: "no" + + - `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." + + - default: "" + - type: "str" + - required: "no" + + - `retry_interval`: + - description: + + - "Retry interval, will be applied after a state change unless the next hard state is reached." + + - default: "" + - type: "str" + - required: "no" + + - `use_agent`: + - description: + + - "Whether the check command for this service should be executed on the Icinga agent." + + - default: "" + - type: "bool" + - required: "no" + + - `vars`: + - description: + + - "Custom properties of the service." + + - default: "{}" + - type: "dict" + - required: "no" + + - `volatile`: + - description: + + - "Whether this check is volatile." + + - default: "" + - type: "bool" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + +- `icinga_timeperiods`: + - Default: `` + - Description: A list of Icinga timeperiods to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name of the time period." + + - default: "" + - type: "str" + - required: "no" + + - `display_name`: + - description: + + - "Alternative name for this timeperiod." + + - default: "" + - type: "str" + - required: "no" + + - `imports`: + - description: + + - "Importable templates, add as many as you want." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `ranges`: + - description: + + - "A" + + - " " + + - "d" + + - "i" + + - "c" + + - "t" + + - " " + + - "o" + + - "f" + + - " " + + - "d" + + - "a" + + - "y" + + - "s" + + - " " + + - "a" + + - "n" + + - "d" + + - " " + + - "t" + + - "i" + + - "m" + + - "e" + + - "p" + + - "e" + + - "r" + + - "i" + + - "o" + + - "d" + + - "s" + + - "." + + - default: "" + - type: "dict" + - required: "no" + +- `icinga_user_templates`: + - Default: `` + - Description: A list of Icinga user_templates to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name of the user template." + + - default: "" + - type: "str" + - required: "yes" + + - `imports`: + - description: + + - "Importable templates, add as many as you want." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `period`: + - description: + + - "The name of a time period which determines when notifications to this User should be triggered. Not set by default." + + - default: "" + - type: "str" + - required: "no" + + - `enable_notifications`: + - description: + + - "Whether to send notifications for this user." + + - default: "" + - type: "bool" + - required: "no" + +- `icinga_users`: + - Default: `` + - Description: A list of Icinga users to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Name of the user." + + - default: "" + - type: "str" + - required: "yes" + + - `display_name`: + - description: + + - "Alternative name for this user." + + - "In case your object name is a username, this could be the full name of the corresponding person." + + - default: "" + - type: "str" + - required: "no" + + - `imports`: + - description: + + - "Importable templates, add as many as you want." + + - "Please note that order matters when importing properties from multiple templates - last one wins." + + - default: "" + - type: "list" + - required: "no" + + - `pager`: + - description: + + - "The pager address of the user." + + - default: "" + - type: "str" + - required: "no" + + - `period`: + - description: + + - "The name of a time period which determines when notifications to this User should be triggered. Not set by default." + + - default: "" + - type: "str" + - required: "no" + + - `disabled`: + - description: + + - "Disabled objects will not be deployed." + + - Choices: + - True + - False + - default: "False" + - type: "bool" + - required: "no" + + - `email`: + - description: + + - "The Email address of the user." + + - default: "" + - type: "str" + - required: "no" + + - `groups`: + - description: + + - "User groups that should be directly assigned to this user." + + - "Groups can be useful for various reasons. You might prefer to send notifications to groups instead of single users." + + - default: "" + - type: "list" + - required: "no" + +- `icinga_zones`: + - Default: `` + - Description: A list of Icinga zones to configure + - Type: list of 'str' + - Required: no + - Options: + + - `state`: + - description: + + - "Apply feature state." + + - Choices: + - present + - absent + - default: "present" + - type: "str" + - required: "no" + + - `name`: + - description: + + - "Icinga object name for this zone." + + - "This is usually a fully qualified host name but it could basically be any kind of string." + + - "To make things easier for your users we strongly suggest to use meaningful names for templates." + + - "For example "generic-zone" is ugly, "Standard Linux Server" is easier to understand." + + - default: "" + - type: "str" + - required: "yes" + + - `is_global`: + - description: + + - "Whether configuration files for this zone should be synced to all endpoints." + + - default: "False" + - type: "bool" + - required: "no" + + - `parent`: + - description: + + - "The name of the parent zone." + + - default: "" + - type: "str" + - required: "no" + +- `icinga_client_cert`: + - Default: `` + - 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, `client_key' is not required. + - Type: path + - Required: no + +- `icinga_client_key`: + - Default: `` + - Description: PEM formatted file that contains your private key to be used for SSL client authentication. If `client_cert' contains both the certificate and key, this option is not required. + - Type: path + - Required: no + +- `icinga_url`: + - Default: `` + - Description: HTTP, HTTPS, or FTP URL in the form (http|https|ftp)://[user[:pass]]@host.domain[:port]/path + - Type: str + - Required: no + +- `icinga_url_password`: + - Default: `` + - Description: The password for use in HTTP basic authentication. If the `url_username' parameter is not specified, the `url_password' parameter will not be used. + - Type: str + - Required: no + +- `icinga_url_username`: + - Default: `` + - Description: The username for use in HTTP basic authentication. This parameter can be used without `url_password' for sites that allow empty passwords + - Type: str + - Required: no + +- `icinga_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 gssapi to be installed. Credentials for GSSAPI can be specified with `url_username'/`url_password' or with the GSSAPI env var `KRB5CCNAME' that specified a custom Kerberos credential cache. NTLM authentication is `not' supported even if the GSSAPI mech for NTLM has been installed. + - Type: bool + - Required: no + +- `icinga_use_proxy`: + - Default: `true` + - Description: If `no', it will not use a proxy, even if one is defined in an environment variable on the target hosts. + - Type: bool + - Required: no + +- `icinga_validate_certs`: + - Default: `true` + - Description: If `no', SSL certificates will not be validated. icinga_This should only be used on personally controlled sites using selfigned certificates. + - Type: bool + - Required: no + ## Dependencies -collections: -telekom_mms.icinga_director >= 1.2.2 +None. -## Role Variables - -| Variable | Required | Default | -| -------------------------------- | -------- | --------------------------- | -| **icinga** | -| url | yes | -| use_proxy | no | -| validate_certs | no | -| url_username | yes | -| url_password | yes | -| force_basic_auth | no | -| client_cert | no | -| client_key | no | -| **icinga_timeperiod** | -| icinga_timeperiods | no | [] | -| display_name | no | -| imports | no | -| ranges | no | -| **icinga_user_template** | -| icinga_user_templates | no | [] | -| imports | no | -| period | no | -| enable_notifications | no | -| **icinga_user** | -| icinga_users | no | [] | -| display_name | no | -| imports | yes | [] | -| pager | no | -| period | no | -| disabled | no | -| email | yes | null | -| **icinga_zone** | -| icinga_zones | no | [] | -| is_global | no | -| parent | no | -| **icinga_endpoint** | -| icinga_endpoints | no | [] | -| host | no | -| port | no | -| log_duration | no | -| zone | no | -| **icinga_hostgroup** | -| icinga_hostgroups | no | [] | -| display_name | no | -| assign_filter | no | `host.name="hostgroup.1-*"` | -| **icinga_host_template** | -| icinga_host_templates | no | [] | -| display_name | no | -| address | no | -| address6 | no | -| groups | no | -| check_command | no | -| check_interval | no | -| disabled | no | -| imports | no | -| zone | no | -| vars | no | -| notes | no | -| notes_url | no | -| **icinga_host** | -| icinga_hosts | no | [] | -| display_name | no | -| address | no | -| address6 | no | -| groups | no | -| disabled | no | -| imports | yes | [] | -| zone | no | -| vars | no | -| notes | no | -| notes_url | no | -| **icinga_command_template** | -| icinga_command_templates | no | [] | -| display_name | no | -| command | no | -| methods_execute | yes | PluginCheck | -| timeout | no | -| imports | no | -| disabled | no | -| zone | no | -| vars | no | -| arguments | no | -| **icinga_command** | -| icinga_commands | no | [] | -| command_type | yes | PluginCheck | -| disabled | yes | false | -| imports | no | -| zone | no | -| vars | no | -| **icinga_service** | -| icinga_services | no | [] | -| display_name | no | -| disabled | no | -| check_command | no | -| check_interval | no | -| check_period | no | -| check_timeout | no | -| enable_active_checks | no | -| enable_event_handler | no | -| enable_notifications | no | -| enable_passive_checks | no | -| enable_perfdata | no | -| groups | no | -| host | yes | -| imports | no | -| max_check_attempts | no | -| notes | no | -| notes_url | no | -| retry_interval | no | -| use_agent | no | -| vars | no | -| volatile | no | -| **icinga_service_template** | -| icinga_service_templates | no | [] | -| display_name | no | -| disabled | no | -| check_command | no | -| check_interval | no | -| check_period | no | -| check_timeout | no | -| enable_active_checks | no | -| enable_event_handler | no | -| enable_notifications | no | -| enable_passive_checks | no | -| enable_perfdata | no | -| groups | no | -| imports | no | -| max_check_attempts | no | -| notes | no | -| notes_url | no | -| retry_interval | no | -| use_agent | no | -| vars | no | -| volatile | no | -| **icinga_service_apply** | -| icinga_service_applys | no | [] | -| display_name | no | -| groups | no | -| apply_for | no | -| assign_filter | no | -| imports | no | -| vars | no | -| notes | no | -| notes_url | no | -| **icinga_servicegroup** | -| icinga_servicegroups | no | [] | -| display_name | no | -| assign_filter | no | -| **icinga_notification_template** | -| icinga_notification_templates | no | [] | -| notification_template_object | no | -| state | no | -| notification_interval | no | -| states | no | -| types | no | -| times_begin | no | -| times_end | no | -| timeperiod | no | -| users | no | -| user_groups | no | -| notification_command | no | -| imports | no | -| **icinga_notification** | -| icinga_notifications | no | [] | -| notification_interval | no | -| types | no | -| users | no | -| apply_to | no | -| assign_filter | no | -| imports | no | -| period | no | -| **icinga_scheduled_downtime** | -| icinga_scheduled_downtimes | no | [] | -| state | yes | present -| disabled | no | false -| assign_filter | no | -| apply_to | yes | -| author | yes | -| comment | yes | -| duration | no | -| fixed | yes | -| ranges | no | -| with_services | no | true + ## Example Playbook ```bash ---- -- hosts: localhost - gather_facts: false - collections: - - telekom_mms.icinga_director +- hosts: all roles: - - ansible_icinga + - telekom_mms.icinga_director.ansible_icinga vars: icinga_url: "https://example.com" icinga_user: "{{ icinga_user }}" icinga_pass: "{{ icinga_pass }}" icinga_timeperiods: - - timeperiod_object: - - "8x5" + - "8x5": ranges: monday: "09:00-17:00" tuesday: "09:00-17:00" wednesday: "09:00-17:00" thursday: "09:00-17:00" friday: "09:00-17:00" - - timeperiod_object: - - "24x7" + - "24x7" ranges: monday: "00:00-24:00" tuesday: "00:00-24:00" @@ -243,21 +2068,18 @@ telekom_mms.icinga_director >= 1.2.2 saturday: "00:00-24:00" sunday: "00:00-24:00" icinga_users: - - user_object: - - "service_abbreviation_email_24x7" + - "email_24x7" pager: "SIP/xxx" - email: "service_abbreviation@example.com" - - user_object: - - "service_abbreviation_8x5" - email: "service_abbreviation@example.com" + email: "foo@example.com" + - "service_abbreviation_8x5" + email: "foo@example.com" + icinga_user_groups: + - "user-group-example" + display_name: "User Group Example" icinga_hostgroups: - - hostgroup_object: - - "service_abbreviation-environement" - - "service_abbreviation-environement-web" + - "foo hosts" icinga_hosts: - - host_object: - - "service_abbreviation-environement-web01" - icinga_scheduled_downtimes: - - scheduled_downtime_object: - - "service_abbreviation-environement-downtime01" + - "foo-bar-web01" + icinga_scheduled_downtimes: + - "downtime01" ``` diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/defaults/main.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/defaults/main.yml index 9a9a68253..90dea36f0 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/defaults/main.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/defaults/main.yml @@ -1,32 +1,26 @@ --- # icinga_timeperiod icinga_timeperiods: [] - # icinga_user_template icinga_user_templates: [] - # icinga_user icinga_users: [] icinga_user_imports: [] icinga_user_disabled: false -icinga_user_email: null - +icinga_user_email: # icinga_endpoints icinga_endpoints: [] - # icinga_zone icinga_zones: [] - # icinga_hostgroup icinga_hostgroups: [] - +# icinga_user_group +icinga_user_groups: [] # icinga_host_template icinga_host_templates: [] - # icinga_host icinga_hosts: [] icinga_host_imports: [] - # icinga_command_template icinga_command_templates: [] icinga_command_template_command_type: PluginCheck @@ -38,21 +32,15 @@ icinga_command_disabled: false # icinga_service icinga_services: [] - # icinga_serviceset icinga_servicesets: [] - # icinga_service_template icinga_service_templates: [] - # icinga_service_apply icinga_service_applies: [] - # servicegroup icinga_servicegroups: [] - # icinga_notification icinga_notifications: [] - # icinga deploy icinga_deploy_config: false diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/handlers/main.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/handlers/main.yml index e83f67c03..9e82c9f44 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/handlers/main.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/handlers/main.yml @@ -2,7 +2,13 @@ - name: Deploy the icinga config telekom_mms.icinga_director.icinga_deploy: url: "{{ icinga_url }}" + use_proxy: "{{ icinga_use_proxy | default(omit) }}" + validate_certs: "{{ icinga_validate_certs | default(omit) }}" + force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" + client_cert: "{{ icinga_client_cert | default(omit) }}" + client_key: "{{ icinga_client_key | default(omit) }}" url_username: "{{ icinga_user }}" url_password: "{{ icinga_pass }}" + timeout: "{{ icinga_deploy_timeout | default(omit) }}" when: icinga_deploy_config and icinga_deploy_config is defined - listen: config_deploy \ No newline at end of file + listen: config_deploy diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/argument_specs.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/argument_specs.yml new file mode 100644 index 000000000..595ee392f --- /dev/null +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/argument_specs.yml @@ -0,0 +1,1345 @@ +--- +argument_specs: + main: + short_description: Configure an Icinga instance with Icinga Director + description: + - >- + The main entry point includes all tasks for objects that can be created + with the role. + options: + icinga_timeperiods: + description: + - A list of Icinga timeperiods to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name of the time period. + type: str + display_name: + description: + - Alternative name for this timeperiod. + type: str + imports: + description: + - Importable templates, add as many as you want. + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + ranges: + description: A dict of days and timeperiods. + type: dict + icinga_user_templates: + description: + - A list of Icinga user_templates to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name of the user template. + required: true + type: str + imports: + description: + - Importable templates, add as many as you want. + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + period: + description: + - >- + The name of a time period which determines when notifications to + this User should be triggered. Not set by default. + type: str + enable_notifications: + description: + - Whether to send notifications for this user. + type: bool + icinga_users: + description: + - A list of Icinga users to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name of the user. + required: true + type: str + display_name: + description: + - Alternative name for this user. + - >- + In case your object name is a username, this could be the full + name of the corresponding person. + type: str + imports: + description: + - Importable templates, add as many as you want. + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + pager: + description: + - The pager address of the user. + type: str + period: + description: + - >- + The name of a time period which determines when notifications to + this User should be triggered. Not set by default. + type: str + disabled: + description: + - Disabled objects will not be deployed. + type: bool + default: false + choices: + - true + - false + email: + description: + - The Email address of the user. + type: str + groups: + description: + - User groups that should be directly assigned to this user. + - >- + Groups can be useful for various reasons. You might prefer to + send notifications to groups instead of single users. + type: list + elements: str + icinga_endpoints: + description: + - A list of Icinga endpoints to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Icinga object name for this endpoint. + - >- + This is usually a fully qualified host name but it could + basically be any kind of string. + - >- + To make things easier for your users we strongly suggest to use + meaningful names for templates. + - >- + For example "generic-endpoint" is ugly, "Standard Linux Server" + is easier to understand. + required: true + type: str + host: + description: + - The hostname/IP address of the remote Icinga 2 instance. + type: str + port: + description: + - >- + The service name/port of the remote Icinga 2 instance. Defaults + to 5665. + type: int + log_duration: + description: + - >- + Duration for keeping replay logs on connection loss. Defaults to + 1d (86400 seconds). Attribute is specified in seconds. If + log_duration is set to 0, replaying logs is disabled. You could + also specify the value in human readable format like 10m for 10 + minutes or 1h for one hour. + type: str + zone: + description: + - The name of the zone this endpoint is part of. + type: str + icinga_zones: + description: + - A list of Icinga zones to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Icinga object name for this zone. + - >- + This is usually a fully qualified host name but it could + basically be any kind of string. + - >- + To make things easier for your users we strongly suggest to use + meaningful names for templates. + - >- + For example "generic-zone" is ugly, "Standard Linux Server" is + easier to understand. + required: true + type: str + is_global: + description: + - >- + Whether configuration files for this zone should be synced to + all endpoints. + default: false + type: bool + parent: + description: + - The name of the parent zone. + type: str + icinga_hostgroups: + description: + - A list of Icinga hostgroups to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Icinga object name for this hostgroup. + required: true + type: str + display_name: + description: + - An alternative display name for this group. + - If you wonder how this could be helpful just leave it blank. + type: str + assign_filter: + description: + - This allows you to configure an assignment filter. + - >- + Please feel free to combine as many nested operators as you + want. + type: str + icinga_host_templates: + description: + - A list of Icinga host_templates to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Icinga object name for this host template. + - >- + This is usually a fully qualified host name but it could + basically be any kind of string. + - >- + To make things easier for your users we strongly suggest to use + meaningful names for templates. + - >- + For example "generic-host" is ugly, "Standard Linux Server" is + easier to understand. + required: true + type: str + display_name: + description: + - Alternative name for this host. + - >- + Might be a host alias or and kind of string helping your users + to identify this host. + type: str + address: + description: + - >- + Host address. Usually an IPv4 address, but may be any kind of + address your check plugin is able to deal with. + type: str + address6: + description: + - >- + Host IPv6 address. Usually an IPv64 address, but may be any kind + of address your check plugin is able to deal with. + type: str + groups: + description: + - >- + Hostgroups that should be directly assigned to this node. + Hostgroups can be useful for various reasons. + - >- + You might assign service checks based on assigned hostgroup. + They are also often used as an instrument to enforce restricted + views in Icinga Web 2. + - >- + Hostgroups can be directly assigned to single hosts or to host + templates. + - >- + You might also want to consider assigning hostgroups using apply + rules. + type: list + elements: str + default: [] + check_command: + description: + - The name of the check command. + - >- + Though this is not required to be defined in the director, you + still have to supply a check_command in a host or host-template. + type: str + event_command: + description: + - >- + Event command for host which gets called on every check + execution if one of these conditions matches + - The host is in a soft state + - The host state changes into a hard state + - The host state recovers from a soft or hard state to OK/Up + type: str + check_interval: + description: + - Your regular check interval. + type: str + disabled: + description: + - Disabled objects will not be deployed. + default: false + type: bool + choices: + - true + - false + imports: + description: + - Choose a host-template. + type: list + elements: str + zone: + description: + - Set the zone. + type: str + vars: + description: + - Custom properties of the host. + type: dict + notes: + description: + - Additional notes for this object. + type: str + version_added: 1.8.0 + 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 + version_added: 1.8.0 + has_agent: + description: + - Whether this host has the Icinga 2 Agent installed. + type: bool + choices: + - true + - false + version_added: 1.9.0 + master_should_connect: + description: + - >- + Whether the parent (master) node should actively try to connect + to this agent. + type: bool + choices: + - true + - false + version_added: 1.9.0 + accept_config: + description: + - Whether the agent is configured to accept config. + type: bool + choices: + - true + - false + version_added: 1.9.0 + icinga_hosts: + description: + - A list of Icinga hosts to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Icinga object name for this host. + - >- + This is usually a fully qualified host name but it could + basically be any kind of string. + - >- + To make things easier for your users we strongly suggest to use + meaningful names for templates. + - >- + For example "generic-host" is ugly, "Standard Linux Server" is + easier to understand. + required: true + type: str + display_name: + description: + - >- + Alternative name for this host. Might be a host alias or and + kind of string helping your users to identify this host. + type: str + address: + description: + - >- + Host address. Usually an IPv4 address, but may be any kind of + address your check plugin is able to deal with. + type: str + address6: + description: + - >- + Host IPv6 address. Usually an IPv6 address, but may be any kind + of address your check plugin is able to deal with. + type: str + version_added: 1.4.0 + groups: + description: + - >- + Hostgroups that should be directly assigned to this node. + Hostgroups can be useful for various reasons. + - >- + You might assign service checks based on assigned hostgroup. + They are also often used as an instrument to enforce restricted + views in Icinga Web 2. + - >- + Hostgroups can be directly assigned to single hosts or to host + templates. + - >- + You might also want to consider assigning hostgroups using apply + rules. + type: list + elements: str + default: [] + disabled: + description: + - Disabled objects will not be deployed. + default: false + type: bool + choices: + - true + - false + imports: + description: + - Choose a Host Template. Required when state is C(present). + type: list + elements: str + required: true + zone: + description: + - Set the zone. + type: str + vars: + description: + - Custom properties of the host. + type: dict + check_command: + description: + - The name of the check command. + - >- + Though this is not required to be defined in the director, you + still have to supply a check_command in a host or host-template. + type: str + notes: + description: + - Additional notes for this object. + type: str + version_added: 1.8.0 + notes_url: + description: + - An URL pointing to additional notes for this object. + - Separate multiple urls like this "http://url1 http://url2" + - The maximum length is 255 characters. + type: str + version_added: 1.8.0 + has_agent: + description: + - Whether this host has the Icinga 2 Agent installed. + type: bool + choices: + - true + - false + version_added: 1.9.0 + master_should_connect: + description: + - >- + Whether the parent (master) node should actively try to connect + to this agent. + type: bool + choices: + - true + - false + version_added: 1.9.0 + accept_config: + description: + - Whether the agent is configured to accept config. + type: bool + choices: + - true + - false + version_added: 1.9.0 + icinga_command_templates: + description: + - A list of Icinga command_templates to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + command: + description: + - The command Icinga should run. + - >- + Absolute paths are accepted as provided, relative paths are + prefixed with "PluginDir + ", similar Constant prefixes are + allowed. + - >- + Spaces will lead to separation of command path and standalone + arguments. + - >- + Please note that this means that we do not support spaces in + plugin names and paths right now. + type: str + command_type: + description: + - >- + Plugin Check commands are what you need when running checks + against your infrastructure. + - >- + Notification commands will be used when it comes to notify your + users. + - >- + Event commands allow you to trigger specific actions when + problems occur. + - >- + Some people use them for auto-healing mechanisms, like + restarting services or rebooting systems at specific thresholds. + choices: + - PluginCheck + - PluginNotification + - PluginEvent + default: PluginCheck + type: str + disabled: + description: + - Disabled objects will not be deployed. + type: bool + default: false + choices: + - true + - false + name: + description: + - Name of the command template. + required: true + type: str + imports: + description: + - >- + Importable templates, add as many as you want. Please note that + order matters when importing properties from multiple templates + - last one wins. + type: list + elements: str + timeout: + description: + - >- + Optional command timeout. Allowed values are seconds or + durations postfixed with a specific unit (for example 1m or also + 3m 30s). + type: str + zone: + description: + - >- + Icinga cluster zone. Allows to manually override Directors + decisions of where to deploy your config to. + - >- + You should consider not doing so unless you gained deep + understanding of how an Icinga Cluster stack works. + type: str + vars: + description: + - Custom properties of the command template. + type: dict + arguments: + description: + - Arguments of the command template. + type: dict + icinga_commands: + description: + - A list of Icinga commands to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + command: + description: + - >- + The command Icinga should run. Required when state is + C(present). + - >- + Absolute paths are accepted as provided, relative paths are + prefixed with "PluginDir + ", similar Constant prefixes are + allowed. + - >- + Spaces will lead to separation of command path and standalone + arguments. + - >- + Please note that this means that we do not support spaces in + plugin names and paths right now. + type: str + command_type: + description: + - >- + Plugin Check commands are what you need when running checks + against your infrastructure. + - >- + Notification commands will be used when it comes to notify your + users. + - >- + Event commands allow you to trigger specific actions when + problems occur. + - >- + Some people use them for auto-healing mechanisms, like + restarting services or rebooting systems at specific thresholds. + choices: + - PluginCheck + - PluginNotification + - PluginEvent + default: PluginCheck + type: str + disabled: + description: + - Disabled objects will not be deployed. + type: bool + default: false + choices: + - true + - false + name: + description: + - Name of the command. + required: true + type: str + imports: + description: + - >- + Importable templates, add as many as you want. Please note that + order matters when importing properties from multiple templates + - last one wins. + type: list + elements: str + timeout: + description: + - >- + Optional command timeout. Allowed values are seconds or + durations postfixed with a specific unit (for example 1m or also + 3m 30s). + type: str + zone: + description: + - >- + Icinga cluster zone. Allows to manually override Directors + decisions of where to deploy your config to. + - >- + You should consider not doing so unless you gained deep + understanding of how an Icinga Cluster stack works. + type: str + vars: + description: + - Custom properties of the command. + type: dict + arguments: + description: + - Arguments of the command. + type: dict + icinga_services: + description: + - A list of Icinga services to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name of the service. + required: true + type: str + check_command: + description: + - Check command definition. + type: str + check_interval: + description: + - Your regular check interval. + type: str + check_period: + description: + - >- + The name of a time period which determines when this object + should be monitored. Not limited by default. + type: str + check_timeout: + description: + - >- + Check command timeout in seconds. Overrides the CheckCommand's + timeout attribute. + type: str + enable_active_checks: + description: + - Whether to actively check this object. + type: bool + enable_event_handler: + description: + - Whether to enable event handlers this object. + type: bool + enable_notifications: + description: + - Whether to send notifications for this object. + type: bool + enable_passive_checks: + description: + - Whether to accept passive check results for this object. + type: bool + enable_perfdata: + description: + - Whether to process performance data provided by this object. + type: bool + groups: + 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. + type: list + elements: str + default: [] + host: + description: + - Choose the host this single service should be assigned to. + required: true + type: str + imports: + description: + - Importable templates, add as many as you want. + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + default: [] + max_check_attempts: + description: + - >- + Defines after how many check attempts a new hard state is + reached. + type: str + notes: + description: + - Additional notes for this object. + type: str + version_added: 1.8.0 + 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 + version_added: 1.8.0 + retry_interval: + description: + - >- + Retry interval, will be applied after a state change unless the + next hard state is reached. + type: str + use_agent: + description: + - >- + Whether the check command for this service should be executed on + the Icinga agent. + type: bool + vars: + description: + - Custom properties of the service. + type: dict + default: {} + volatile: + description: + - Whether this check is volatile. + type: bool + disabled: + description: + - Disabled objects will not be deployed. + type: bool + default: false + choices: + - true + - false + icinga_service_templates: + description: + - A list of Icinga service_templates to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name of the service template. + required: true + type: str + check_command: + description: + - Check command definition. + type: str + check_interval: + description: + - Your regular check interval. + type: str + check_period: + description: + - >- + The name of a time period which determines when this object + should be monitored. Not limited by default. + type: str + check_timeout: + description: + - >- + Check command timeout in seconds. Overrides the CheckCommand's + timeout attribute. + type: str + enable_active_checks: + description: + - Whether to actively check this object. + type: bool + enable_event_handler: + description: + - Whether to enable event handlers this object. + type: bool + enable_notifications: + description: + - Whether to send notifications for this object. + type: bool + enable_passive_checks: + description: + - Whether to accept passive check results for this object. + type: bool + enable_perfdata: + description: + - Whether to process performance data provided by this object. + type: bool + 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 + type: str + groups: + 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. + type: list + elements: str + default: [] + imports: + description: + - Importable templates, add as many as you want. + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + default: [] + max_check_attempts: + description: + - >- + Defines after how many check attempts a new hard state is + reached. + type: str + notes: + description: + - Additional notes for this object. + type: str + version_added: 1.8.0 + 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 + version_added: 1.8.0 + retry_interval: + description: + - >- + Retry interval, will be applied after a state change unless the + next hard state is reached. + type: str + use_agent: + description: + - >- + Whether the check command for this service should be executed + on the Icinga agent. + type: bool + vars: + description: + - Custom properties of the service template. + type: dict + default: {} + volatile: + description: + - Whether this check is volatile. + type: bool + disabled: + description: + - Disabled objects will not be deployed. + type: bool + default: false + choices: + - true + - false + icinga_service_applies: + description: + - A list of Icinga service_applies to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name for the Icinga service apply rule. + required: true + type: str + display_name: + description: + - Alternative displayed name of the service apply rule. + type: str + check_command: + description: + - Check command definition. + type: str + version_added: 1.7.0 + check_interval: + description: + - Your regular check interval. + required: false + 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 + check_timeout: + description: + - >- + Check command timeout in seconds. Overrides the CheckCommand's + timeout attribute. + 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 + enable_perfdata: + description: + - Whether to process performance data provided by this object. + required: false + type: bool + max_check_attempts: + description: + - >- + Defines after how many check attempts a new hard state is + reached. + 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 + groups: + 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. + type: list + elements: str + 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 + assign_filter: + description: + - The filter where the service apply rule will take effect. + type: str + command_endpoint: + description: + - The host where the service should be executed on. + type: str + imports: + description: + - Importable templates, add as many as you want. + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + vars: + description: + - Custom properties of the service apply rule. + type: dict + notes: + description: + - Additional notes for this object. + 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 + icinga_servicegroups: + description: + - A list of Icinga sservicegroups to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name for the Icinga servicegroup. + required: true + type: str + display_name: + description: + - An alternative display name for this group. + - If you wonder how this could be helpful just leave it blank. + type: str + assign_filter: + description: + - This allows you to configure an assignment filter. + - >- + Please feel free to combine as many nested operators as you + want. + type: str + icinga_notifications: + description: + - A list of Icinga notifications to configure + type: list + elements: str + options: + state: + description: + - Apply feature state. + choices: + - present + - absent + default: present + type: str + name: + description: + - Name of the notification. + required: true + type: str + notification_interval: + description: + - >- + The notification interval (in seconds). This interval is used + for active notifications. + - >- + Defaults to 30 minutes. If set to 0, re-notifications are + disabled. + type: str + types: + description: + - The state transition types you want to get notifications for. + type: list + elements: str + users: + description: + - Users that should be notified by this notification. + type: list + elements: str + states: + description: + - The host or service states you want to get notifications for. + type: list + elements: str + version_added: 1.9.0 + apply_to: + description: + - Whether this notification should affect hosts or services. + required: true + type: str + choices: + - host + - service + assign_filter: + description: + - The filter where the notification will take effect. + type: str + imports: + description: + - >- + Importable templates, add as many as you want. Required when + state is C(present). + - >- + Please note that order matters when importing properties from + multiple templates - last one wins. + type: list + elements: str + disabled: + description: + - Disabled objects will not be deployed. + type: bool + default: false + choices: + - true + - false + version_added: 1.9.0 + vars: + description: + - Custom properties of the notification. + type: dict + version_added: 1.9.0 + time_period: + description: + - >- + The name of a time period which determines when this + notification should be triggered. + type: strod + version_added: 1.15.0 + times_begin: + description: + - First notification delay. + - Delay unless the first notification should be sent. + type: int + version_added: 1.15.0 + times_end: + description: + - Last notification. + - When the last notification should be sent. + type: int + version_added: 1.15.0 + user_groups: + description: + - User Groups that should be notified by this notification. + type: list + elements: str + version_added: 1.16.0 + icinga_service_apply: + short_description: Configure an Icinga instance with Icinga Director + description: + - >- + The main entry point includes all tasks for objects that can be created + with the role. + options: + icinga_url: + description: + - >- + HTTP, HTTPS, or FTP URL in the form + (http|https|ftp)://[user[:pass]]@host.domain[:port]/path + type: str + icinga_url_password: + description: + - >- + The password for use in HTTP basic authentication. If the + `url_username' parameter is not specified, the `url_password' + parameter will not be used. + type: str + icinga_url_username: + description: + - >- + The username for use in HTTP basic authentication. This parameter + can be used without `url_password' for sites that allow empty + passwords + type: str + icinga_use_gssapi: + description: + - >- + Use GSSAPI to perform the authentication, typically this is for + Kerberos or Kerberos through Negotiate authentication. Requires the + Python library gssapi to be installed. Credentials for GSSAPI can be specified + with `url_username'/`url_password' or with the GSSAPI env var + `KRB5CCNAME' that specified a custom Kerberos credential cache. NTLM + authentication is `not' supported even if the GSSAPI mech for NTLM + has been installed. + default: false + type: bool + icinga_use_proxy: + description: + - >- + If `no', it will not use a proxy, even if one is defined in an + environment variable on the target hosts. + default: true + type: bool + icinga_validate_certs: + description: + - >- + If `no', SSL certificates will not be validated. icinga_This should + only be used on personally controlled sites using selfigned + certificates. + default: true + type: bool + icinga_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, `client_key' is not required. + type: path + icinga_client_key: + description: + - >- + PEM formatted file that contains your private key to be used for SSL + client authentication. If `client_cert' contains both the + certificate and key, this option is not required. + type: path diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/main.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/main.yml index a8a645323..de1ee749b 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/main.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/meta/main.yml @@ -2,9 +2,12 @@ collections: - telekom_mms.icinga_director galaxy_info: + role_name: ansible_icinga author: telekom_mms - description: icinga configuration + description: This role is used to configure an Icinga Instance over its Icinga Director. license: GPLv3 min_ansible_version: 2.9 galaxy_tags: - icinga + platforms: + - name: all diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command.yml index 23eea8e0c..01f5f90f4 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command.yml @@ -1,7 +1,5 @@ --- -# command.1 = command array -# command.0 = icinga_command attribute -- name: icinga_command +- name: Icinga_command icinga_command: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,21 +9,21 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ command.0.state | default(omit) }}" - command: "{{ command.0.command | default(omit) }}" - command_type: "{{ command.0.command_type | default(icinga_command_type) }}" - disabled: "{{ command.0.disabled | default(icinga_command_disabled) }}" - object_name: "{{ command.1 }}" - imports: "{{ command.0.imports | default(omit) }}" - timeout: "{{ command.0.timeout | default(omit) }}" - zone: "{{ command.0.zone | default(omit) }}" - vars: "{{ command.0.vars | default(omit) }}" - arguments: "{{ command.0.arguments | default(omit) }}" + state: "{{ command.state | default(omit) }}" + command: "{{ command.command | default(omit) }}" + command_type: "{{ command.command_type | default(icinga_command_type) }}" + disabled: "{{ command.disabled | default(icinga_command_disabled) }}" + object_name: "{{ command.name }}" + imports: "{{ command.imports | default(omit) }}" + timeout: "{{ command.timeout | default(omit) }}" + zone: "{{ command.zone | default(omit) }}" + vars: "{{ command.vars | default(omit) }}" + arguments: "{{ command.arguments | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_commands|subelements('command_object') }}" + loop: "{{ icinga_commands }}" loop_control: loop_var: command tags: command diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command_template.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command_template.yml index 85b2a0fae..4056079f4 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command_template.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_command_template.yml @@ -1,7 +1,5 @@ --- -# command_template.1 = command_template array -# command_template.0 = icinga_command_template attribute -- name: icinga_command_template +- name: Icinga_command_template icinga_command_template: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,22 +9,22 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ command_template.0.state | default(omit) }}" - object_name: "{{ command_template.1 }}" - display_name: "{{ command_template.0.display_name | default(omit) }}" - command: "{{ command_template.0.command | default(omit) }}" - command_type: "{{ command_template.0.command_type | default(icinga_command_template_command_type) }}" - timeout: "{{ command_template.0.timeout | default(omit) }}" - imports: "{{ command_template.0.imports | default(omit) }}" - disabled: "{{ command_template.0.disabled | default(omit) }}" - zone: "{{ command_template.0.zone | default(omit) }}" - vars: "{{ command_template.0.vars | default(omit) }}" - arguments: "{{ command_template.0.arguments | default(omit) }}" + state: "{{ command_template.state | default(omit) }}" + object_name: "{{ command_template.name }}" + display_name: "{{ command_template.display_name | default(omit) }}" + command: "{{ command_template.command | default(omit) }}" + command_type: "{{ command_template.command_type | default(icinga_command_template_command_type) }}" + timeout: "{{ command_template.timeout | default(omit) }}" + imports: "{{ command_template.imports | default(omit) }}" + disabled: "{{ command_template.disabled | default(omit) }}" + zone: "{{ command_template.zone | default(omit) }}" + vars: "{{ command_template.vars | default(omit) }}" + arguments: "{{ command_template.arguments | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_command_templates|subelements('command_template_object') }}" + loop: "{{ icinga_command_templates }}" loop_control: loop_var: command_template tags: command_template diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_endpoint.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_endpoint.yml index 7373398a0..d8f3125e5 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_endpoint.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_endpoint.yml @@ -1,7 +1,5 @@ --- -# endpoint.1 = endpoint array -# endpoint.0 = icinga_endpoint attribute -- name: icinga_endpoint +- name: Icinga_endpoint icinga_endpoint: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,17 +9,17 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ endpoint.0.state | default(omit) }}" - object_name: "{{ endpoint.1 }}" - host: "{{ endpoint.0.host | default(omit) }}" - port: "{{ endpoint.0.port | default(omit) }}" - log_duration: "{{ endpoint.0.log_duration | default(omit) }}" - zone: "{{ endpoint.0.zone | default(omit) }}" + state: "{{ endpoint.state | default(omit) }}" + object_name: "{{ endpoint.name }}" + host: "{{ endpoint.host | default(omit) }}" + port: "{{ endpoint.port | default(omit) }}" + log_duration: "{{ endpoint.log_duration | default(omit) }}" + zone: "{{ endpoint.zone | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_endpoints|subelements('endpoint_object') }}" + loop: "{{ icinga_endpoints }}" loop_control: loop_var: endpoint tags: endpoint diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host.yml index 8e4fb6cf8..0bd3eb3e5 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host.yml @@ -1,55 +1,53 @@ --- -# host.1 = host array -# host.0 = icinga_host attribute -- name: icinga_host +- name: Icinga_host icinga_host: client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" - state: "{{ host.0.state | default(omit) }}" + state: "{{ host.state | default(omit) }}" url_password: "{{ icinga_pass }}" url_username: "{{ icinga_user }}" url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" validate_certs: "{{ icinga_validate_certs | default(omit) }}" - accept_config: "{{ host.0.accept_config | default(omit) }}" - address: "{{ host.0.address | default(omit) }}" - address6: "{{ host.0.address6 | default(omit) }}" - check_command: "{{ host.0.check_command | default(omit) }}" - check_interval: "{{ host.0.check_interval | default(omit) }}" - check_period: "{{ host.0.check_period | default(omit) }}" - check_timeout: "{{ host.0.check_timeout | default(omit) }}" + accept_config: "{{ host.accept_config | default(omit) }}" + address: "{{ host.address | default(omit) }}" + address6: "{{ host.address6 | default(omit) }}" + check_command: "{{ host.check_command | default(omit) }}" + check_interval: "{{ host.check_interval | default(omit) }}" + check_period: "{{ host.check_period | default(omit) }}" + check_timeout: "{{ host.check_timeout | default(omit) }}" command_endpoint: "{{ command_endpoint | default(omit) }}" - disabled: "{{ host.0.disabled | default(omit) }}" - display_name: "{{ host.0.display_name | default(omit) }}" - enable_active_checks: "{{ host.0.enable_active_checks | default(omit) }}" - enable_event_handler: "{{ host.0.enable_event_handler | default(omit) }}" - enable_flapping: "{{ host.0.enable_flapping | default(omit) }}" - enable_notifications: "{{ host.0.enable_notifications | default(omit) }}" - enable_passive_checks: "{{ host.0.enable_passive_checks | default(omit) }}" - enable_perfdata: "{{ host.0.enable_perfdata | default(omit) }}" - event_command: "{{ host.0.event_command | default(omit) }}" - flapping_threshold_high: "{{ host.0.flapping_threshold_high | default(omit) }}" - flapping_threshold_low: "{{ host.0.flapping_threshold_low | default(omit) }}" - groups: "{{ host.0.groups | default(omit) }}" - has_agent: "{{ host.0.has_agent | default(omit) }}" - icon_image_alt: "{{ host.0.icon_image_alt | default(omit) }}" - icon_image: "{{ host.0.icon_image | default(omit) }}" - imports: "{{ host.0.imports | default(icinga_host_imports) }}" - master_should_connect: "{{ host.0.master_should_connect | default(omit) }}" - max_check_attempts: "{{ host.0.max_check_attempts | default(omit) }}" - notes_url: "{{ host.0.notes_url | default(omit) }}" - notes: "{{ host.0.notes | default(omit) }}" - object_name: "{{ host.1 }}" - retry_interval: "{{ host.0.retry_interval | default(omit) }}" - vars: "{{ host.0.vars | default(omit) }}" - volatile: "{{ host.0.volatile | default(omit) }}" - zone: "{{ host.0.zone | default(omit) }}" + disabled: "{{ host.disabled | default(omit) }}" + display_name: "{{ host.display_name | default(omit) }}" + enable_active_checks: "{{ host.enable_active_checks | default(omit) }}" + enable_event_handler: "{{ host.enable_event_handler | default(omit) }}" + enable_flapping: "{{ host.enable_flapping | default(omit) }}" + enable_notifications: "{{ host.enable_notifications | default(omit) }}" + enable_passive_checks: "{{ host.enable_passive_checks | default(omit) }}" + enable_perfdata: "{{ host.enable_perfdata | default(omit) }}" + event_command: "{{ host.event_command | default(omit) }}" + flapping_threshold_high: "{{ host.flapping_threshold_high | default(omit) }}" + flapping_threshold_low: "{{ host.flapping_threshold_low | default(omit) }}" + groups: "{{ host.groups | default(omit) }}" + has_agent: "{{ host.has_agent | default(omit) }}" + icon_image_alt: "{{ host.icon_image_alt | default(omit) }}" + icon_image: "{{ host.icon_image | default(omit) }}" + imports: "{{ host.imports | default(icinga_host_imports) }}" + master_should_connect: "{{ host.master_should_connect | default(omit) }}" + max_check_attempts: "{{ host.max_check_attempts | default(omit) }}" + notes_url: "{{ host.notes_url | default(omit) }}" + notes: "{{ host.notes | default(omit) }}" + object_name: "{{ host.name }}" + retry_interval: "{{ host.retry_interval | default(omit) }}" + vars: "{{ host.vars | default(omit) }}" + volatile: "{{ host.volatile | default(omit) }}" + zone: "{{ host.zone | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_hosts|subelements('host_object') }}" + loop: "{{ icinga_hosts }}" loop_control: loop_var: host tags: host diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host_template.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host_template.yml index bad32814d..341848f07 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host_template.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_host_template.yml @@ -1,54 +1,52 @@ --- -# host_template.1 = host_template array -# host_template.0 = icinga_host_template attribute -- name: icinga_host_template +- name: Icinga_host_template icinga_host_template: client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" - state: "{{ host.0.state | default(omit) }}" + state: "{{ host.state | default(omit) }}" url_password: "{{ icinga_pass }}" url_username: "{{ icinga_user }}" url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" validate_certs: "{{ icinga_validate_certs | default(omit) }}" - accept_config: "{{ host_template.0.accept_config | default(omit) }}" - address: "{{ host_template.0.address | default(omit) }}" - address6: "{{ host_template.0.address6 | default(omit) }}" - check_command: "{{ host_template.0.check_command | default(omit) }}" - check_interval: "{{ host_template.0.check_interval | default(omit) }}" - check_period: "{{ host_template.0.check_period | default(omit) }}" - check_timeout: "{{ host_template.0.check_timeout | default(omit) }}" - disabled: "{{ host_template.0.disabled | default(omit) }}" - display_name: "{{ host_template.0.display_name | default(omit) }}" - enable_active_checks: "{{ host_template.0.enable_active_checks | default(omit) }}" - enable_event_handler: "{{ host_template.0.enable_event_handler | default(omit) }}" - enable_flapping: "{{ host_template.0.enable_flapping | default(omit) }}" - enable_notifications: "{{ host_template.0.enable_notifications | default(omit) }}" - enable_passive_checks: "{{ host_template.0.enable_passive_checks | default(omit) }}" - enable_perfdata: "{{ host_template.0.enable_perfdata | default(omit) }}" - event_command: "{{ host_template.0.event_command | default(omit) }}" - flapping_threshold_high: "{{ host_template.0.flapping_threshold_high | default(omit) }}" - flapping_threshold_low: "{{ host_template.0.flapping_threshold_low | default(omit) }}" - groups: "{{ host_template.0.address | default(omit) }}" - has_agent: "{{ host_template.0.has_agent | default(omit) }}" - icon_image_alt: "{{ host_template.0.icon_image_alt | default(omit) }}" - icon_image: "{{ host_template.0.icon_image | default(omit) }}" - imports: "{{ host_template.0.imports | default(omit) }}" - master_should_connect: "{{ host_template.0.master_should_connect | default(omit) }}" - max_check_attempts: "{{ host_template.0.max_check_attempts | default(omit) }}" - notes_url: "{{ host_template.0.notes_url | default(omit) }}" - notes: "{{ host_template.0.notes | default(omit) }}" - object_name: "{{ host_template.1 }}" - retry_interval: "{{ host_template.0.retry_interval | default(omit) }}" - vars: "{{ host_template.0.vars | default(omit) }}" - volatile: "{{ host_template.0.volatile | default(omit) }}" - zone: "{{ host_template.0.zone | default(omit) }}" + accept_config: "{{ host_template.accept_config | default(omit) }}" + address: "{{ host_template.address | default(omit) }}" + address6: "{{ host_template.address6 | default(omit) }}" + check_command: "{{ host_template.check_command | default(omit) }}" + check_interval: "{{ host_template.check_interval | default(omit) }}" + check_period: "{{ host_template.check_period | default(omit) }}" + check_timeout: "{{ host_template.check_timeout | default(omit) }}" + disabled: "{{ host_template.disabled | default(omit) }}" + display_name: "{{ host_template.display_name | default(omit) }}" + enable_active_checks: "{{ host_template.enable_active_checks | default(omit) }}" + enable_event_handler: "{{ host_template.enable_event_handler | default(omit) }}" + enable_flapping: "{{ host_template.enable_flapping | default(omit) }}" + enable_notifications: "{{ host_template.enable_notifications | default(omit) }}" + enable_passive_checks: "{{ host_template.enable_passive_checks | default(omit) }}" + enable_perfdata: "{{ host_template.enable_perfdata | default(omit) }}" + event_command: "{{ host_template.event_command | default(omit) }}" + flapping_threshold_high: "{{ host_template.flapping_threshold_high | default(omit) }}" + flapping_threshold_low: "{{ host_template.flapping_threshold_low | default(omit) }}" + groups: "{{ host_template.address | default(omit) }}" + has_agent: "{{ host_template.has_agent | default(omit) }}" + icon_image_alt: "{{ host_template.icon_image_alt | default(omit) }}" + icon_image: "{{ host_template.icon_image | default(omit) }}" + imports: "{{ host_template.imports | default(omit) }}" + master_should_connect: "{{ host_template.master_should_connect | default(omit) }}" + max_check_attempts: "{{ host_template.max_check_attempts | default(omit) }}" + notes_url: "{{ host_template.notes_url | default(omit) }}" + notes: "{{ host_template.notes | default(omit) }}" + object_name: "{{ host_template.name }}" + retry_interval: "{{ host_template.retry_interval | default(omit) }}" + vars: "{{ host_template.vars | default(omit) }}" + volatile: "{{ host_template.volatile | default(omit) }}" + zone: "{{ host_template.zone | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_host_templates|subelements('host_template_object') }}" + loop: "{{ icinga_host_templates }}" loop_control: loop_var: host_template tags: host_template diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_hostgroup.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_hostgroup.yml index 45f825ece..aff09d400 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_hostgroup.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_hostgroup.yml @@ -1,7 +1,5 @@ --- -# hostgroup.1 = hostgroup array -# hostgroup.0 = icinga_hostgroup attribute -- name: icinga_hostgroup +- name: Icinga_hostgroup icinga_hostgroup: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,15 +9,15 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ hostgroup.0.state | default(omit) }}" - object_name: "{{ hostgroup.1 }}" - display_name: "{{ hostgroup.0.display_name | default(omit) }}" - assign_filter: "{{ hostgroup.0.assign_filter | default('host.name=\"' + hostgroup.1 + '-*\"') }}" + state: "{{ hostgroup.state | default(omit) }}" + object_name: "{{ hostgroup.name }}" + display_name: "{{ hostgroup.display_name | default(omit) }}" + assign_filter: "{{ hostgroup.assign_filter | default('host.name=\"' + hostgroup.name + '-*\"') }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_hostgroups|subelements('hostgroup_object') }}" + loop: "{{ icinga_hostgroups }}" loop_control: loop_var: hostgroup tags: hostgroup diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification.yml index 84f139907..6ffe1156d 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification.yml @@ -1,7 +1,5 @@ --- -# notification.1 = notification array -# notification.0 = icinga_notification attribute -- name: icinga_notification +- name: Icinga_notification icinga_notification: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,23 +9,23 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ notification.0.state | default(omit) }}" - object_name: "{{ notification.1 }}" - notification_interval: "{{ notification.0.notification_interval | default(omit) }}" - states: "{{ notification.0.states | default(omit) }}" - types: "{{ notification.0.types | default(omit) }}" - users: "{{ notification.0.users | default(omit) }}" - user_groups: "{{ notification.0.user_groups | default(omit) }}" - apply_to: "{{ notification.0.apply_to | default(omit) }}" - assign_filter: "{{ notification.0.assign_filter | default(omit) }}" - imports: "{{ notification.0.imports | default(omit) }}" - period: "{{ notification.0.period | default(omit) }}" - vars: "{{ notification.0.vars | default(omit) }}" + state: "{{ notification.state | default(omit) }}" + object_name: "{{ notification.name }}" + notification_interval: "{{ notification.notification_interval | default(omit) }}" + states: "{{ notification.states | default(omit) }}" + types: "{{ notification.types | default(omit) }}" + users: "{{ notification.users | default(omit) }}" + user_groups: "{{ notification.user_groups | default(omit) }}" + apply_to: "{{ notification.apply_to | default(omit) }}" + assign_filter: "{{ notification.assign_filter | default(omit) }}" + imports: "{{ notification.imports | default(omit) }}" + period: "{{ notification.period | default(omit) }}" + vars: "{{ notification.vars | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_notifications|subelements('notification_object') }}" + loop: "{{ icinga_notifications }}" loop_control: loop_var: notification tags: notification diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification_template.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification_template.yml index 7afa26c0a..1692948e7 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification_template.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_notification_template.yml @@ -1,7 +1,5 @@ --- -# notification_template.1 = notification_template array -# notification_template.0 = icinga_notification_template attribute -- name: icinga_notification_template +- name: Icinga_notification_template icinga_notification_template: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,24 +9,24 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - object_name: "{{ notification_template.1 }}" - state: "{{ notification_template.0.state | default(omit) }}" - notification_interval: "{{ notification_template.0.notification_interval | default(omit) }}" - states: "{{ notification_template.0.states | default(omit) }}" - types: "{{ notification_template.0.types | default(omit) }}" - times_begin: "{{ notification_template.0.times_begin | default(omit) }}" - times_end: "{{ notification_template.0.times_end | default(omit) }}" - time_period: "{{ notification_template.0.time_period | default(omit) }}" - users: "{{ notification_template.0.users | default(omit) }}" - user_groups: "{{ notification_template.0.user_groups | default(omit) }}" - notification_command: "{{ notification_template.0.notification_command | default(omit) }}" - imports: "{{ notification_template.0.imports | default(omit) }}" - zone: "{{ notification_template.0.zone | default(omit) }}" + object_name: "{{ notification_template.name }}" + state: "{{ notification_template.state | default(omit) }}" + notification_interval: "{{ notification_template.notification_interval | default(omit) }}" + states: "{{ notification_template.states | default(omit) }}" + types: "{{ notification_template.types | default(omit) }}" + times_begin: "{{ notification_template.times_begin | default(omit) }}" + times_end: "{{ notification_template.times_end | default(omit) }}" + time_period: "{{ notification_template.time_period | default(omit) }}" + users: "{{ notification_template.users | default(omit) }}" + user_groups: "{{ notification_template.user_groups | default(omit) }}" + notification_command: "{{ notification_template.notification_command | default(omit) }}" + imports: "{{ notification_template.imports | default(omit) }}" + zone: "{{ notification_template.zone | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_notification_templates|subelements('notification_template_object') }}" + loop: "{{ icinga_notification_templates }}" loop_control: loop_var: notification_template tags: notification_template diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_scheduled_downtime.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_scheduled_downtime.yml index c42f9e930..84ac9cbe6 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_scheduled_downtime.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_scheduled_downtime.yml @@ -1,5 +1,5 @@ --- -- name: icinga_scheduled_downtime +- name: Icinga_scheduled_downtime telekom_mms.icinga_director.icinga_scheduled_downtime: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -9,21 +9,21 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ downtime.0.state | default(omit) }}" - object_name: "{{ downtime.1 }}" - author: "{{ downtime.0.author }}" - comment: "{{ downtime.0.comment }}" - fixed: "{{ downtime.0.fixed }}" - with_services: "{{ downtime.0.with_services | default(omit) }}" - apply_to: "{{ downtime.0.apply_to }}" - assign_filter: "{{ downtime.0.assign_filter | default(omit) }}" - duration: "{{ downtime.0.duration | default(omit) }}" - ranges: "{{ downtime.0.ranges| default(omit) }}" + state: "{{ downtime.state | default(omit) }}" + object_name: "{{ downtime.name }}" + author: "{{ downtime.author }}" + comment: "{{ downtime.comment }}" + fixed: "{{ downtime.fixed }}" + with_services: "{{ downtime.with_services | default(omit) }}" + apply_to: "{{ downtime.apply_to }}" + assign_filter: "{{ downtime.assign_filter | default(omit) }}" + duration: "{{ downtime.duration | default(omit) }}" + ranges: "{{ downtime.ranges | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_scheduled_downtimes|subelements('scheduled_downtime_object') }}" + loop: "{{ icinga_scheduled_downtimes }}" loop_control: loop_var: downtime tags: downtime diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service.yml index 922bc00ce..4251b9ded 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service.yml @@ -1,7 +1,5 @@ --- -# service.1 = service array -# service.0 = icinga_service attribute -- name: icinga_service +- name: Icinga_service icinga_service: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,34 +9,35 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ service.0.state | default(omit) }}" - object_name: "{{ service.1 }}" - display_name: "{{ service.0.display_name | default(omit) }}" - disabled: "{{ service.0.disabled | default(omit) }}" - check_command: "{{ service.0.check_command | default(omit) }}" - check_interval: "{{ service.0.check_interval | default(omit) }}" - check_period: "{{ service.0.check_period | default(omit) }}" - check_timeout: "{{ service.0.check_timeout | default(omit) }}" - enable_active_checks: "{{ service.0.enable_active_checks | default(omit) }}" - enable_event_handler: "{{ service.0.enable_event_handler | default(omit) }}" - enable_notifications: "{{ service.0.enable_notifications | default(omit) }}" - enable_passive_checks: "{{ service.0.enable_passive_checks | default(omit) }}" - enable_perfdata: "{{ service.0.enable_perfdata | default(omit) }}" - groups: "{{ service.0.groups | default(omit) }}" - host: "{{ service.0.host | default(omit) }}" - imports: "{{ service.0.imports | default(omit) }}" - max_check_attempts: "{{ service.0.max_check_attempts | default(omit) }}" - notes: "{{ service.0.notes | default(omit) }}" - notes_url: "{{ service.0.notes_url | default(omit) }}" - retry_interval: "{{ service.0.retry_interval | default(omit) }}" - use_agent: "{{ service.0.use_agent | default(omit) }}" - vars: "{{ service.0.vars | default(omit) }}" - volatile: "{{ service.0.volatile | default(omit) }}" + state: "{{ service.state | default(omit) }}" + object_name: "{{ service.name }}" + display_name: "{{ service.display_name | default(omit) }}" + disabled: "{{ service.disabled | default(omit) }}" + check_command: "{{ service.check_command | default(omit) }}" + check_interval: "{{ service.check_interval | default(omit) }}" + check_period: "{{ service.check_period | default(omit) }}" + check_timeout: "{{ service.check_timeout | default(omit) }}" + enable_active_checks: "{{ service.enable_active_checks | default(omit) }}" + enable_event_handler: "{{ service.enable_event_handler | default(omit) }}" + enable_notifications: "{{ service.enable_notifications | default(omit) }}" + enable_passive_checks: "{{ service.enable_passive_checks | default(omit) }}" + enable_perfdata: "{{ service.enable_perfdata | default(omit) }}" + groups: "{{ service.groups | default(omit) }}" + host: "{{ service.host | default(omit) }}" + imports: "{{ service.imports | default(omit) }}" + max_check_attempts: "{{ service.max_check_attempts | default(omit) }}" + notes: "{{ service.notes | default(omit) }}" + notes_url: "{{ service.notes_url | default(omit) }}" + retry_interval: "{{ service.retry_interval | default(omit) }}" + use_agent: "{{ service.use_agent | default(omit) }}" + vars: "{{ service.vars | default(omit) }}" + volatile: "{{ service.volatile | default(omit) }}" + service_set: "{{ service.service_set | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_services|subelements('service_object') }}" + loop: "{{ icinga_services }}" loop_control: loop_var: service tags: service diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_apply.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_apply.yml index 3437efc45..7cd18847a 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_apply.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_apply.yml @@ -1,7 +1,5 @@ --- -# service_apply.1 = service_apply array -# service_apply.0 = icinga_service_apply attribute -- name: icinga_service_apply +- name: Icinga_service_apply icinga_service_apply: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,34 +9,34 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ service_apply.0.state | default(omit) }}" - object_name: "{{ service_apply.1 }}" - display_name: "{{ service_apply.0.display_name | default(service_apply.1) }}" - groups: "{{ service_apply.0.groups | default(omit) }}" - apply_for: "{{ service_apply.0.apply_for | default(omit) }}" - assign_filter: "{{ service_apply.0.assign_filter | default(omit) }}" - imports: "{{ service_apply.0.imports | default(omit) }}" - command_endpoint: "{{ service_apply.0.command_endpoint | default(omit) }}" - vars: "{{ service_apply.0.vars | default(omit) }}" - notes: "{{ service_apply.0.notes | default(omit) }}" - notes_url: "{{ service_apply.0.notes_url | default(omit) }}" - check_interval: "{{ service_apply.0.check_interval | default(omit) }}" - check_period: "{{ service_apply.0.check_period | default(omit) }}" - check_timeout: "{{ service_apply.0.check_timeout | default(omit) }}" - check_command: "{{ service_apply.0.check_command | default(omit) }}" - enable_active_checks: "{{ service_apply.0.enable_active_checks | default(omit) }}" - enable_event_handler: "{{ service_apply.0.enable_event_handler | default(omit) }}" - enable_notifications: "{{ service_apply.0.enable_notifications | default(omit) }}" - enable_passive_checks: "{{ service_apply.0.enable_passive_checks | default(omit) }}" - enable_perfdata: "{{ service_apply.0.enable_perfdata | default(omit) }}" - event_command: "{{ service_apply.0.event_command | default(omit) }}" - max_check_attempts: "{{ service_apply.0.max_check_attempts | default(omit) }}" - retry_interval: "{{ service_apply.0.retry_interval | default(omit) }}" + state: "{{ service_apply.state | default(omit) }}" + object_name: "{{ service_apply.name }}" + display_name: "{{ service_apply.display_name | default(service_apply.name) }}" + groups: "{{ service_apply.groups | default(omit) }}" + apply_for: "{{ service_apply.apply_for | default(omit) }}" + assign_filter: "{{ service_apply.assign_filter | default(omit) }}" + imports: "{{ service_apply.imports | default(omit) }}" + command_endpoint: "{{ service_apply.command_endpoint | default(omit) }}" + vars: "{{ service_apply.vars | default(omit) }}" + notes: "{{ service_apply.notes | default(omit) }}" + notes_url: "{{ service_apply.notes_url | default(omit) }}" + check_interval: "{{ service_apply.check_interval | default(omit) }}" + check_period: "{{ service_apply.check_period | default(omit) }}" + check_timeout: "{{ service_apply.check_timeout | default(omit) }}" + check_command: "{{ service_apply.check_command | default(omit) }}" + enable_active_checks: "{{ service_apply.enable_active_checks | default(omit) }}" + enable_event_handler: "{{ service_apply.enable_event_handler | default(omit) }}" + enable_notifications: "{{ service_apply.enable_notifications | default(omit) }}" + enable_passive_checks: "{{ service_apply.enable_passive_checks | default(omit) }}" + enable_perfdata: "{{ service_apply.enable_perfdata | default(omit) }}" + event_command: "{{ service_apply.event_command | default(omit) }}" + max_check_attempts: "{{ service_apply.max_check_attempts | default(omit) }}" + retry_interval: "{{ service_apply.retry_interval | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_service_applies|subelements('service_apply_object') }}" + loop: "{{ icinga_service_applies }}" loop_control: loop_var: service_apply tags: service_apply diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_template.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_template.yml index 0d4eae7cc..80eceef3d 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_template.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_service_template.yml @@ -1,7 +1,5 @@ --- -# service_template.1 = service_template array -# service_template.0 = icinga_service_template attribute -- name: icinga_service_template +- name: Icinga_service_template icinga_service_template: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,35 +9,35 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ service_template.0.state | default(omit) }}" - object_name: "{{ service_template.1 }}" - display_name: "{{ service_template.0.display_name | default(omit) }}" - disabled: "{{ service_template.0.disabled | default(omit) }}" - check_command: "{{ service_template.0.check_command | default(omit) }}" - check_interval: "{{ service_template.0.check_interval | default(omit) }}" - check_period: "{{ service_template.0.check_period | default(omit) }}" - check_timeout: "{{ service_template.0.check_timeout | default(omit) }}" - command_endpoint: "{{ service_template.0.command_endpoint | default(omit) }}" - enable_active_checks: "{{ service_template.0.enable_active_checks | default(omit) }}" - enable_event_handler: "{{ service_template.0.enable_event_handler | default(omit) }}" - enable_notifications: "{{ service_template.0.enable_notifications | default(omit) }}" - enable_passive_checks: "{{ service_template.0.enable_passive_checks | default(omit) }}" - enable_perfdata: "{{ service_template.0.enable_perfdata | default(omit) }}" - groups: "{{ service_template.0.groups | default(omit) }}" - imports: "{{ service_template.0.imports | default(omit) }}" - max_check_attempts: "{{ service_template.0.max_check_attempts | default(omit) }}" - notes: "{{ service_template.0.notes | default(omit) }}" - notes_url: "{{ service_template.0.notes_url | default(omit) }}" - retry_interval: "{{ service_template.0.retry_interval | default(omit) }}" - use_agent: "{{ service_template.0.use_agent | default(omit) }}" - vars: "{{ service_template.0.vars | default(omit) }}" - volatile: "{{ service_template.0.volatile | default(omit) }}" - event_command: "{{ service_template.0.event_command | default(omit) }}" + state: "{{ service_template.state | default(omit) }}" + object_name: "{{ service_template.name }}" + display_name: "{{ service_template.display_name | default(omit) }}" + disabled: "{{ service_template.disabled | default(omit) }}" + check_command: "{{ service_template.check_command | default(omit) }}" + check_interval: "{{ service_template.check_interval | default(omit) }}" + check_period: "{{ service_template.check_period | default(omit) }}" + check_timeout: "{{ service_template.check_timeout | default(omit) }}" + command_endpoint: "{{ service_template.command_endpoint | default(omit) }}" + enable_active_checks: "{{ service_template.enable_active_checks | default(omit) }}" + enable_event_handler: "{{ service_template.enable_event_handler | default(omit) }}" + enable_notifications: "{{ service_template.enable_notifications | default(omit) }}" + enable_passive_checks: "{{ service_template.enable_passive_checks | default(omit) }}" + enable_perfdata: "{{ service_template.enable_perfdata | default(omit) }}" + groups: "{{ service_template.groups | default(omit) }}" + imports: "{{ service_template.imports | default(omit) }}" + max_check_attempts: "{{ service_template.max_check_attempts | default(omit) }}" + notes: "{{ service_template.notes | default(omit) }}" + notes_url: "{{ service_template.notes_url | default(omit) }}" + retry_interval: "{{ service_template.retry_interval | default(omit) }}" + use_agent: "{{ service_template.use_agent | default(omit) }}" + vars: "{{ service_template.vars | default(omit) }}" + volatile: "{{ service_template.volatile | default(omit) }}" + event_command: "{{ service_template.event_command | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_service_templates|subelements('service_template_object') }}" + loop: "{{ icinga_service_templates }}" loop_control: loop_var: service_template tags: service_template diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_servicegroup.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_servicegroup.yml index 9ba5e40dc..2d75e694e 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_servicegroup.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_servicegroup.yml @@ -1,7 +1,5 @@ --- -# servicegroup.1 = servicegroup array -# servicegroup.0 = icinga_servicegroup attribute -- name: icinga_servicegroup +- name: Icinga_servicegroup icinga_servicegroup: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,15 +9,15 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ servicegroup.0.state | default(omit) }}" - object_name: "{{ servicegroup.1 }}" - display_name: "{{ servicegroup.0.display_name | default(omit) }}" - assign_filter: "{{ servicegroup.0.assign_filter | default(omit) }}" + state: "{{ servicegroup.state | default(omit) }}" + object_name: "{{ servicegroup.name }}" + display_name: "{{ servicegroup.display_name | default(omit) }}" + assign_filter: "{{ servicegroup.assign_filter | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_servicegroups|subelements('servicegroup_object') }}" + loop: "{{ icinga_servicegroups }}" loop_control: loop_var: servicegroup tags: servicegroup diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_serviceset.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_serviceset.yml index a609cca2d..88b49fe75 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_serviceset.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_serviceset.yml @@ -1,7 +1,5 @@ --- -# serviceset.1 = serviceset array -# serviceset.0 = icinga_serviceset attribute -- name: icinga_serviceset +- name: Icinga_serviceset icinga_serviceset: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,15 +9,15 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ service.0.state | default(omit) }}" - assign_filter: "{{ serviceset.0.assign_filter | default(omit)}}" - description: "{{ serviceset.0.description | default(omit)}}" - object_name: "{{ serviceset.1 }}" + state: "{{ service.state | default(omit) }}" + assign_filter: "{{ serviceset.assign_filter | default(omit) }}" + description: "{{ serviceset.description | default(omit) }}" + object_name: "{{ serviceset.name }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_servicesets|subelements('serviceset_object') }}" + loop: "{{ icinga_servicesets }}" loop_control: loop_var: serviceset tags: serviceset diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_timeperiod.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_timeperiod.yml index bfc702963..fd216c155 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_timeperiod.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_timeperiod.yml @@ -1,7 +1,5 @@ --- -# timeperiod.1 = timeperiod array -# timeperiod.0 = icinga_timeperiod attribute -- name: icinga_timeperiod +- name: Icinga_timeperiod icinga_timeperiod: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,16 +9,16 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ timeperiod.0.state | default(omit) }}" - object_name: "{{ timeperiod.1 }}" - display_name: "{{ timeperiod.0.display_name | default(omit) }}" - imports: "{{ timeperiod.0.imports | default(omit) }}" - ranges: "{{ timeperiod.0.ranges | default(omit) }}" + state: "{{ timeperiod.state | default(omit) }}" + object_name: "{{ timeperiod.name }}" + display_name: "{{ timeperiod.display_name | default(omit) }}" + imports: "{{ timeperiod.imports | default(omit) }}" + ranges: "{{ timeperiod.ranges | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_timeperiods|subelements('timeperiod_object') }}" + loop: "{{ icinga_timeperiods }}" loop_control: loop_var: timeperiod tags: timeperiod diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user.yml index 0d3552de9..83fde7cab 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user.yml @@ -1,7 +1,5 @@ --- -# user.1 = user array -# user.0 = icinga_user attribute -- name: icinga_user +- name: Icinga_user icinga_user: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,19 +9,19 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ user.0.state | default(omit) }}" - object_name: "{{ user.1 }}" - display_name: "{{ user.0.display_name | default(omit) }}" - imports: "{{ user.0.imports | default(icinga_user_imports) }}" - pager: "{{ user.0.pager | default(omit) }}" - period: "{{ user.0.period | default(omit) }}" - disabled: "{{ user.0.disabled | default(omit) }}" - email: "{{ user.0.email | default(icinga_user_email) }}" + state: "{{ user.state | default(omit) }}" + object_name: "{{ user.name }}" + display_name: "{{ user.display_name | default(omit) }}" + imports: "{{ user.imports | default(icinga_user_imports) }}" + pager: "{{ user.pager | default(omit) }}" + period: "{{ user.period | default(omit) }}" + disabled: "{{ user.disabled | default(omit) }}" + email: "{{ user.email | default(icinga_user_email) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_users|subelements('user_object') }}" + loop: "{{ icinga_users }}" loop_control: loop_var: user tags: user diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_group.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_group.yml new file mode 100644 index 000000000..ca0cf8b43 --- /dev/null +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_group.yml @@ -0,0 +1,24 @@ +--- +- name: Icinga_user_group + icinga_user_group: + url: "{{ icinga_url }}" + use_proxy: "{{ icinga_use_proxy | default(omit) }}" + validate_certs: "{{ icinga_validate_certs | default(omit) }}" + url_username: "{{ icinga_user }}" + url_password: "{{ icinga_pass }}" + force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" + client_cert: "{{ icinga_client_cert | default(omit) }}" + client_key: "{{ icinga_client_key | default(omit) }}" + state: "{{ user_group.state | default(omit) }}" + object_name: "{{ user_group.name }}" + display_name: "{{ user_group.display_name | default(omit) }}" + disabled: "{{ user_group.disabled | default(omit) }}" + retries: 3 + delay: 3 + register: result + until: result is succeeded + loop: "{{ icinga_user_groups }}" + loop_control: + loop_var: user_group + tags: user_group + notify: config_deploy diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_template.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_template.yml index 432472e6e..3afc36654 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_template.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_user_template.yml @@ -1,7 +1,5 @@ --- -# user_template.1 = user_template array -# user_template.0 = icinga_user_template attribute -- name: icinga_user_template +- name: Icinga_user_template icinga_user_template: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,17 +9,17 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ user_template.0.state | default(omit) }}" - object_name: "{{ user_template.1 }}" - imports: "{{ user_template.0.imports | default(omit) }}" - period: "{{ user_template.0.period | default(omit) }}" - enable_notifications: "{{ user_template.0.enable_notifications | default(omit) }}" - zone: "{{ user_template.0.zone | default(omit) }}" + state: "{{ user_template.state | default(omit) }}" + object_name: "{{ user_template.name }}" + imports: "{{ user_template.imports | default(omit) }}" + period: "{{ user_template.period | default(omit) }}" + enable_notifications: "{{ user_template.enable_notifications | default(omit) }}" + zone: "{{ user_template.zone | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_user_templates|subelements('user_template_object') }}" + loop: "{{ icinga_user_templates }}" loop_control: loop_var: user_template tags: user_template diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_zone.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_zone.yml index c907f3f87..90b6fc3f6 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_zone.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/icinga_zone.yml @@ -1,7 +1,5 @@ --- -# zone.1 = zone array -# zone.0 = icinga_zone attribute -- name: icinga_zone +- name: Icinga_zone icinga_zone: url: "{{ icinga_url }}" use_proxy: "{{ icinga_use_proxy | default(omit) }}" @@ -11,15 +9,15 @@ force_basic_auth: "{{ icinga_force_basic_auth | default(omit) }}" client_cert: "{{ icinga_client_cert | default(omit) }}" client_key: "{{ icinga_client_key | default(omit) }}" - state: "{{ zone.0.state | default(omit) }}" - object_name: "{{ zone.1 }}" - is_global: "{{ zone.0.is_global | default(omit) }}" - parent: "{{ zone.0.parent | default(omit) }}" + state: "{{ zone.state | default(omit) }}" + object_name: "{{ zone.name }}" + is_global: "{{ zone.is_global | default(omit) }}" + parent: "{{ zone.parent | default(omit) }}" retries: 3 delay: 3 register: result until: result is succeeded - loop: "{{ icinga_zones|subelements('zone_object') }}" + loop: "{{ icinga_zones }}" loop_control: loop_var: zone tags: zone diff --git a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/main.yml b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/main.yml index 24d16e370..aa30bf146 100644 --- a/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/main.yml +++ b/ansible_collections/telekom_mms/icinga_director/roles/ansible_icinga/tasks/main.yml @@ -1,90 +1,95 @@ --- -- name: icinga timeperiod configuration - include_tasks: icinga_timeperiod.yml +- name: Icinga timeperiod configuration + ansible.builtin.include_tasks: icinga_timeperiod.yml when: icinga_timeperiods is defined tags: timeperiod -- name: icinga user_template configuration - include_tasks: icinga_user_template.yml +- name: Icinga user_template configuration + ansible.builtin.include_tasks: icinga_user_template.yml when: icinga_user_templates is defined tags: user_template -- name: icinga user configuration - include_tasks: icinga_user.yml +- name: Icinga user configuration + ansible.builtin.include_tasks: icinga_user.yml when: icinga_users is defined tags: user -- name: icinga zone configuration - include_tasks: icinga_zone.yml +- name: Icinga user_group configuration + ansible.builtin.include_tasks: icinga_user_group.yml + when: icinga_user_groups is defined + tags: user_group + +- name: Icinga zone configuration + ansible.builtin.include_tasks: icinga_zone.yml when: icinga_zones is defined tags: zone -- name: icinga endpoint configuration - include_tasks: icinga_endpoint.yml +- name: Icinga endpoint configuration + ansible.builtin.include_tasks: icinga_endpoint.yml when: icinga_endpoints is defined tags: endpoint -- name: icinga hostgroup configuration - include_tasks: icinga_hostgroup.yml +- name: Icinga hostgroup configuration + ansible.builtin.include_tasks: icinga_hostgroup.yml when: icinga_hostgroups is defined tags: hostgroup -- name: icinga host_template configuration - include_tasks: icinga_host_template.yml +- name: Icinga host_template configuration + ansible.builtin.include_tasks: icinga_host_template.yml when: icinga_host_templates is defined tags: host_template -- name: icinga host configuration - include_tasks: icinga_host.yml +- name: Icinga host configuration + ansible.builtin.include_tasks: icinga_host.yml when: icinga_hosts is defined tags: host -- name: icinga command_template configuration - include_tasks: icinga_command_template.yml +- name: Icinga command_template configuration + ansible.builtin.include_tasks: icinga_command_template.yml when: icinga_command_templates is defined tags: command_template -- name: icinga command configuration - include_tasks: icinga_command.yml +- name: Icinga command configuration + ansible.builtin.include_tasks: icinga_command.yml when: icinga_commands is defined tags: command -- name: icinga service_template configuration - include_tasks: icinga_service_template.yml +- name: Icinga service_template configuration + ansible.builtin.include_tasks: icinga_service_template.yml when: icinga_service_templates is defined tags: service_template -- name: icinga service_apply configuration - include_tasks: icinga_service_apply.yml +- name: Icinga service_apply configuration + ansible.builtin.include_tasks: icinga_service_apply.yml when: icinga_service_applies is defined tags: service_apply -- name: icinga servicegroup configuration - include_tasks: icinga_servicegroup.yml +- name: Icinga servicegroup configuration + ansible.builtin.include_tasks: icinga_servicegroup.yml when: icinga_servicegroups is defined tags: servicegroup -- name: icinga service configuration - include_tasks: icinga_service.yml +- name: Icinga service configuration + ansible.builtin.include_tasks: icinga_service.yml when: icinga_services is defined tags: service -- name: icinga serviceset configuration - include_tasks: icinga_serviceset.yml +- name: Icinga serviceset configuration + ansible.builtin.include_tasks: icinga_serviceset.yml when: icinga_servicesets is defined tags: serviceset -- name: icinga notification template configuration - include_tasks: icinga_notification_template.yml +- name: Icinga notification template configuration + ansible.builtin.include_tasks: icinga_notification_template.yml when: icinga_notification_templates is defined tags: notification_template -- name: icinga notification configuration - include_tasks: icinga_notification.yml +- name: Icinga notification configuration + ansible.builtin.include_tasks: icinga_notification.yml when: icinga_notifications is defined tags: notification -- name: icinga downtime configuration - include_tasks: icinga_scheduled_downtime.yml +- name: Icinga downtime configuration + ansible.builtin.include_tasks: icinga_scheduled_downtime.yml when: icinga_scheduled_downtimes is defined tags: downtime -- cgit v1.2.3