--- # ============================================================================= # Download Tasks - Download and Verify Cloud Images # ============================================================================= - name: Check if cloud image already exists stat: path: "{{ deploy_linux_vm_image_cache_path }}" register: deploy_linux_vm_cloud_image_stat tags: [download] - name: Display image cache status debug: msg: "Cloud image {{ 'exists' if deploy_linux_vm_cloud_image_stat.stat.exists else 'not found' }}: {{ deploy_linux_vm_image_cache_path }}" tags: [download] - name: Check for manual download requirement debug: msg: - "WARNING: {{ deploy_linux_vm_os_distribution }} requires manual download" - "{{ deploy_linux_vm_distro_config.note | default('') }}" - "Please download the image and place it at: {{ deploy_linux_vm_image_cache_path }}" when: - not deploy_linux_vm_cloud_image_stat.stat.exists - deploy_linux_vm_distro_config.note is defined tags: [download] - name: Download cloud image get_url: url: "{{ deploy_linux_vm_distro_config.url }}" dest: "{{ deploy_linux_vm_image_cache_path }}" mode: '0644' timeout: 1200 when: - not deploy_linux_vm_cloud_image_stat.stat.exists - deploy_linux_vm_distro_config.note is not defined register: deploy_linux_vm_download_result tags: [download] - name: Download checksum file get_url: url: "{{ deploy_linux_vm_distro_config.checksum_url }}" dest: "/tmp/{{ deploy_linux_vm_os_distribution }}-CHECKSUM" mode: '0644' when: - deploy_linux_vm_distro_config.checksum_url is defined - deploy_linux_vm_download_result is changed or deploy_linux_vm_cloud_image_stat.stat.exists tags: [download, verify] - name: Verify cloud image checksum (SHA512) shell: | cd {{ deploy_linux_vm_images_dir }} grep "{{ deploy_linux_vm_distro_config.cache_name }}" /tmp/{{ deploy_linux_vm_os_distribution }}-CHECKSUM | sha512sum -c - register: deploy_linux_vm_checksum_result changed_when: false when: - deploy_linux_vm_distro_config.checksum_type is defined - deploy_linux_vm_distro_config.checksum_type == "sha512" - deploy_linux_vm_distro_config.checksum_url is defined tags: [verify] - name: Verify cloud image checksum (SHA256) shell: | cd {{ deploy_linux_vm_images_dir }} grep "{{ deploy_linux_vm_distro_config.cache_name }}" /tmp/{{ deploy_linux_vm_os_distribution }}-CHECKSUM | sha256sum -c - register: deploy_linux_vm_checksum_result changed_when: false when: - deploy_linux_vm_distro_config.checksum_type is defined - deploy_linux_vm_distro_config.checksum_type == "sha256" - deploy_linux_vm_distro_config.checksum_url is defined tags: [verify] - name: Ensure image file exists before proceeding stat: path: "{{ deploy_linux_vm_image_cache_path }}" register: deploy_linux_vm_final_image_check failed_when: not deploy_linux_vm_final_image_check.stat.exists tags: [verify]