diff options
Diffstat (limited to 'ansible_collections/telekom_mms')
40 files changed, 4613 insertions, 1162 deletions
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: | + <!-- BEGIN_ANSIBLE_DOCS --> + # 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 %} + + <!-- END_ANSIBLE_DOCS --> 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 }, { @@ -407,6 +421,13 @@ "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", "chksum_type": null, @@ -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 <sebastian.gumprich@telekom.de>", "Lars Krahl <lars.krahl@telekom.de>" @@ -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 +<!-- BEGIN_ANSIBLE_DOCS --> +# 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 <https://github.com/pythongssapi/python- 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 +<!-- END_ANSIBLE_DOCS --> ## 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 <https://github.com/pythongssapi/python- + 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 |