generate_disks_efi.yml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. ---
  2. - name: Copy netboot.xyz local EFI iPXE configs
  3. ansible.builtin.copy:
  4. src: "ipxe/local/{{ item }}"
  5. dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
  6. with_items:
  7. - colour.h
  8. - console.h
  9. - crypto.h
  10. - name: Copy netboot.xyz general.h.efi iPXE config
  11. ansible.builtin.copy:
  12. src: "ipxe/local/general.h.efi"
  13. dest: "{{ ipxe_source_dir }}/src/config/local/general.h"
  14. - name: Set trust file to ipxe ca
  15. ansible.builtin.set_fact:
  16. trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}"
  17. when: not generate_signatures
  18. - name: Combine trust files if set
  19. ansible.builtin.set_fact:
  20. trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}"
  21. when: generate_signatures | bool
  22. - name: Compile iPXE bootloader for EFI
  23. ansible.builtin.shell: |
  24. make clean
  25. make -j{{ make_num_jobs }} \
  26. EMBED={{ bootloader_filename }} \
  27. TRUST={{ trust_files }} \
  28. bin-x86_64-efi/ipxe.efi \
  29. bin-x86_64-efi/snp.efi \
  30. bin-x86_64-efi/snponly.efi
  31. args:
  32. chdir: "{{ ipxe_source_dir }}/src"
  33. when: ipxe_debug_enabled | bool == false
  34. - name: Compile iPXE bootloader for EFI with debug flags
  35. ansible.builtin.shell: |
  36. make clean
  37. make -j{{ make_num_jobs }} \
  38. EMBED={{ bootloader_filename }} \
  39. DEBUG={{ ipxe_debug_options }} \
  40. TRUST={{ trust_files }} \
  41. bin-x86_64-efi/ipxe.efi \
  42. bin-x86_64-efi/snp.efi \
  43. bin-x86_64-efi/snponly.efi
  44. args:
  45. chdir: "{{ ipxe_source_dir }}/src"
  46. when: ipxe_debug_enabled | bool
  47. - name: Generate iPXE floppy images for EFI
  48. ansible.builtin.shell: |
  49. truncate -s 1440k bin-x86_64-efi/ipxe.efi.dsk
  50. mformat -i bin-x86_64-efi/ipxe.efi.dsk -f 1440 ::
  51. mmd -i bin-x86_64-efi/ipxe.efi.dsk ::EFI
  52. mmd -i bin-x86_64-efi/ipxe.efi.dsk ::EFI/BOOT
  53. cp bin-x86_64-efi/ipxe.efi.dsk bin-x86_64-efi/snp.efi.dsk
  54. mcopy -i bin-x86_64-efi/ipxe.efi.dsk bin-x86_64-efi/ipxe.efi ::EFI/BOOT/BOOTX64.EFI
  55. mcopy -i bin-x86_64-efi/snp.efi.dsk bin-x86_64-efi/snp.efi ::EFI/BOOT/BOOTX64.EFI
  56. args:
  57. chdir: "{{ ipxe_source_dir }}/src"
  58. - name: Copy iPXE EFI builds to http directory
  59. ansible.builtin.copy:
  60. src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
  61. dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
  62. remote_src: true
  63. with_items:
  64. - {src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi"}
  65. - {src: "bin-x86_64-efi/snp.efi", dest: "{{ bootloader_filename }}-snp.efi"}
  66. - {src: "bin-x86_64-efi/snponly.efi", dest: "{{ bootloader_filename }}-snponly.efi"}
  67. - {src: "bin-x86_64-efi/ipxe.efi.dsk", dest: "{{ bootloader_filename }}.efi.dsk"}
  68. - {src: "bin-x86_64-efi/snp.efi.dsk", dest: "{{ bootloader_filename }}-snp.efi.dsk"}