From 9ad3ee70ee4ba41977b51ea939ccc4fb44c64ae5 Mon Sep 17 00:00:00 2001 From: Yacine31 Date: Tue, 2 Dec 2025 11:48:18 +0100 Subject: [PATCH] Add checksum verification for Oracle zip download: download checksum.txt, extract SHA256, verify before/after download --- .../tasks/install_database.yml | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/roles/oracle-db-install/tasks/install_database.yml b/roles/oracle-db-install/tasks/install_database.yml index fcbe3ba..acb0c18 100644 --- a/roles/oracle-db-install/tasks/install_database.yml +++ b/roles/oracle-db-install/tasks/install_database.yml @@ -36,17 +36,32 @@ failed_when: checkdbswinstall.stdout != "0" tags: checkifexists - # telechargement des bianaires Oracle si le fichier n'est pas déjà dans /u01/sources + # telechargement des bianaires Oracle si le fichier n'est pas déjà dans /u01/sources + - name: Télécharger le fichier checksum + ansible.builtin.shell: wget --no-check-certificate https://kutt.axiome.io/checksum.txt -O {{ oracle_sources }}/checksum.txt + tags: download_sw + + - name: Extraire le checksum attendu + ansible.builtin.shell: grep "{{ oracle_zip_filename }}" {{ oracle_sources }}/checksum.txt | awk '{print $1}' + register: expected_checksum + tags: download_sw + - name: Vérifier si le fichier "{{oracle_zip_filename}}" existe ansible.builtin.stat: path: "{{ oracle_sources }}/{{oracle_zip_filename}}" register: file_check tags: download_sw - - name: Téléchargement des binaires Oracle - ansible.builtin.shell: wget --no-check-certificate https://kutt.axiome.io/db19300 -O {{ oracle_sources }}/{{oracle_zip_filename}} + - name: Calculer le checksum actuel si le fichier existe + ansible.builtin.shell: sha256sum {{ oracle_sources }}/{{oracle_zip_filename}} | awk '{print $1}' + register: current_checksum + when: file_check.stat.exists tags: download_sw - when: not file_check.stat.exists + + - name: Téléchargement des binaires Oracle + ansible.builtin.shell: wget --no-check-certificate --continue https://kutt.axiome.io/db19300 -O {{ oracle_sources }}/{{oracle_zip_filename}} + tags: download_sw + when: not file_check.stat.exists or current_checksum.stdout != expected_checksum.stdout - name: Extraction des binaires Oracle ansible.builtin.unarchive: src={{ oracle_sources }}/{{ oracle_zip_filename }} dest={{ oracle_home }}