summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--roles/raspios/image/tasks/main.yml30
1 files changed, 23 insertions, 7 deletions
diff --git a/roles/raspios/image/tasks/main.yml b/roles/raspios/image/tasks/main.yml
index 284b24a4..86373da6 100644
--- a/roles/raspios/image/tasks/main.yml
+++ b/roles/raspios/image/tasks/main.yml
@@ -15,20 +15,36 @@
state: directory
register: tmpdir
- - name: build the raspios image
- command: >-
- bash -c "cp '{{ raspios_download_dir }}/{{ raspios_download_image_base_name }}.zip' '{{ tmpdir.path }}/output.zip'; echo 'TODO: extract image...'"
- register: raspios_build
+ - name: extract image
+ environment: ### TODO: remove once this lands in ansible: https://github.com/ansible/ansible/pull/76542
+ LANGUAGE: en_US.utf8
+ unarchive:
+ src: "{{ raspios_download_dir }}/{{ raspios_download_image_base_name }}.zip"
+ remote_src: yes
+ dest: "{{ tmpdir.path }}"
+
+ - name: read partition layout from image
+ command: "sfdisk -q -r -J '{{ tmpdir.path }}/{{ raspios_download_image_base_name }}.img'"
+ 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 }}/output.zip"
- dest: "{{ raspios_output_dir }}/{{ raspios_output_image_base_name }}.zip"
+ src: "{{ tmpdir.path }}/{{ raspios_download_image_base_name }}.img"
+ dest: "{{ raspios_output_dir }}/{{ raspios_output_image_base_name }}.img"
- name: set output image names
set_fact:
output_images:
- - "{{ raspios_output_dir }}/{{ raspios_output_image_base_name }}.zip"
+ - "{{ raspios_output_dir }}/{{ raspios_output_image_base_name }}.img"
always:
- name: save stdout build-log to output directory