interface={{ env.PROVISIONING_INTERFACE }} bind-dynamic enable-tftp tftp-root=/shared/tftpboot log-queries # Configure listening for DNS (0 disables DNS) port={{ env.DNS_PORT }} {%- if env.DHCP_RANGE | length %} log-dhcp dhcp-range={{ env.DHCP_RANGE }} # It can be used when setting DNS or GW variables. {%- if env["GATEWAY_IP"] is undefined %} # Disable default router(s) dhcp-option=3 {% else %} dhcp-option=option{% if ":" in env["GATEWAY_IP"] %}6{% endif %}:router,{{ env["GATEWAY_IP"] }} {% endif %} {%- if env["DNS_IP"] is undefined %} # Disable DNS over provisioning network dhcp-option=6 {% else %} dhcp-option=option{% if ":" in env["DNS_IP"] %}6{% endif %}:dns-server,{{ env["DNS_IP"] }} {% endif %} {%- if env.IPV == "4" or env.IPV is undefined %} # IPv4 Configuration: dhcp-match=ipxe,175 # Client is already running iPXE; move to next stage of chainloading {%- if env.IPXE_TLS_SETUP == "true" %} # iPXE with (U)EFI dhcp-boot=tag:efi,tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/custom-ipxe/snponly.efi # iPXE with BIOS dhcp-boot=tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/custom-ipxe/undionly.kpxe {% else %} dhcp-boot=tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/boot.ipxe {% endif %} # Note: Need to test EFI booting dhcp-match=set:efi,option:client-arch,7 dhcp-match=set:efi,option:client-arch,9 dhcp-match=set:efi,option:client-arch,11 # Client is PXE booting over EFI without iPXE ROM; send EFI version of iPXE chainloader do the same also if iPXE ROM boots but TLS is enabled {%- if env.IPXE_TLS_SETUP == "true" %} dhcp-boot=tag:efi,tag:ipxe,snponly.efi {% endif %} dhcp-boot=tag:efi,tag:!ipxe,snponly.efi # Client is running PXE over BIOS; send BIOS version of iPXE chainloader dhcp-boot=/undionly.kpxe,{{ env.IRONIC_IP }} {% endif %} {% if env.IPV == "6" %} # IPv6 Configuration: enable-ra ra-param={{ env.PROVISIONING_INTERFACE }},0,0 dhcp-vendorclass=set:pxe6,enterprise:343,PXEClient dhcp-userclass=set:ipxe6,iPXE dhcp-option=tag:pxe6,option6:bootfile-url,tftp://{{ env.IRONIC_URL_HOST }}/snponly.efi dhcp-option=tag:ipxe6,option6:bootfile-url,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/boot.ipxe # It can be used when setting DNS or GW variables. {%- if env["GATEWAY_IP"] is undefined %} # Disable default router(s) dhcp-option=3 {% else %} dhcp-option=3,{{ env["GATEWAY_IP"] }} {% endif %} {%- if env["DNS_IP"] is undefined %} # Disable DNS over provisioning network dhcp-option=6 {% else %} dhcp-option=6,{{ env["DNS_IP"] }} {% endif %} {% endif %} {% endif %} {%- if env.DHCP_IGNORE | length %} dhcp-ignore={{ env.DHCP_IGNORE }} {% endif %} {%- if env.DHCP_HOSTS | length %} {%- for item in env.DHCP_HOSTS.split(";") %} dhcp-host={{ item }} {%- endfor %} {% endif %}