diff --git a/tasks/install_tsm_client.yml b/tasks/install_tsm_client.yml index b4f04513e4bcd8041581106d6f48c4d2b2d93149..ac62769fc829fe684d24e25cb82fb036286a9521 100644 --- a/tasks/install_tsm_client.yml +++ b/tasks/install_tsm_client.yml @@ -7,10 +7,18 @@ #delegate_to: 127.0.0.1 - name: > - Extract IBM TSM Client setup archive checksum from file. We want to use - this info later to verify the integrity of our download. + Extract IBM TSM Client setup archive checksum string from file. This looks + like + "e24735f2f2f88bedc93371eae507c14dccb8e7be2676794b53ad94674338d8a1 8.1.15.0-TIV-TSMBAC-LinuxX86.tar". + We want to use this info later to verify the integrity of our download. + ansible.builtin.slurp: + src: "/tmp/{{ tsm_version_long | default(tsm_default_version_long) }}.0-TIV-TSMBAC-LinuxX86.tar.sha256sum.txt" + register: checksum_slurp + +# The Ansible split() function behaves exactly like Python's. +- name: parse checksum value from checksum string ansible.builtin.set_fact: - tsm_checksum: "{{ lookup('file', '/tmp/'+ tsm_version_long | default(tsm_default_version_long) +'.0-TIV-TSMBAC-LinuxX86.tar.sha256sum.txt').split(' ')[0] | lower }}" + tsm_checksum: "{{ checksum_slurp['content'] | b64decode | split() | lower }}" @@ -29,9 +37,9 @@ url: "https://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/client/v8r1/Linux/LinuxX86/BA/{{ tsm_version_short | default(tsm_default_version_short) }}/{{ tsm_version_long | default(tsm_default_version_long) }}.0-TIV-TSMBAC-LinuxX86.tar" dest: "/tmp/" mode: "0644" - checksum: "sha256:{{ tsm_checksum | default(omit) }}" + checksum: "sha256:{{ tsm_checksum[0] | default(omit) }}" when: (( not ibmsp_tar.stat.exists ) or - ( not ibmsp_tar.stat.checksum == tsm_checksum )) + ( not ibmsp_tar.stat.checksum == tsm_checksum[0] ))