Role to create a CMDB within a Dokuwiki
Find a file
2023-11-02 08:53:10 +01:00
defaults Make namespace configurable 2023-11-02 08:53:10 +01:00
files/logos first commit 2023-06-19 15:12:18 +02:00
meta first commit 2023-06-19 15:12:18 +02:00
tasks Purge cache after running the role 2023-11-01 17:12:56 +01:00
templates Make namespace configurable 2023-11-02 08:53:10 +01:00
README.md Make namespace configurable 2023-11-02 08:53:10 +01:00

Configuration Management Database

Diese Rolle erstellt eine CMDB innerhalb eines vorhandenen Dokuwikis.

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.

Storage Boxes

Ebenso können CMDB-Seiten für Hetzner Storage Boxes 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.

Variablen

Variable Beschreibung Default File
cmdb Dictionary for dokuwiki server variables (required) -- group_vars/all/cmdb.yml
cmdb.wiki_server dokuwiki server (required) -- group_vars/all/cmdb.yml
cmdb.wiki_conf_file_path Pfad zur local.php des Wikis (required), Bspw: /etc/dokuwiki/farm/mywiki/local.php -- group_vars/al/cmdb
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
cmdb.wiki_user File system user of wiki files and directories (required) -- group_vars/all/cmdb.yml
cmdb.wiki_group File system group of wiki files and directories (required) -- group_vars/all/cmdb.yml
cmdb_namespace Namespace für alle CMDB-Seiten (required) cmdb group_vars/all/cmdb
cmdb_documentation_path Wiki-Pfad zur Dokumentation den Hosts (required) -- group_vars/all/cmdb oder host_vars/..
cmdb_customer Name der Kundin/ Besitzerin des Hosts -- host_vars/..
cmdb_customer_service_agreement Link zum Servicevertrag im Wiki -- host_vars/..

Beispiel-Playboook

---
- 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:

ansible-playbook playbooks/cmdb.yml --tags never,install

Erstellung / Aktualisierung der Einträge

Führe die Rolle ohne install-Tag aus:

ansible-playbook playbooks/cmdb.yml