--- - name: fetch os list from download server check_mode: no uri: url: "{{ raspios_download_url }}/os_list_v3.json" body_format: json register: raspios_os_list - set_fact: raspios_download_base_url: "{{ raspios_os_list.json.os_list | raspios_extract_download_base_url(raspios_variant, raspios_codename, raspios_arch) }}" - name: fetch base image run_once: true import_tasks: fetch.yml - name: build the image block: - name: create the output directory for built images file: path: "{{ raspios_output_dir }}" state: directory - name: Create temporary build directory tempfile: state: directory register: tmpdir - name: extract image decompress: src: "{{ raspios_download_dir }}/{{ raspios_download_image_base_name }}" dest: "{{ tmpdir.path }}" register: raspios_image_extract_result - set_fact: raspios_output_image_base_name: "{{ raspios_image_extract_result.files | first | basename }}" - name: read partition layout from image command: "sfdisk -q -r -J '{{ tmpdir.path }}/{{ raspios_output_image_base_name }}'" register: sfdisk_result - debug: var: sfdisk_result.stdout | from_json ## TODO: # udisksctl loop-setup -o {{ partitions[1].start * 512 }} -s {{ partitions[1].start * 512 }} -f '{{ tmpdir.path }}/{{ raspios_download_image_base_name }}.img' # udisksctl mount -b /dev/loop??? # # do customizations.... (needs root?) - name: copy newly built raspios image copy: src: "{{ tmpdir.path }}/{{ raspios_output_image_base_name }}" dest: "{{ raspios_output_dir }}/{{ raspios_output_image_base_name }}" - name: set output image names set_fact: output_images: - "{{ (raspios_output_dir, raspios_output_image_base_name) | path_join | realpath }}" always: - name: save stdout build-log to output directory when: raspios_build is defined copy: content: "{{ raspios_build.stdout }}\n" dest: "{{ raspios_output_dir }}/build-stdout.log" - name: save stderr build-log to output directory when: raspios_build is defined copy: content: "{{ raspios_build.stderr }}\n" dest: "{{ raspios_output_dir }}/build-stderr.log" - name: delete the temporary build directory when: not raspios_keep_temporary_build_dir file: path: "{{ tmpdir.path }}" state: absent - name: print temporary build directory information when: raspios_keep_temporary_build_dir debug: msg: "The temporary build directory has not been deleted, the path to the directory is: {{ tmpdir.path }}"