From a2a37bd54c059a2cfd88b068e5c68f3989027289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20L=C3=BCscher?= Date: Fri, 3 May 2024 14:03:46 +0000 Subject: [PATCH] feat(ansible): add role for variable debugging --- ansible/roles/debug_forge_vars/README.md | 46 +++++++++++++++++++ .../roles/debug_forge_vars/defaults/main.yml | 2 + ansible/roles/debug_forge_vars/tasks/main.yml | 13 ++++++ 3 files changed, 61 insertions(+) create mode 100644 ansible/roles/debug_forge_vars/README.md create mode 100644 ansible/roles/debug_forge_vars/defaults/main.yml create mode 100644 ansible/roles/debug_forge_vars/tasks/main.yml diff --git a/ansible/roles/debug_forge_vars/README.md b/ansible/roles/debug_forge_vars/README.md new file mode 100644 index 0000000..560eb0e --- /dev/null +++ b/ansible/roles/debug_forge_vars/README.md @@ -0,0 +1,46 @@ +# Role - debug_forge_vars + +This role is used for debugging purposes only. + +## Variables + +The role has the following variables defined. + +### default/main.yml + +In the [main.yml](./defaults/main.yml/) all variables are defined which are +used in the context of debugging. Usually end-users should not worry about them to much. + + + +| name | type | default value | description | +| ------------------------------- | ---- | ------------- | ------------------------------------------------------------------------------------------- | +| `forge_debug_vars_regex_search` | str | ^forge\_.+ | Python regex search term. Useful if you want to print out all variables starting with `xyz` | + + + +## Example Playbook Usage + +This role is best included in a playbook as pre-task: + +```yaml +pre_tasks: + - name: DEBUG - forge variables + ansible.builtin.include_role: + name: debug_forge_vars +``` + +With the role included you can launch the playbook in verbose mode `ansible-playbook -v`. +This will print all variables found with the regex search term defined in the `forge_debug_vars_regex_search` +variable. + +You can modify the `forge_debug_vars_regex_search` term by changing it via the vars statement + +```yaml +pre_tasks: + - name: DEBUG - forge git variables + ansible.builtin.include_role: + name: debug_forge_vars + vars: + forge_debug_vars_regex_search: ^forge_git.+ +``` diff --git a/ansible/roles/debug_forge_vars/defaults/main.yml b/ansible/roles/debug_forge_vars/defaults/main.yml new file mode 100644 index 0000000..64ddde6 --- /dev/null +++ b/ansible/roles/debug_forge_vars/defaults/main.yml @@ -0,0 +1,2 @@ +# Default vars for this role +forge_debug_vars_regex_search: "{{ lookup('ansible.builtin.env', 'FORGE_DEBUG_VARS_REGEX_SEARCH', default='^forge_.+') }}" diff --git a/ansible/roles/debug_forge_vars/tasks/main.yml b/ansible/roles/debug_forge_vars/tasks/main.yml new file mode 100644 index 0000000..cebb679 --- /dev/null +++ b/ansible/roles/debug_forge_vars/tasks/main.yml @@ -0,0 +1,13 @@ +--- +# main task file for this role + +- name: DEBUG | forge variables + ansible.builtin.debug: + msg: "{{ item }}: {{ lookup('ansible.builtin.vars', item) }}" + verbosity: 1 + loop: "{{ __forge_vars_used }}" + loop_control: + extended: true + label: "{{ ansible_loop.index }}/{{ ansible_loop.length }}" + vars: + __forge_vars_used: "{{ lookup('ansible.builtin.varnames', forge_debug_vars_regex_search, wantlist=true) }}"