1
0

generate_disks_efi.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. - console.h
  9. - crypto.h
  10. - name: Copy netboot.xyz general.h.efi iPXE config
  11. 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. set_fact:
  16. trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}"
  17. when: not generate_signatures
  18. - name: Combine trust files if set
  19. 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. shell: |
  24. make clean
  25. make EMBED={{ bootloader_filename }} \
  26. TRUST={{ trust_files }} \
  27. bin-x86_64-efi/ipxe.efi \
  28. bin-x86_64-efi/snp.efi \
  29. bin-x86_64-efi/snponly.efi
  30. args:
  31. chdir: "{{ ipxe_source_dir }}/src"
  32. tags:
  33. - skip_ansible_lint
  34. - name: Generate iPXE EFI ISO Disk
  35. shell: |
  36. mkdir -p efi_tmp
  37. dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
  38. mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
  39. mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
  40. mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
  41. genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -e ipxe.img -no-emul-boot efi_tmp
  42. args:
  43. chdir: "{{ ipxe_source_dir }}/src"
  44. warn: false
  45. tags:
  46. - skip_ansible_lint
  47. - name: Generate iPXE EFI USB image
  48. shell: |
  49. truncate -s 3MiB ipxe-efi.usb
  50. mkfs.vfat ipxe-efi.usb
  51. mmd -i ipxe-efi.usb "::/efi"
  52. mmd -i ipxe-efi.usb "::/efi/boot"
  53. mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi"
  54. args:
  55. chdir: "{{ ipxe_source_dir }}/src"
  56. warn: false
  57. tags:
  58. - skip_ansible_lint
  59. - name: Copy iPXE EFI builds to http directory
  60. copy:
  61. src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
  62. dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
  63. remote_src: True
  64. with_items:
  65. - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
  66. - { src: "bin-x86_64-efi/snp.efi", dest: "{{ bootloader_filename }}-snp.efi" }
  67. - { src: "bin-x86_64-efi/snponly.efi", dest: "{{ bootloader_filename }}-snponly.efi" }
  68. - { src: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" }
  69. - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" }
  70. when: bootloader_filename != "netboot.xyz-packet"
  71. - name: Copy iPXE EFI builds to http directory for packet
  72. copy:
  73. src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
  74. dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
  75. remote_src: True
  76. with_items:
  77. - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
  78. when: bootloader_filename == "netboot.xyz-packet"