diff options
-rw-r--r-- | README.md | 12 | ||||
-rw-r--r-- | hyperv.yml | 1 | ||||
-rw-r--r-- | qemu.yml | 2 | ||||
-rw-r--r-- | roles/cleanup-ending/tasks/main.yml | 8 | ||||
-rw-r--r-- | roles/create-pxe-archive/tasks/main.yml | 38 | ||||
-rw-r--r-- | roles/install-cloud-init/tasks/main.yml | 2 | ||||
-rw-r--r-- | roles/install-config/templates/config.boot.j2 | 2 | ||||
-rw-r--r-- | roles/install-packages/tasks/main.yml | 1 | ||||
-rw-r--r-- | roles/unmount-all/tasks/main.yml | 18 | ||||
-rw-r--r-- | roles/unmount-pre/tasks/main.yml | 18 | ||||
-rw-r--r-- | roles/unmount-pre/tests/inventory | 2 | ||||
-rw-r--r-- | roles/unmount-pre/tests/test.yml | 4 | ||||
-rw-r--r-- | vagrant-libvirt.yml | 1 | ||||
-rw-r--r-- | vmware.yml | 1 |
14 files changed, 90 insertions, 20 deletions
@@ -87,3 +87,15 @@ You need to copy the ISO image with VyOS to /tmp/vyos.iso before running ansible ``` -e cloud_init_ds=NoCloud,ConfigDrive,None ``` + +- Create an archive with files required to PXE boot (default: false): + + ``` + -e pxe=true + ``` + +- Keep default `vyos` user with password `vyos` in configuration when building an image with Cloud-init (default: false): + + ``` + -e keep_user=true + ``` @@ -26,6 +26,7 @@ - install-grub - install-persistence-conf - install-cloud-init-wrapper + - unmount-pre - unmount-all - hyperv-vhd - release @@ -26,6 +26,8 @@ - install-persistence-conf - install-cloud-init-wrapper - fstrim + - unmount-pre + - create-pxe-archive - unmount-all - qemu-qcow2 - cleanup-ending diff --git a/roles/cleanup-ending/tasks/main.yml b/roles/cleanup-ending/tasks/main.yml index 1b2715b..18cea29 100644 --- a/roles/cleanup-ending/tasks/main.yml +++ b/roles/cleanup-ending/tasks/main.yml @@ -2,3 +2,11 @@ file: path: "{{ vyos_raw_img }}" state: absent + +- name: Delete PXE folder + file: + path: "/tmp/vyos-pxe-{{ vyos_version }}{{ ci_tag | default() }}" + state: absent + when: + - pxe is defined + - pxe == "true" diff --git a/roles/create-pxe-archive/tasks/main.yml b/roles/create-pxe-archive/tasks/main.yml new file mode 100644 index 0000000..11dc454 --- /dev/null +++ b/roles/create-pxe-archive/tasks/main.yml @@ -0,0 +1,38 @@ +# Create an archive with files, required for PXE +- name: Create directory for PXE files + become: true + file: + path: "/tmp/vyos-pxe-{{ vyos_version }}{{ ci_tag | default() }}" + state: directory + when: + - pxe is defined + - pxe == "true" + +- name: Save files required for PXE boot + become: true + copy: + src: "{{ vyos_write_root }}/boot/{{ vyos_version }}/{{ item }}" + dest: "/tmp/vyos-pxe-{{ vyos_version }}{{ ci_tag | default() }}/{{ item }}" + with_items: + - initrd.img + - vmlinuz + when: + - pxe is defined + - pxe == "true" + +- name: Create new squashfs image + become: true + command: "mksquashfs {{ vyos_install_root }} /tmp/vyos-pxe-{{ vyos_version }}{{ ci_tag | default() }}/filesystem.squashfs -comp gzip -no-progress -Xcompression-level 9 -e {{ vyos_install_root }}/boot -e {{ vyos_install_root }}/usr/lib/python3/dist-packages/cloudinit/config/cc_vyos.py" + when: + - pxe is defined + - pxe == "true" + +- name: Create an archive with files for PXE + become: true + archive: + path: "/tmp/vyos-pxe-{{ vyos_version }}{{ ci_tag | default() }}" + format: gz + dest: "/tmp/vyos-pxe-{{ vyos_version }}{{ ci_tag | default() }}.tgz" + when: + - pxe is defined + - pxe == "true" diff --git a/roles/install-cloud-init/tasks/main.yml b/roles/install-cloud-init/tasks/main.yml index d894750..39f7293 100644 --- a/roles/install-cloud-init/tasks/main.yml +++ b/roles/install-cloud-init/tasks/main.yml @@ -30,7 +30,7 @@ command: chroot {{ vyos_install_root }} apt-get clean - name: delete apt lists from cache become: true - command: chroot {{ vyos_install_root }} rm -rf /var/lib/apt/lists/* + command: chroot {{ vyos_install_root }} rm -rf /var/lib/apt/lists/ - name: Delete debian.list become: true file: diff --git a/roles/install-config/templates/config.boot.j2 b/roles/install-config/templates/config.boot.j2 index 9b3e8ec..51e95b9 100644 --- a/roles/install-config/templates/config.boot.j2 +++ b/roles/install-config/templates/config.boot.j2 @@ -3,7 +3,7 @@ system { login { user vyos { authentication { -{% if cloud_init == "true" %} +{% if cloud_init == "true" and not ( keep_user is defined and keep_user == "true" ) %} encrypted-password "*" {% else %} encrypted-password "$6$MjV2YvKQ56q$QbL562qhRoyUu8OaqrXagicvcsNpF1HssCY06ZxxghDJkBCfSfTE/4FlFB41xZcd/HqYyVBuRt8Zyq3ozJ0dc." diff --git a/roles/install-packages/tasks/main.yml b/roles/install-packages/tasks/main.yml index 9a143ef..8d526b5 100644 --- a/roles/install-packages/tasks/main.yml +++ b/roles/install-packages/tasks/main.yml @@ -13,4 +13,5 @@ - python-requests - unzip - zlib1g-dev + - squashfs-tools state: present diff --git a/roles/unmount-all/tasks/main.yml b/roles/unmount-all/tasks/main.yml index e097b2b..253ffe9 100644 --- a/roles/unmount-all/tasks/main.yml +++ b/roles/unmount-all/tasks/main.yml @@ -16,24 +16,6 @@ fstype: none state: absent -- name: Unmount {{ vyos_install_root }}/sys, {{ vyos_install_root }}/proc, {{ vyos_install_root }}/dev - become: true - mount: - name: "{{ vyos_install_root }}/{{ item }}" - src: "/{{ item }}" - fstype: none - state: unmounted - with_items: [ 'sys', 'proc', 'dev' ] - -- name: Unmount {{ vyos_install_root }}/sys, {{ vyos_install_root }}/proc, {{ vyos_install_root }}/dev - become: true - mount: - name: "{{ vyos_install_root }}/{{ item }}" - src: "/{{ item }}" - fstype: none - state: absent - with_items: [ 'sys', 'proc', 'dev' ] - - name: Unmount {{ vyos_install_root }} become: true mount: diff --git a/roles/unmount-pre/tasks/main.yml b/roles/unmount-pre/tasks/main.yml new file mode 100644 index 0000000..12c9ae7 --- /dev/null +++ b/roles/unmount-pre/tasks/main.yml @@ -0,0 +1,18 @@ +# Unmount /sys /proc /dev +- name: Unmount {{ vyos_install_root }}/sys, {{ vyos_install_root }}/proc, {{ vyos_install_root }}/dev + become: true + mount: + name: "{{ vyos_install_root }}/{{ item }}" + src: "/{{ item }}" + fstype: none + state: unmounted + with_items: [ 'sys', 'proc', 'dev' ] + +- name: Unmount {{ vyos_install_root }}/sys, {{ vyos_install_root }}/proc, {{ vyos_install_root }}/dev + become: true + mount: + name: "{{ vyos_install_root }}/{{ item }}" + src: "/{{ item }}" + fstype: none + state: absent + with_items: [ 'sys', 'proc', 'dev' ] diff --git a/roles/unmount-pre/tests/inventory b/roles/unmount-pre/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/unmount-pre/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/unmount-pre/tests/test.yml b/roles/unmount-pre/tests/test.yml new file mode 100644 index 0000000..105c5e6 --- /dev/null +++ b/roles/unmount-pre/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - unmount-pre diff --git a/vagrant-libvirt.yml b/vagrant-libvirt.yml index 81d8e53..e5b9f8a 100644 --- a/vagrant-libvirt.yml +++ b/vagrant-libvirt.yml @@ -22,6 +22,7 @@ - install-config - install-grub - install-persistence-conf + - unmount-pre - unmount-all - vagrant-libvirt-box - release @@ -26,6 +26,7 @@ - install-grub - install-persistence-conf - install-cloud-init-wrapper + - unmount-pre - unmount-all - install-open-vmdk - vmware-ova |