Role to create a CMDB within a Dokuwiki
Go to file
2023-11-01 16:55:23 +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 Add example playbook 2023-11-01 16:52:49 +01:00
templates Update SB item page 2023-11-01 16:35:36 +01:00
README.md Add missing variables to Readme 2023-11-01 16:55:23 +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 Name Function Default value 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_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_customer Name der Kundin/ Besitzerin des Hosts -- --
cmdb_customer_service_agreement Link zum Servicevertrag im Wiki -- --

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