diff options
| author | Kim <kim.sidney@gmail.com> | 2021-06-28 12:57:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-28 12:57:35 +0200 |
| commit | b077c2942620581bdb519e6584a40cb383a841e0 (patch) | |
| tree | 5d9e98c1be886bb2bf9bc3d9da676c78caa90fda | |
| parent | e0ad618192bd652f7a26ed4f34265d4f7de9c45b (diff) | |
| download | vyos-vm-images-b077c2942620581bdb519e6584a40cb383a841e0.tar.gz vyos-vm-images-b077c2942620581bdb519e6584a40cb383a841e0.zip | |
add ability to rebuild an ISO
| -rw-r--r-- | roles/cleanup-ending/tasks/main.yml | 12 | ||||
| -rw-r--r-- | roles/compress-image/tasks/main.yml | 10 | ||||
| -rw-r--r-- | roles/compress-image/tests/inventory | 2 | ||||
| -rw-r--r-- | roles/compress-image/tests/test.yml | 4 | ||||
| -rw-r--r-- | roles/copy-iso-content/tasks/main.yml | 5 | ||||
| -rw-r--r-- | roles/copy-iso-content/tests/inventory | 2 | ||||
| -rw-r--r-- | roles/copy-iso-content/tests/test.yml | 4 | ||||
| -rw-r--r-- | roles/create-iso/tasks/main.yml | 12 | ||||
| -rw-r--r-- | roles/create-iso/tests/inventory | 2 | ||||
| -rw-r--r-- | roles/create-iso/tests/test.yml | 4 | ||||
| -rw-r--r-- | roles/extract-image/tasks/main.yml | 6 | ||||
| -rw-r--r-- | roles/extract-image/tests/inventory | 2 | ||||
| -rw-r--r-- | roles/extract-image/tests/test.yml | 4 | ||||
| -rw-r--r-- | roles/install-packages/tasks/main.yml | 3 | ||||
| -rw-r--r-- | roles/unmount-all/tasks/main.yml | 8 |
15 files changed, 80 insertions, 0 deletions
diff --git a/roles/cleanup-ending/tasks/main.yml b/roles/cleanup-ending/tasks/main.yml index 3a84b98..1693a68 100644 --- a/roles/cleanup-ending/tasks/main.yml +++ b/roles/cleanup-ending/tasks/main.yml @@ -15,3 +15,15 @@ file: path: "{{ vyos_key_local }}" state: absent + +- name: Delete extracted squashfs path + become: true + file: + path: "{{ vyos_install_root }}" + state: absent + +- name: Delete temp iso creation path + become: true + file: + path: "/tmp/live-{{ vyos_version }}" + state: absent diff --git a/roles/compress-image/tasks/main.yml b/roles/compress-image/tasks/main.yml new file mode 100644 index 0000000..99135fa --- /dev/null +++ b/roles/compress-image/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- name: Delete filesystem.squashfs + become: true + file: + path: "/tmp/live-{{ vyos_version }}/live/filesystem.squashfs" + state: absent + +- name: compress path to squashfs image + become: true + command: mksquashfs {{ vyos_install_root }} /tmp/live-{{ vyos_version }}/live/filesystem.squashfs -comp xz diff --git a/roles/compress-image/tests/inventory b/roles/compress-image/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/compress-image/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/compress-image/tests/test.yml b/roles/compress-image/tests/test.yml new file mode 100644 index 0000000..96c69cb --- /dev/null +++ b/roles/compress-image/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - install-image diff --git a/roles/copy-iso-content/tasks/main.yml b/roles/copy-iso-content/tasks/main.yml new file mode 100644 index 0000000..fb6571a --- /dev/null +++ b/roles/copy-iso-content/tasks/main.yml @@ -0,0 +1,5 @@ +- name: copy iso files + become: true + synchronize: + src: "/mnt/cdrom/" + dest: "/tmp/live-{{ vyos_version }}" diff --git a/roles/copy-iso-content/tests/inventory b/roles/copy-iso-content/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/copy-iso-content/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/copy-iso-content/tests/test.yml b/roles/copy-iso-content/tests/test.yml new file mode 100644 index 0000000..987ef49 --- /dev/null +++ b/roles/copy-iso-content/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - mount-iso diff --git a/roles/create-iso/tasks/main.yml b/roles/create-iso/tasks/main.yml new file mode 100644 index 0000000..6eef4e0 --- /dev/null +++ b/roles/create-iso/tasks/main.yml @@ -0,0 +1,12 @@ +--- +- name: create new iso + become: true + command: > + xorriso -as mkisofs -R -r -J -joliet-long -l -cache-inodes \ + -iso-level 3 -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \ + -partition_offset 16 -A "VyOS" -p "live-build 1:20190311.1; \ + https://debian-live.alioth.debian.org/live-build" \ + -publisher "autobuild@vyos.net" -V "VyOS" --modification-date={{ lookup('pipe','date +\"%Y%m%d%H%M%S%2N\"') }} \ + -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ + -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \ + -isohybrid-gpt-basdat -isohybrid-apm-hfsplus -o {{ vyos_cloud_upgrade_iso }} /tmp/live-{{ vyos_version }} diff --git a/roles/create-iso/tests/inventory b/roles/create-iso/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/create-iso/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/create-iso/tests/test.yml b/roles/create-iso/tests/test.yml new file mode 100644 index 0000000..96c69cb --- /dev/null +++ b/roles/create-iso/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - install-image diff --git a/roles/extract-image/tasks/main.yml b/roles/extract-image/tasks/main.yml new file mode 100644 index 0000000..cde5b4d --- /dev/null +++ b/roles/extract-image/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: Extract squashfs image from ISO to root partition + become: true + command: unsquashfs -d {{ vyos_install_root }} {{ vyos_squashfs_image }} + args: + creates: "{{ vyos_install_root }}" diff --git a/roles/extract-image/tests/inventory b/roles/extract-image/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/extract-image/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/extract-image/tests/test.yml b/roles/extract-image/tests/test.yml new file mode 100644 index 0000000..96c69cb --- /dev/null +++ b/roles/extract-image/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - install-image diff --git a/roles/install-packages/tasks/main.yml b/roles/install-packages/tasks/main.yml index 365d206..deaf215 100644 --- a/roles/install-packages/tasks/main.yml +++ b/roles/install-packages/tasks/main.yml @@ -14,8 +14,11 @@ - grub-efi-amd64 - grub-efi-amd64-bin - grub-common + - isolinux - python-requests + - rsync - unzip - zlib1g-dev - squashfs-tools + - xorriso state: present diff --git a/roles/unmount-all/tasks/main.yml b/roles/unmount-all/tasks/main.yml index b6fa03d..5ac166e 100644 --- a/roles/unmount-all/tasks/main.yml +++ b/roles/unmount-all/tasks/main.yml @@ -38,19 +38,27 @@ name: "{{ vyos_write_root }}" state: absent +- name: Check if the raw image file exists + stat: + path: "{{ vyos_raw_img }}" + register: st + - name: Remove image partitions become: true command: "kpartx -dv {{ vyos_raw_img }}" + when: st.stat.exists - name: Remove /dev/mapper entries become: true command: "dmsetup remove {{ item }} || true" with_items: "{{ loop_partitions.stdout_lines }}" + when: loop_partitions.stdout_lines is defined failed_when: false - name: Detach {{ loop_device.stdout }} become: true command: "losetup -d {{ loop_device.stdout }}" + when: loop_device.stdout is defined failed_when: false - name: Unmount {{ vyos_cd_squash_root }} |
