kayobe/ansible/roles/image-download/tasks/main.yml

43 lines
1.4 KiB
YAML

---
- block:
- block:
- name: Fail if the checksum algorithm is not set
fail:
msg: "Checksum algorithm for image {{ image_download_url }} not set"
when: image_download_checksum_algorithm is none or
image_download_checksum_algorithm == ""
- name: Get the expected checksum
uri:
url: "{{ image_download_checksum_url }}"
return_content: true
register: expected_checksum
when:
- image_download_checksum_url is not none
- image_download_checksum_url != ""
- name: Ensure the image is downloaded
vars:
checksum: "{{ image_download_checksum_algorithm }}:{{ expected_checksum.content.split(' ')[0] }}"
get_url:
url: "{{ image_download_url }}"
dest: "{{ image_download_dest }}"
mode: 0640
# If the file exists locally, its checksum will be compared with this.
checksum: "{{ checksum if expected_checksum is not skipped else omit }}"
# Always download the image if we have no checksum to compare with.
force: "{{ expected_checksum is skipped }}"
backup: true
when:
- image_download_url is not none
- image_download_url != ""
- name: Ensure the local image is copied
copy:
src: "{{ image_download_path }}"
dest: "{{ image_download_dest }}"
mode: 0640
when:
- image_download_path is not none
- image_download_path != ""