From b89bc43bdf5e255d10c89dd00212ba87c7e3f42c Mon Sep 17 00:00:00 2001 From: Matthew Huber <124190162+mhuber-avst@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:27:39 -0400 Subject: [PATCH 1/3] adding volume check for idempotency --- roles/server/tasks/install.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/roles/server/tasks/install.yml b/roles/server/tasks/install.yml index 34c229c..74450fb 100644 --- a/roles/server/tasks/install.yml +++ b/roles/server/tasks/install.yml @@ -10,12 +10,24 @@ name: test_volume become: true +- name: Check if volumes are already configured + ansible.builtin.shell: + cmd: | + type=$(wipefs -O type -p {{ item }}) + echo -n "$vol:" + [[ $type == "0" ]] && echo "available" || echo "in-use" + done + loop: + - "{{ server_disk_volumes if server_disk_volumes is defined }}" + - "{{ server_disk_database if server_disk_database is defined }}" + register: volume_usage + - name: Prepare storage for volumes and database ansible.builtin.command: cmd: "mgr-storage-server {{ server_disk_volumes }} {{ server_disk_database }}" when: - - server_disk_volumes is defined - - server_disk_database is defined + - server_disk_volumes is defined and volume_usage.server_disk_volumes is "available" + - server_disk_database is defined and volume_usage.server_disk_database is "available" become: true - name: Prepare storage for volumes From 5327e0ec52ebc3af6071ae841e6c63742f0e5c3a Mon Sep 17 00:00:00 2001 From: Matthew Huber <124190162+mhuber-avst@users.noreply.github.com> Date: Fri, 3 Oct 2025 15:46:43 -0400 Subject: [PATCH 2/3] fixed logic to ensure volumes aren't already in use --- roles/server/tasks/install.yml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/roles/server/tasks/install.yml b/roles/server/tasks/install.yml index 74450fb..4555ba1 100644 --- a/roles/server/tasks/install.yml +++ b/roles/server/tasks/install.yml @@ -13,27 +13,32 @@ - name: Check if volumes are already configured ansible.builtin.shell: cmd: | - type=$(wipefs -O type -p {{ item }}) - echo -n "$vol:" - [[ $type == "0" ]] && echo "available" || echo "in-use" + for vol in {{ server_disk_volumes }} {{ server_disk_database }}; do + type=$(wipefs -O type -p $vol) + [[ ${{ '{' ~ '#' }}type} -eq 0 ]] && echo "${vol}: true" || echo "${vol}: false" done - loop: - - "{{ server_disk_volumes if server_disk_volumes is defined }}" - - "{{ server_disk_database if server_disk_database is defined }}" register: volume_usage + become: true + +- name: Save volume config status to dict + set_fact: + vols: "{{ volume_usage.stdout | from_yaml }}" + become: true - name: Prepare storage for volumes and database ansible.builtin.command: cmd: "mgr-storage-server {{ server_disk_volumes }} {{ server_disk_database }}" when: - - server_disk_volumes is defined and volume_usage.server_disk_volumes is "available" - - server_disk_database is defined and volume_usage.server_disk_database is "available" + - server_disk_volumes is defined and vols[server_disk_volumes] + - server_disk_database is defined and vols[server_disk_database] become: true - name: Prepare storage for volumes ansible.builtin.command: cmd: "mgr-storage-server {{ server_disk_volumes }}" - when: server_disk_volumes is defined + when: + - server_disk_volumes is defined and vols[server_disk_volumes] + - server_disk_database is not defined become: true - name: Stage deploy configuration From 12797b3b6282efcf17d2f71abc1e2fdca3f390f9 Mon Sep 17 00:00:00 2001 From: Matthew Huber <124190162+mhuber-avst@users.noreply.github.com> Date: Tue, 7 Oct 2025 09:31:32 -0400 Subject: [PATCH 3/3] Updated linting --- roles/server/tasks/install.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/roles/server/tasks/install.yml b/roles/server/tasks/install.yml index 4555ba1..776e194 100644 --- a/roles/server/tasks/install.yml +++ b/roles/server/tasks/install.yml @@ -17,27 +17,27 @@ type=$(wipefs -O type -p $vol) [[ ${{ '{' ~ '#' }}type} -eq 0 ]] && echo "${vol}: true" || echo "${vol}: false" done - register: volume_usage + register: server_volume_usage become: true - name: Save volume config status to dict - set_fact: - vols: "{{ volume_usage.stdout | from_yaml }}" + ansible.builtin.set_fact: + server_vols: "{{ server_volume_usage.stdout | from_yaml }}" become: true - name: Prepare storage for volumes and database ansible.builtin.command: cmd: "mgr-storage-server {{ server_disk_volumes }} {{ server_disk_database }}" when: - - server_disk_volumes is defined and vols[server_disk_volumes] - - server_disk_database is defined and vols[server_disk_database] + - server_disk_volumes is defined and server_vols[server_disk_volumes] + - server_disk_database is defined and server_vols[server_disk_database] become: true - name: Prepare storage for volumes ansible.builtin.command: cmd: "mgr-storage-server {{ server_disk_volumes }}" when: - - server_disk_volumes is defined and vols[server_disk_volumes] + - server_disk_volumes is defined and server_vols[server_disk_volumes] - server_disk_database is not defined become: true @@ -85,3 +85,4 @@ creates: /root/.MANAGER_INITIALIZATION_COMPLETE become: true notify: Create initialization file +