From f3cd2821841e49e62e326251a264ea83237bceaf Mon Sep 17 00:00:00 2001 From: Konrad Bucheli Date: Fri, 2 Feb 2024 17:12:17 +0100 Subject: [PATCH] start with the icinga2 import diagram --- infrastructure-guide/icinga2.md | 9 +++-- .../icinga2/icinga2_import.png | Bin 0 -> 52752 bytes .../icinga2/icinga2_import.puml | 32 ++++++++++++++++++ .../infrastructure_systems.md | 2 +- 4 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 infrastructure-guide/icinga2/icinga2_import.png create mode 100644 infrastructure-guide/icinga2/icinga2_import.puml diff --git a/infrastructure-guide/icinga2.md b/infrastructure-guide/icinga2.md index 43e00f2f..8364537e 100644 --- a/infrastructure-guide/icinga2.md +++ b/infrastructure-guide/icinga2.md @@ -42,9 +42,8 @@ The Icinga Director import pipeline is provides as [Configuration Basket templat ## Development of Icinga Director Import Pipeline -The base are always the Configuration Basket snapshots (JSON files) which we have in Git. For changes either change them directly or change them in the Icinga Director web UI and then create a new snapshot of the according Configuration Basket, download it, modify if necessary: -- if it is templated as for the Sysdb import pipeline -- fix the definition of the Configuration Basket itself which is stringified JSON and should be plain JSON ([bug](https://github.com/Icinga/icingaweb2-module-director/issues/2774)) +The base are always the Configuration Basket snapshots (JSON files) which we have in Git. +For changes either change them directly or change them in the Icinga Director web UI and then create a new snapshot of the according Configuration Basket, download it, modify if necessary, e.g. if it is templated as for the Sysdb import pipeline and then commit it to the git repo. The rollout into production is then done with the bootstrap Ansible role for the Icinga2 Master nodes. @@ -59,8 +58,8 @@ Further there is an issue with updated Sync Rules in the Configuration Basket sn The Icinga2 infrastructure is maintained and prepared by AIT. Following items need to be prepared from their side: - basic setup of Icinga2 Master -- add the Icinga Director module -- add Fileshipper module with following configuration (`/etc/icingaweb2/modules/fileshipper/imports.ini`): +- addition of the Icinga Director module +- addition of the Fileshipper module with following configuration (`/etc/icingaweb2/modules/fileshipper/imports.ini`): ``` [Import AWI Linux Infrastructure Servers] basedir = "/etc/icingaweb2/psi/lx-core" diff --git a/infrastructure-guide/icinga2/icinga2_import.png b/infrastructure-guide/icinga2/icinga2_import.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd1b8c8b2576da89974df1dce4e0342168b33ac GIT binary patch literal 52752 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

6`EpYf8A^p2)`Zt=C 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 literal 0 HcmV?d00001 diff --git a/infrastructure-guide/icinga2/icinga2_import.puml b/infrastructure-guide/icinga2/icinga2_import.puml new file mode 100644 index 00000000..abb31c09 --- /dev/null +++ b/infrastructure-guide/icinga2/icinga2_import.puml @@ -0,0 +1,32 @@ +@startuml + +node "Icinga2 Master" as master { + control "sysdb-director-import.timer" as import_timer + file "sysdb-director-import" as import_script + component "Director" as director { + component "awi-lx-sysdb-hostgroup-import" as hostgroup_import + component "awi-lx-sysdb-hostgroup-sync-rule" as hostgroup_sync + component "awi-lx-sysdb-host-import" as host_import + component "awi-lx-sysdb-host-sync-rule" as host_sync + component "awi-lx-sysdb-service-override-sync-rule" as service_override_sync + } +} +node "Sysdb Server" as sysdb_server { + component "Sysdb API" as sysdb_api { + component "icinga2/v1/roles" as sysdb_api_roles + component "icinga2/v1/hostgroups" as sysdb_api_hostgroups + component "icinga2/v1/hosts" as sysdb_api_hosts + component "icinga2/v1/ad_notification_users" as sysdb_api_roles_ad_notification_users + } +} +import_timer -[dashed]-> import_script : "triggers" +import_script -[dashed]-> director : triggers imports, sync rules and deployment + +sysdb_api_hostgroups --> hostgroup_import +hostgroup_import --> hostgroup_sync + +sysdb_api_hosts --> host_import +host_import --> host_sync +host_import --> service_override_sync + +@enduml diff --git a/infrastructure-guide/infrastructure_systems.md b/infrastructure-guide/infrastructure_systems.md index 8e4dda95..0c169b42 100644 --- a/infrastructure-guide/infrastructure_systems.md +++ b/infrastructure-guide/infrastructure_systems.md @@ -22,7 +22,7 @@ Sysdb Access: Monitoring: -* [Icinga2](icinga2) - autmoatic integration into Icinga2 +* [Icinga2](icinga2) - automatic integration into Icinga2 * [influx00](influx00) - 129.129.190.225 - Influx database server