From 9c98c905c185caf81431deb5a81a988c923b73da Mon Sep 17 00:00:00 2001 From: phil Date: Wed, 1 Nov 2023 16:52:49 +0100 Subject: [PATCH] Add example playbook --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++--------- tasks/main.yml | 2 +- 2 files changed, 52 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 0116e25..c6c79fc 100644 --- a/README.md +++ b/README.md @@ -3,17 +3,16 @@ Configuration Management Database Diese Rolle erstellt eine [CMDB](https://de.wikipedia.org/wiki/Configuration_Management_Database) innerhalb eines vorhandenen Dokuwikis. -## Installation -Führe die Rolle mit dem `install`-Tag aus: -```Shell -ansible-playbook playbooks/cmdb.yml --tags install -``` +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. -## Erstellung / Aktualisierung der Einträge -Führe die Rolle ohne `install`-Tag aus: -```Shell -ansible-playbook playbooks/cmdb.yml --skip-tags install -``` +## 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. ## Variablen @@ -26,3 +25,45 @@ ansible-playbook playbooks/cmdb.yml --skip-tags install | `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`| + +## 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 +``` diff --git a/tasks/main.yml b/tasks/main.yml index fd4fdb7..88e5cc0 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -2,7 +2,7 @@ - name: Initiate cmdb ansible.builtin.import_tasks: install.yml delegate_to: "{{ cmdb.wiki_server }}" - tags: install + tags: never, install - name: Gather facts ansible.builtin.package_facts: