--- /dev/null
+---
+
+- name: Create image directory
+ file:
+ state: directory
+ path: "{{ images_dir }}"
+ mode: 0755
+
+- name: Download images files
+ get_url:
+ url: "{{ item.value.url }}"
+ dest: "{{ images_dir }}/{{ item.value.filename }}"
+ checksum: "{{ item.value.checksum }}"
+ loop: "{{ images|dict2items }}"
+
+- name: Unxz compressed images
+ command: unxz --force {{ images_dir }}/{{ item.value.filename }}
+ loop: "{{ images|dict2items }}"
+ when:
+ - item.value.filename.endswith('.xz')
+
+- name: Convert images which is not in qcow2 format
+ command: qemu-img convert -O qcow2 {{ images_dir }}/{{ item.value.filename.rstrip('.xz') }} {{ images_dir }}/{{ item.key }}.qcow2
+ loop: "{{ images|dict2items }}"
+ when:
+ - not (item.value.converted|bool)
+
+- name: Make sure all images are ending with qcow2
+ command: cp {{ images_dir }}/{{ item.value.filename.rstrip('.xz') }} {{ images_dir }}/{{ item.key }}.qcow2
+ loop: "{{ images|dict2items }}"
+ when:
+ - item.value.converted|bool
+
+- name: Resize images # noqa 301
+ command: qemu-img resize {{ images_dir }}/{{ item.key }}.qcow2 +8G
+ loop: "{{ images|dict2items }}"
+
+# STEP 2: Include the images inside a container
+- name: Template default Dockerfile
+ template:
+ src: Dockerfile
+ dest: "{{ images_dir }}/Dockerfile"
+ mode: 0644
+
+- name: Create docker images for each OS # noqa 301
+ command: docker build -t {{ registry }}/vm-{{ item.key }}:{{ item.value.tag }} --build-arg cloud_image="{{ item.key }}.qcow2" {{ images_dir }}
+ loop: "{{ images|dict2items }}"
+
+- name: docker login # noqa 301
+ command: docker login -u="{{ docker_user }}" -p="{{ docker_password }}" "{{ docker_host }}"
+
+- name: docker push image # noqa 301
+ command: docker push {{ registry }}/vm-{{ item.key }}:{{ item.value.tag }}
+ loop: "{{ images|dict2items }}"
+
+- name: docker logout # noqa 301
+ command: docker logout -u="{{ docker_user }}" "{{ docker_host }}"