2023-06-19 15:12:18 +02:00
|
|
|
Configuration Management Database
|
|
|
|
=================================
|
|
|
|
|
2023-11-01 11:09:55 +01:00
|
|
|
Diese Rolle erstellt eine [CMDB](https://de.wikipedia.org/wiki/Configuration_Management_Database) innerhalb eines vorhandenen Dokuwikis.
|
2023-06-19 15:12:18 +02:00
|
|
|
|
2023-11-01 16:52:49 +01:00
|
|
|
Dabei werden die meisten Informationen per `ansible_facts`-Module direkt vom jeweiligen Host ermittelt. Darüber hinaus
|
|
|
|
können weitere Variablen per `host_vars` definiert werden.
|
2023-06-19 15:12:18 +02:00
|
|
|
|
2023-11-01 16:52:49 +01:00
|
|
|
## Storage Boxes
|
|
|
|
|
|
|
|
Ebenso können CMDB-Seiten für [Hetzner Storage Boxes](https://docs.hetzner.com/de/robot/storage-box) erstellt werden. Auf diesen ist kein
|
|
|
|
Python-Interpreter vorhanden. Möglich Informationen über eine Box müssen deshalb per `raw`-Module ermittelt werden. Bei Verwendung
|
|
|
|
der `mitogen`-Strategie kann es zu Problem mit dem Modul kommen. Als mögliche Lösung kann die Strategie auf Playbook-Ebene angepasst werden.
|
|
|
|
|
|
|
|
Voraussetzung ist weiterhin eine Inventory-Gruppe namens `storage_boxes`, die alle Storage Boxes zusammenfasst.
|
2023-06-19 15:12:18 +02:00
|
|
|
|
|
|
|
## Variablen
|
|
|
|
|
2023-11-02 08:53:10 +01:00
|
|
|
| Variable | Beschreibung | Default | File |
|
|
|
|
| -------- | ------------ | ------- | ---- |
|
2023-06-19 15:12:18 +02:00
|
|
|
| `cmdb` | Dictionary for dokuwiki server variables _(required)_ | -- | `group_vars/all/cmdb.yml` |
|
|
|
|
| `cmdb.wiki_server` | dokuwiki server _(required)_ | -- | `group_vars/all/cmdb.yml` |
|
2023-11-01 17:12:56 +01:00
|
|
|
| `cmdb.wiki_conf_file_path` | Pfad zur `local.php` des Wikis _(required)_, Bspw: `/etc/dokuwiki/farm/mywiki/local.php` | -- | `group_vars/al/cmdb` |
|
2023-06-19 15:12:18 +02:00
|
|
|
| `cmdb.wiki_pages_path` | path for wiki pages on dokuwiki server _(required)_ | -- | `group_vars/all/cmdb.yml` |
|
|
|
|
| `cmdb.wiki_media_path` | path for media on dokuwiki server _(required)_ | -- | `group_vars/all/cmdb.yml` |
|
|
|
|
| `cmdb.wiki_meta_path` | path for metadata on dokuwiki server _(required)_ | -- | `group_vars/all/cmdb.yml` |
|
2023-08-13 22:05:45 +02:00
|
|
|
| `cmdb.wiki_user` | File system user of wiki files and directories _(required)_ | -- | `group_vars/all/cmdb.yml`|
|
2023-07-14 16:10:28 +02:00
|
|
|
| `cmdb.wiki_group` | File system group of wiki files and directories _(required)_ | -- | `group_vars/all/cmdb.yml`|
|
2023-11-02 08:53:10 +01:00
|
|
|
| `cmdb_namespace` | Namespace für alle CMDB-Seiten _(required)_ | `cmdb` | `group_vars/all/cmdb` |
|
2023-11-01 17:51:39 +01:00
|
|
|
| `cmdb_documentation_path` | Wiki-Pfad zur Dokumentation den Hosts _(required)_ | --| `group_vars/all/cmdb` oder `host_vars/..` |
|
2023-11-01 17:12:56 +01:00
|
|
|
| `cmdb_customer` | Name der Kundin/ Besitzerin des Hosts | -- | `host_vars/..` |
|
|
|
|
| `cmdb_customer_service_agreement` | Link zum Servicevertrag im Wiki | -- | `host_vars/..` |
|
2023-11-01 16:52:49 +01:00
|
|
|
|
|
|
|
## Beispiel-Playboook
|
|
|
|
|
|
|
|
```YAML
|
|
|
|
---
|
|
|
|
- name: Create CMDB entries for regular servers
|
|
|
|
hosts:
|
|
|
|
- all,!storage_boxes
|
|
|
|
roles:
|
|
|
|
- role: senselab.cmdb
|
|
|
|
|
|
|
|
- name: Create CMDB entries for storage boxes
|
|
|
|
gather_facts: false
|
|
|
|
strategy: linear
|
|
|
|
hosts:
|
|
|
|
- storage_boxes
|
|
|
|
tasks:
|
|
|
|
- name: Run storage box tasks
|
|
|
|
ansible.builtin.include_role:
|
|
|
|
name: senselab.cmdb
|
|
|
|
tasks_from: storage_box.yml
|
|
|
|
|
|
|
|
- name: Create items
|
|
|
|
ansible.builtin.include_role:
|
|
|
|
name: senselab.cmdb
|
|
|
|
tasks_from: server.yml
|
|
|
|
args:
|
|
|
|
apply:
|
|
|
|
delegate_to: "{{ cmdb.wiki_server }}"
|
|
|
|
```
|
|
|
|
|
|
|
|
## Installation der CMDB
|
|
|
|
Führe die Rolle mit dem `install`-Tag aus:
|
|
|
|
```Shell
|
|
|
|
ansible-playbook playbooks/cmdb.yml --tags never,install
|
|
|
|
```
|
|
|
|
|
|
|
|
## Erstellung / Aktualisierung der Einträge
|
|
|
|
Führe die Rolle ohne `install`-Tag aus:
|
|
|
|
```Shell
|
|
|
|
ansible-playbook playbooks/cmdb.yml
|
|
|
|
```
|