From 95ec310f3b5766589d774f0151741d46a3449b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Sachse?= <joerg.sachse@slub-dresden.de> Date: Mon, 20 Jan 2025 14:11:10 +0100 Subject: [PATCH] refactor: move references to Ansible Vault variables out of the actual code, provide sane defaults and overwrite those with the values from the Vault. This is done to improve documentation of the interface used with this role. --- defaults/main.yml | 6 ++++++ tasks/compile_callas_binaries.yml | 2 +- tasks/configure_crontab.yml | 4 ++-- tasks/configure_iptables.yml | 2 +- tasks/configure_nfs_mounts.yml | 6 +++--- tasks/create_users_groups.yml | 4 ++-- tasks/install_callas_pdf_engine.yml | 12 ++++++------ vars/main.yml | 5 +++++ vars/validator.vault.example | 21 --------------------- 9 files changed, 26 insertions(+), 36 deletions(-) create mode 100644 defaults/main.yml delete mode 100644 vars/validator.vault.example diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..3f991fb --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,6 @@ +--- +iptables: [] +nfs_mounts: {} +users: [] +groups: [] +callas_sdk_version: "" diff --git a/tasks/compile_callas_binaries.yml b/tasks/compile_callas_binaries.yml index ec9a289..19741fa 100644 --- a/tasks/compile_callas_binaries.yml +++ b/tasks/compile_callas_binaries.yml @@ -44,7 +44,7 @@ - name: set symlinks for Callas PDF Engine ansible.builtin.file: state: link - src: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}/{{ item }}" + src: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}/{{ item }}" path: "/opt/pdfa_webservice/{{ item }}" loop: - "etc" diff --git a/tasks/configure_crontab.yml b/tasks/configure_crontab.yml index e96eb71..2cbbed8 100644 --- a/tasks/configure_crontab.yml +++ b/tasks/configure_crontab.yml @@ -2,11 +2,11 @@ ### CRONTAB EINRICHTEN ### - name: DEBUG ansible.builtin.debug: - var: vault_users + var: users - name: Cronjob zum Löschen alter tmpfiles aus /tmp erstellen ansible.builtin.cron: name: "delete old tmpfiles from /tmp" hour: "0" minute: "0" - user: "{{ vault_users.0.name }}" + user: "{{ users.0.name }}" job: 'find /tmp/ -maxdepth 1 -name "tmpfile*" -mtime +1 -exec rm \{\} \; >/dev/null 2>&1' diff --git a/tasks/configure_iptables.yml b/tasks/configure_iptables.yml index 57a6333..32d13f9 100644 --- a/tasks/configure_iptables.yml +++ b/tasks/configure_iptables.yml @@ -15,6 +15,6 @@ source_port: "{{ item.src_port | default(omit) }}" state: "{{ item.state | default('present') }}" table: "filter" - loop: "{{ vault_iptables | flatten(levels=1) }}" + loop: "{{ iptables | flatten(levels=1) }}" notify: - save iptables rules diff --git a/tasks/configure_nfs_mounts.yml b/tasks/configure_nfs_mounts.yml index e307af2..a3c217f 100644 --- a/tasks/configure_nfs_mounts.yml +++ b/tasks/configure_nfs_mounts.yml @@ -1,14 +1,14 @@ --- - name: Mountpoint fuer Logging anlegen ansible.builtin.file: - path: "{{ vault_nfs_mounts.log.mountpoint }}{{ ansible_hostname }}" + path: "{{ nfs_mounts.log.mountpoint }}{{ ansible_hostname }}" state: directory mode: "0400" - name: NFS-Shares fuer Logging mounten ansible.posix.mount: - name: "{{ vault_nfs_mounts.log.mountpoint }}{{ ansible_hostname }}" - src: "{{ vault_nfs_mounts.log.share }}/{{ ansible_hostname }}" + name: "{{ nfs_mounts.log.mountpoint }}{{ ansible_hostname }}" + src: "{{ nfs_mounts.log.share }}/{{ ansible_hostname }}" state: mounted fstype: "nfs" opts: "defaults,nodev,nosuid,rsize=65536,wsize=65536,vers=3" diff --git a/tasks/create_users_groups.yml b/tasks/create_users_groups.yml index bdb7abf..3810e8e 100644 --- a/tasks/create_users_groups.yml +++ b/tasks/create_users_groups.yml @@ -4,11 +4,11 @@ name: "{{ item.name }}" gid: "{{ item.gid | default(omit) }}" state: "item.state | default('present') }}" - loop: "{{ vault_groups | flatten(levels=1) }}" + loop: "{{ groups | flatten(levels=1) }}" - name: User in Gruppen einfügen und primäre Gruppe setzen ansible.builtin.user: name: "{{ item.name }}" group: "{{ item.group }}" groups: "{{ item.groups }}" - loop: "{{ vault_users | flatten(levels=1) }}" + loop: "{{ users | flatten(levels=1) }}" diff --git a/tasks/install_callas_pdf_engine.yml b/tasks/install_callas_pdf_engine.yml index 8b56961..c51c211 100644 --- a/tasks/install_callas_pdf_engine.yml +++ b/tasks/install_callas_pdf_engine.yml @@ -26,7 +26,7 @@ - name: copy callas PDFEngine ansible.builtin.get_url: url: "http://www.callassoftware.com/extranet/callas_pdfEngineSDK/callas_pdfEngineSDK_x64_Linux.tar.gz" - dest: "/usr/local/lib/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}.tar.gz" + dest: "/usr/local/lib/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}.tar.gz" mode: "0644" changed_when: false # This will always change, because we're installing a # fresh version of Callas into a cleaned directory @@ -36,14 +36,14 @@ # (https://github.com/ansible/ansible/issues/28569) - name: unpack callas PDFEngine ansible.builtin.unarchive: - src: "/usr/local/lib/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}.tar.gz" + src: "/usr/local/lib/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}.tar.gz" dest: "/usr/local/lib/callas_pdfEngine_SDK_x64" remote_src: true changed_when: false # This will always change. - name: ... and remove source (as there's no actual move module in Ansible). ansible.builtin.file: - path: "/usr/local/lib/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}.tar.gz" + path: "/usr/local/lib/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}.tar.gz" state: absent changed_when: false # This will always change. We just downloaded a fresh # archive that now needs to be cleaned up. @@ -58,7 +58,7 @@ - name: symlink callas PDFEngine from '/usr/local/lib/callas_pdfEngine_SDK_x64/*' to '/usr/lib/cgi-bin/*' ansible.builtin.file: - src: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}/{{ item }}" + src: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}/{{ item }}" dest: "/usr/lib/cgi-bin/{{ item }}" state: link loop: @@ -92,8 +92,8 @@ # state: link # loop: # - src: "/usr/lib/gcc/x86_64-linux-gnu/10/libstdc++.so" -# dest: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}/lib/libstdc++.so" +# dest: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}/lib/libstdc++.so" # - src: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" -# dest: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ vault_callas_sdk_version }}/lib/libstdc++.so.6" +# dest: "/usr/local/lib/callas_pdfEngine_SDK_x64/callas_pdfEngineSDK_x64_Linux_{{ callas_sdk_version }}/lib/libstdc++.so.6" # notify: run ldconfig to configure dynamic linker run-time bindings # tags: [molecule-notest] diff --git a/vars/main.yml b/vars/main.yml index ed97d53..285fb92 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1 +1,6 @@ --- +iptables: "{{ vault_iptables }}" +nfs_mounts: "{{ vault_nfs_mounts }}" +users: "{{ vault_users }}" +groups: "{{ vault_groups }}" +callas_sdk_version: "{{ vault_callas_sdk_version }}" diff --git a/vars/validator.vault.example b/vars/validator.vault.example deleted file mode 100644 index 1c3d3b6..0000000 --- a/vars/validator.vault.example +++ /dev/null @@ -1,21 +0,0 @@ ---- -vault_iptables: - - comment: "WHAT IS THIS RULE FOR? - dest_port: DESTINATION_PORT_NUMBER - state: present - -vault_nfs_mounts: - log: - mountpoint: "/var/log/LOGDIR/" - share: "123.234.321.210:/PATH/TO/NFS/SHARE/" - -vault_users: - - name: "USERNAME" - group: "PRIMARY_GROUP_NAME" - groups: "CSV-LIST, OF, SECONDARY, GROUPS" - -vault_groups: - - name: "GROUPNAME" - gid: "1337" - -vault_callas_sdk_version: "VERSION_STRING_LIKE_12-3-456" -- GitLab