generate_disks_efi.yml 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. ---
  2. - name: Copy netboot.xyz local EFI iPXE configs
  3. copy:
  4. src: "ipxe/local/{{ item }}"
  5. dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
  6. with_items:
  7. - colour.h
  8. - crypto.h
  9. - name: Copy netboot.xyz general.h.efi iPXE config
  10. copy:
  11. src: "ipxe/local/general.h.efi"
  12. dest: "{{ ipxe_source_dir }}/src/config/local/general.h"
  13. - name: Set trust file to ipxe ca
  14. set_fact:
  15. trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}"
  16. when: not generate_signatures
  17. - name: Combine trust files if set
  18. set_fact:
  19. trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}"
  20. when: generate_signatures | bool
  21. - name: Compile iPXE bootloader for EFI
  22. shell: |
  23. make clean
  24. make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin-x86_64-efi/ipxe.efi
  25. args:
  26. chdir: "{{ ipxe_source_dir }}/src"
  27. tags:
  28. - skip_ansible_lint
  29. - name: Generate iPXE EFI ISO Disk
  30. shell: |
  31. mkdir -p efi_tmp
  32. dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
  33. mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
  34. mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
  35. mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
  36. genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -e ipxe.img -no-emul-boot efi_tmp
  37. args:
  38. chdir: "{{ ipxe_source_dir }}/src"
  39. warn: false
  40. tags:
  41. - skip_ansible_lint
  42. - name: Generate iPXE EFI USB image
  43. shell: |
  44. truncate -s 3MiB ipxe-efi.usb
  45. mkfs.vfat ipxe-efi.usb
  46. mmd -i ipxe-efi.usb "::/efi"
  47. mmd -i ipxe-efi.usb "::/efi/boot"
  48. mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi"
  49. args:
  50. chdir: "{{ ipxe_source_dir }}/src"
  51. warn: false
  52. tags:
  53. - skip_ansible_lint
  54. - name: Copy iPXE EFI builds to http directory
  55. copy:
  56. src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
  57. dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
  58. remote_src: True
  59. with_items:
  60. - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
  61. - { src: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" }
  62. - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" }