generate_disks_efi.yml 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 }} \
  25. TRUST={{ trust_files }} \
  26. bin-x86_64-efi/ipxe.efi \
  27. bin-x86_64-efi/snp.efi \
  28. bin-x86_64-efi/snponly.efi
  29. args:
  30. chdir: "{{ ipxe_source_dir }}/src"
  31. tags:
  32. - skip_ansible_lint
  33. - name: Generate iPXE EFI ISO Disk
  34. shell: |
  35. mkdir -p efi_tmp
  36. dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
  37. mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
  38. mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
  39. mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
  40. genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -e ipxe.img -no-emul-boot efi_tmp
  41. args:
  42. chdir: "{{ ipxe_source_dir }}/src"
  43. warn: false
  44. tags:
  45. - skip_ansible_lint
  46. - name: Generate iPXE EFI USB image
  47. shell: |
  48. truncate -s 3MiB ipxe-efi.usb
  49. mkfs.vfat ipxe-efi.usb
  50. mmd -i ipxe-efi.usb "::/efi"
  51. mmd -i ipxe-efi.usb "::/efi/boot"
  52. mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi"
  53. args:
  54. chdir: "{{ ipxe_source_dir }}/src"
  55. warn: false
  56. tags:
  57. - skip_ansible_lint
  58. - name: Copy iPXE EFI builds to http directory
  59. 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: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" }
  68. - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" }
  69. when: bootloader_filename != "netboot.xyz-packet"
  70. - name: Copy iPXE EFI builds to http directory for packet
  71. copy:
  72. src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
  73. dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
  74. remote_src: True
  75. with_items:
  76. - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
  77. when: bootloader_filename == "netboot.xyz-packet"