3 - name: Create image directory
6 path: "{{ images_dir }}"
9 - name: Download images files
11 url: "{{ item.value.url }}"
12 dest: "{{ images_dir }}/{{ item.value.filename }}"
13 checksum: "{{ item.value.checksum }}"
14 loop: "{{ images|dict2items }}"
16 - name: Unxz compressed images
17 command: unxz --force {{ images_dir }}/{{ item.value.filename }}
18 loop: "{{ images|dict2items }}"
20 - item.value.filename.endswith('.xz')
22 - name: Convert images which is not in qcow2 format
23 command: qemu-img convert -O qcow2 {{ images_dir }}/{{ item.value.filename.rstrip('.xz') }} {{ images_dir }}/{{ item.key }}.qcow2
24 loop: "{{ images|dict2items }}"
26 - not (item.value.converted|bool)
28 - name: Make sure all images are ending with qcow2
29 command: cp {{ images_dir }}/{{ item.value.filename.rstrip('.xz') }} {{ images_dir }}/{{ item.key }}.qcow2
30 loop: "{{ images|dict2items }}"
32 - item.value.converted|bool
34 - name: Resize images # noqa 301
35 command: qemu-img resize {{ images_dir }}/{{ item.key }}.qcow2 +8G
36 loop: "{{ images|dict2items }}"
38 # STEP 2: Include the images inside a container
39 - name: Template default Dockerfile
42 dest: "{{ images_dir }}/Dockerfile"
45 - name: Create docker images for each OS # noqa 301
46 command: docker build -t {{ registry }}/vm-{{ item.key }}:{{ item.value.tag }} --build-arg cloud_image="{{ item.key }}.qcow2" {{ images_dir }}
47 loop: "{{ images|dict2items }}"
49 - name: docker login # noqa 301
50 command: docker login -u="{{ docker_user }}" -p="{{ docker_password }}" "{{ docker_host }}"
52 - name: docker push image # noqa 301
53 command: docker push {{ registry }}/vm-{{ item.key }}:{{ item.value.tag }}
54 loop: "{{ images|dict2items }}"
56 - name: docker logout # noqa 301
57 command: docker logout -u="{{ docker_user }}" "{{ docker_host }}"