IwIP support for PXELinux 5.1+
I am using foreman in mix with vmware, but experience really serious issue where impossible adjust setting for filename in DHCP, because it super seed from foreman.
We using mass deployment for remote location where use of TFTP or ipxe not an option.
VMware ipxe is not in option because it require change of each vmx file manually to load ipxe into bios.
For file initrd 44M take 1 hour 45 to download through TFTP ?
I have test case build where I am using HTTP/nginx instead TFTP and whole new vm deployment takes about 27 min with VMware.
My request is have ability to set in foreman provisioning settings which type of pxe filename to use. Right now syslinux use lpxelinux.0 which support HTTP and FTP out of the box no need chain files or different scripts to load.
Here my boot menu which I use for HTTP.
<%# kind: PXELinux name: OEL65_NONE_TS_DEFAULT_GRUB oses: - RedHat 6 %> DEFAULT menu PROMPT 0 MENU TITLE TheForeMan LABEL OracleLinux 6.5 --> <%= @host.location %> | Role <%= @host.params['vm_role'] %> kernel "<%=@host.params['foreman_pxe_boot_url'] %>/<%= @kernel %>" <% if @host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16 -%> append initrd="<%=@host.params['foreman_pxe_boot_url'] %>/<%= @initrd %>" %> ks=<%= foreman_url('provision')%> ks.device=bootif network ks.sendmac <% elsif @host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7 -%> append initrd="<%=@host.params['foreman_pxe_boot_url'] %>/<%= @initrd %>" ks=<%= foreman_url('provision')%> network ks.sendmac <% else -%> append initrd <%=@host.params['foreman_pxe_boot_url'] %>/<%= @initrd %> ks=<%= foreman_url('provision')%> ksdevice=bootif network kssendmac <% end -%> IPAPPEND 2
Also working DHCP options for HTTP
allow booting; allow bootp; option fqdn.no-client-update on; # set the "O" and "S" flag bits option fqdn.rcode2 255; option pxegrub code 150 = text ; option space pxelinux; option pxelinux.magic code 208 = string; option pxelinux.pathprefix code 210 = text; option pxelinux.reboottime code 211 = unsigned integer 32; # PXE Handoff. filename "lpxelinux.0";
#1 Updated by Lukas Zapletal over 6 years ago
- Tracker changed from Bug to Feature
- Subject changed from DHCP pxe options to IwIP support for PXELinux 5.1+
- Category set to TFTP
- Priority changed from High to Normal
VmWare network drivers are not PXELinux friendly and buggy.
By default Foreman ships with PXELinux, the lpxelinux.0 file is featured in version 5.1 (quite new version). We are not there yet. Unfortunately Foreman provisioning is designed around kernel/initrd on the TFTP server. Some refactoring would be needed in the Foreman core and operating systems.
#2 Updated by Dominic Cleal over 6 years ago
You can also load iPXE via PXE/TFTP rather than configuring it at the VM's BIOS level as the bootloader.
Chainload iPXE (ipxe.lkrn) from PXELinux is easiest with Foreman, and then iPXE can fetch files over HTTP: http://projects.theforeman.org/projects/foreman/wiki/Fetch_boot_files_via_http_instead_of_TFTP
#3 Updated by Slava Bendersky over 6 years ago
I spent yesterday tried chain loader pxelinux ---> ipxe, but with vmware e1000 no dice. iPXE get stack while trying download OS images and each time on different percentage. I tried troubleshoot and I know this some thing to do with pxe him self, tried wget or curl to download images from web server and no problem there are or on the network. I think lpxelinux it clean solution chain loading not good so far.