netboot.xyz/roles/netbootxyz/tasks/generate_disks_efi.yml
2024-10-28 16:46:58 +01:00

77 lines
2.7 KiB
YAML

---
- name: Copy netboot.xyz local EFI iPXE configs
ansible.builtin.copy:
src: "ipxe/local/{{ item }}"
dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
with_items:
- colour.h
- console.h
- crypto.h
- name: Copy netboot.xyz general.h.efi iPXE config
ansible.builtin.copy:
src: "ipxe/local/general.h.efi"
dest: "{{ ipxe_source_dir }}/src/config/local/general.h"
- name: Set trust file to ipxe ca
ansible.builtin.set_fact:
trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}"
when: not generate_signatures
- name: Combine trust files if set
ansible.builtin.set_fact:
trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}"
when: generate_signatures | bool
- name: Compile iPXE bootloader for EFI
ansible.builtin.shell: |
make clean
make -j{{ make_num_jobs }} \
EMBED={{ bootloader_filename }} \
TRUST={{ trust_files }} \
bin-x86_64-efi/ipxe.efi \
bin-x86_64-efi/snp.efi \
bin-x86_64-efi/snponly.efi
args:
chdir: "{{ ipxe_source_dir }}/src"
when: ipxe_debug_enabled | bool == false
- name: Compile iPXE bootloader for EFI with debug flags
ansible.builtin.shell: |
make clean
make -j{{ make_num_jobs }} \
EMBED={{ bootloader_filename }} \
DEBUG={{ ipxe_debug_options }} \
TRUST={{ trust_files }} \
bin-x86_64-efi/ipxe.efi \
bin-x86_64-efi/snp.efi \
bin-x86_64-efi/snponly.efi
args:
chdir: "{{ ipxe_source_dir }}/src"
when: ipxe_debug_enabled | bool
- name: Generate iPXE floppy images for EFI
ansible.builtin.shell: |
truncate -s 1440k bin-x86_64-efi/ipxe.efi.dsk
mformat -i bin-x86_64-efi/ipxe.efi.dsk -f 1440 ::
mmd -i bin-x86_64-efi/ipxe.efi.dsk ::EFI
mmd -i bin-x86_64-efi/ipxe.efi.dsk ::EFI/BOOT
cp bin-x86_64-efi/ipxe.efi.dsk bin-x86_64-efi/snp.efi.dsk
mcopy -i bin-x86_64-efi/ipxe.efi.dsk bin-x86_64-efi/ipxe.efi ::EFI/BOOT/BOOTX64.EFI
mcopy -i bin-x86_64-efi/snp.efi.dsk bin-x86_64-efi/snp.efi ::EFI/BOOT/BOOTX64.EFI
args:
chdir: "{{ ipxe_source_dir }}/src"
- name: Copy iPXE EFI builds to http directory
ansible.builtin.copy:
src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
remote_src: true
with_items:
- {src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi"}
- {src: "bin-x86_64-efi/snp.efi", dest: "{{ bootloader_filename }}-snp.efi"}
- {src: "bin-x86_64-efi/snponly.efi", dest: "{{ bootloader_filename }}-snponly.efi"}
- {src: "bin-x86_64-efi/ipxe.efi.dsk", dest: "{{ bootloader_filename }}.efi.dsk"}
- {src: "bin-x86_64-efi/snp.efi.dsk", dest: "{{ bootloader_filename }}-snp.efi.dsk"}