From 807cd8367429cc8d166b3d7f0ebc9e0177d4e689 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Wed, 13 Oct 2021 11:44:27 -0500 Subject: [PATCH] Add ipxe builds for linux userspace --- roles/netbootxyz/defaults/main.yml | 1 + roles/netbootxyz/tasks/generate_disks.yml | 4 ++ .../tasks/generate_disks_legacy.yml | 3 +- .../netbootxyz/tasks/generate_disks_linux.yml | 53 +++++++++++++++++++ script/netbootxyz-overrides.yml | 1 + 5 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 roles/netbootxyz/tasks/generate_disks_linux.yml diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index 6f762043..330872ba 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -82,6 +82,7 @@ generate_checksums: true generate_disks: true generate_disks_arm: false generate_disks_efi: true +generate_disks_linux: false generate_disks_hybrid: false generate_disks_legacy: true generate_disks_rpi: false diff --git a/roles/netbootxyz/tasks/generate_disks.yml b/roles/netbootxyz/tasks/generate_disks.yml index 7232c5ff..0418bec2 100644 --- a/roles/netbootxyz/tasks/generate_disks.yml +++ b/roles/netbootxyz/tasks/generate_disks.yml @@ -6,6 +6,10 @@ when: - generate_disks_legacy | default(true) | bool + - include: generate_disks_linux.yml + when: + - generate_disks_linux | default(false) | bool + - include: generate_disks_efi.yml when: - generate_disks_efi | default(true) | bool diff --git a/roles/netbootxyz/tasks/generate_disks_legacy.yml b/roles/netbootxyz/tasks/generate_disks_legacy.yml index 7fc18c0c..a18a2d23 100644 --- a/roles/netbootxyz/tasks/generate_disks_legacy.yml +++ b/roles/netbootxyz/tasks/generate_disks_legacy.yml @@ -28,8 +28,7 @@ bin/ipxe.dsk \ bin/ipxe.lkrn \ bin/ipxe.kpxe \ - bin/undionly.kpxe \ - bin-x86_64-linux/slirp.linux + bin/undionly.kpxe args: chdir: "{{ ipxe_source_dir }}/src" tags: diff --git a/roles/netbootxyz/tasks/generate_disks_linux.yml b/roles/netbootxyz/tasks/generate_disks_linux.yml new file mode 100644 index 00000000..68e6bdd8 --- /dev/null +++ b/roles/netbootxyz/tasks/generate_disks_linux.yml @@ -0,0 +1,53 @@ +--- + + - name: Copy netboot.xyz local legacy iPXE configs + copy: + src: "ipxe/local/{{ item }}" + dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}" + with_items: + - colour.h + - console.h + - crypto.h + - general.h + + - name: Set trust file to ipxe ca + set_fact: + trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}" + when: not generate_signatures + + - name: Combine trust args if set + set_fact: + trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}" + when: generate_signatures | bool + + - name: Compile iPXE Linux bootloader for Legacy BIOS + shell: | + make clean + make EMBED={{ bootloader_filename }} \ + TRUST={{ trust_files }} \ + bin-x86_64-linux/slirp.linux + args: + chdir: "{{ ipxe_source_dir }}/src" + tags: + - skip_ansible_lint + when: ipxe_debug_enabled | bool == false + + - name: Compile iPXE Linux bootloader for Legacy BIOS with debug flags + shell: | + make clean + make EMBED={{ bootloader_filename }} \ + DEBUG={{ ipxe_debug_options }} \ + TRUST={{ trust_files }} \ + bin-x86_64-linux/slirp.linux + args: + chdir: "{{ ipxe_source_dir }}/src" + tags: + - skip_ansible_lint + when: ipxe_debug_enabled | bool + + - name: Copy iPXE linux binary for Legacy BIOS to http directory + copy: + src: "{{ ipxe_source_dir }}/src/bin-x86_64-linux/slirp.linux" + dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-linux.bin" + remote_src: True + when: bootloader_filename != "netboot.xyz-packet" \ No newline at end of file diff --git a/script/netbootxyz-overrides.yml b/script/netbootxyz-overrides.yml index 2070c49b..935bae60 100644 --- a/script/netbootxyz-overrides.yml +++ b/script/netbootxyz-overrides.yml @@ -3,6 +3,7 @@ sigs_menu: true sigs_enabled: true generate_disks_arm: true generate_disks_hybrid: true +generate_disks_linux: true generate_disks_rpi: true generate_version_file: true generate_local_vars: false