iPXE Global Default

Hi,

I'm looking to use an iPXE script delivered over HTTP as my global default.
This is to make use of the "3 state boot" in pure iPXE.

http://projects.theforeman.org/projects/foreman/wiki/3_state_boot

  • Known to Foreman and in Build mode

  • A MAC-specific PXE file is written (OS-specific installer template)

  • Known to Foreman and not in Build mode

  • A MAC-specific PXE file is written (Global PXE Localboot template)

  • Unknown to Foreman

  • The global default PXE file is used (PXE Default File template)

I need to be able to provide a default file, over HTTP. Which is an iPXE
menu. And also files based on MAC, for discovered hosts.

Basically what is now provided in SysLinux/PXELinux, GRUB, GRUB2 now.

Is this possible in foreman now?

Conor,

to be honest, I am really not sure what you are trying to do. We do
have some iPXE support in Foreman, but this is mostly limited to iPXE
template type, so you can use Foreman to generate its contents. If
your intention is to have Foreman to supply custom DHCP filename
option (e.g. http:/somehost/my/ipxe) this is not supported.

LZ

··· On Thu, Aug 10, 2017 at 12:22 PM, Conor Mc Garvey wrote: > Hi, > > I'm looking to use an iPXE script delivered over HTTP as my global default. > This is to make use of the "3 state boot" in pure iPXE. > > http://projects.theforeman.org/projects/foreman/wiki/3_state_boot > > Known to Foreman and in Build mode > > A MAC-specific PXE file is written (OS-specific installer template) > > Known to Foreman and not in Build mode > > A MAC-specific PXE file is written (Global PXE Localboot template) > > Unknown to Foreman > > The global default PXE file is used (PXE Default File template) > > > > I need to be able to provide a default file, over HTTP. Which is an iPXE > menu. And also files based on MAC, for discovered hosts. > > Basically what is now provided in SysLinux/PXELinux, GRUB, GRUB2 now. > > Is this possible in foreman now? > > -- > You received this message because you are subscribed to the Google Groups > "Foreman users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to foreman-users+unsubscribe@googlegroups.com. > To post to this group, send email to foreman-users@googlegroups.com. > Visit this group at https://groups.google.com/group/foreman-users. > For more options, visit https://groups.google.com/d/optout.


Later,
Lukas @lzap Zapletal

Hi Lukas,

We have servers that we wish to provision using UEFI and from testing we
have found that iPXE is the most stable across all cases.

I have found the following code in "foreman-proxy/modules/tftp/server.rb"
which indicates that iPXE does serve a "Global Default" through the
pxelinux TFTP directory.

class Ipxe < Server
def pxeconfig_dir
"#{path}/pxelinux.cfg"
end
def pxe_default
["#{pxeconfig_dir}/default.ipxe"]
end
def pxeconfig_file mac
["#{pxeconfig_dir}/01-"+mac.gsub(/:/,"-").downcase+".ipxe"]
end
end

In the foreman provisioning templates Web UI. Can i have a "iPXE global
default" that manages to "default.ipxe"? Also a 01-<mac>.ipxe for builds?

Thanks,
Conor

··· On Thursday, 10 August 2017 12:21:42 UTC+1, Lukas Zapletal wrote: > > Conor, > > to be honest, I am really not sure what you are trying to do. We do > have some iPXE support in Foreman, but this is mostly limited to iPXE > template type, so you can use Foreman to generate its contents. If > your intention is to have Foreman to supply custom DHCP filename > option (e.g. http:/somehost/my/ipxe) this is not supported. > > LZ > > On Thu, Aug 10, 2017 at 12:22 PM, Conor Mc Garvey > wrote: > > Hi, > > > > I'm looking to use an iPXE script delivered over HTTP as my global > default. > > This is to make use of the "3 state boot" in pure iPXE. > > > > http://projects.theforeman.org/projects/foreman/wiki/3_state_boot > > > > Known to Foreman and in Build mode > > > > A MAC-specific PXE file is written (OS-specific installer template) > > > > Known to Foreman and not in Build mode > > > > A MAC-specific PXE file is written (Global PXE Localboot template) > > > > Unknown to Foreman > > > > The global default PXE file is used (PXE Default File template) > > > > > > > > I need to be able to provide a default file, over HTTP. Which is an iPXE > > menu. And also files based on MAC, for discovered hosts. > > > > Basically what is now provided in SysLinux/PXELinux, GRUB, GRUB2 now. > > > > Is this possible in foreman now? > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Foreman users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to foreman-user...@googlegroups.com . > > To post to this group, send email to forema...@googlegroups.com > . > > Visit this group at https://groups.google.com/group/foreman-users. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Later, > Lukas @lzap Zapletal >

Git blame shows me

http://projects.theforeman.org/issues/16009

See the discussion, it is a very limited support basically just for
global template.

LZ

··· On Thu, Aug 10, 2017 at 2:06 PM, Conor Mc Garvey wrote: > Hi Lukas, > > We have servers that we wish to provision using UEFI and from testing we > have found that iPXE is the most stable across all cases. > > I have found the following code in "foreman-proxy/modules/tftp/server.rb" > which indicates that iPXE does serve a "Global Default" through the pxelinux > TFTP directory. > > class Ipxe < Server > def pxeconfig_dir > "#{path}/pxelinux.cfg" > end > def pxe_default > ["#{pxeconfig_dir}/default.ipxe"] > end > def pxeconfig_file mac > ["#{pxeconfig_dir}/01-"+mac.gsub(/:/,"-").downcase+".ipxe"] > end > end > > In the foreman provisioning templates Web UI. Can i have a "iPXE global > default" that manages to "default.ipxe"? Also a 01-.ipxe for builds? > > Thanks, > Conor > > > On Thursday, 10 August 2017 12:21:42 UTC+1, Lukas Zapletal wrote: >> >> Conor, >> >> to be honest, I am really not sure what you are trying to do. We do >> have some iPXE support in Foreman, but this is mostly limited to iPXE >> template type, so you can use Foreman to generate its contents. If >> your intention is to have Foreman to supply custom DHCP filename >> option (e.g. http:/somehost/my/ipxe) this is not supported. >> >> LZ >> >> On Thu, Aug 10, 2017 at 12:22 PM, Conor Mc Garvey >> wrote: >> > Hi, >> > >> > I'm looking to use an iPXE script delivered over HTTP as my global >> > default. >> > This is to make use of the "3 state boot" in pure iPXE. >> > >> > http://projects.theforeman.org/projects/foreman/wiki/3_state_boot >> > >> > Known to Foreman and in Build mode >> > >> > A MAC-specific PXE file is written (OS-specific installer template) >> > >> > Known to Foreman and not in Build mode >> > >> > A MAC-specific PXE file is written (Global PXE Localboot template) >> > >> > Unknown to Foreman >> > >> > The global default PXE file is used (PXE Default File template) >> > >> > >> > >> > I need to be able to provide a default file, over HTTP. Which is an iPXE >> > menu. And also files based on MAC, for discovered hosts. >> > >> > Basically what is now provided in SysLinux/PXELinux, GRUB, GRUB2 now. >> > >> > Is this possible in foreman now? >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "Foreman users" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> > an >> > email to foreman-user...@googlegroups.com. >> > To post to this group, send email to forema...@googlegroups.com. >> > Visit this group at https://groups.google.com/group/foreman-users. >> > For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Later, >> Lukas @lzap Zapletal > > -- > You received this message because you are subscribed to the Google Groups > "Foreman users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to foreman-users+unsubscribe@googlegroups.com. > To post to this group, send email to foreman-users@googlegroups.com. > Visit this group at https://groups.google.com/group/foreman-users. > For more options, visit https://groups.google.com/d/optout.


Later,
Lukas @lzap Zapletal

Yeah, I seen that post, which gave me hope that my approach is possible.

So can the global iPXE template quoted in the code be managed in foreman
provisioning templates?

··· On Thursday, 10 August 2017 14:21:52 UTC+1, Lukas Zapletal wrote: > > Git blame shows me > > http://projects.theforeman.org/issues/16009 > > See the discussion, it is a very limited support basically just for > global template. > > LZ > > On Thu, Aug 10, 2017 at 2:06 PM, Conor Mc Garvey > wrote: > > Hi Lukas, > > > > We have servers that we wish to provision using UEFI and from testing we > > have found that iPXE is the most stable across all cases. > > > > I have found the following code in > "foreman-proxy/modules/tftp/server.rb" > > which indicates that iPXE does serve a "Global Default" through the > pxelinux > > TFTP directory. > > > > class Ipxe < Server > > def pxeconfig_dir > > "#{path}/pxelinux.cfg" > > end > > def pxe_default > > ["#{pxeconfig_dir}/default.ipxe"] > > end > > def pxeconfig_file mac > > ["#{pxeconfig_dir}/01-"+mac.gsub(/:/,"-").downcase+".ipxe"] > > end > > end > > > > In the foreman provisioning templates Web UI. Can i have a "iPXE global > > default" that manages to "default.ipxe"? Also a 01-.ipxe for > builds? > > > > Thanks, > > Conor > > > > > > On Thursday, 10 August 2017 12:21:42 UTC+1, Lukas Zapletal wrote: > >> > >> Conor, > >> > >> to be honest, I am really not sure what you are trying to do. We do > >> have some iPXE support in Foreman, but this is mostly limited to iPXE > >> template type, so you can use Foreman to generate its contents. If > >> your intention is to have Foreman to supply custom DHCP filename > >> option (e.g. http:/somehost/my/ipxe) this is not supported. > >> > >> LZ > >> > >> On Thu, Aug 10, 2017 at 12:22 PM, Conor Mc Garvey > >> wrote: > >> > Hi, > >> > > >> > I'm looking to use an iPXE script delivered over HTTP as my global > >> > default. > >> > This is to make use of the "3 state boot" in pure iPXE. > >> > > >> > http://projects.theforeman.org/projects/foreman/wiki/3_state_boot > >> > > >> > Known to Foreman and in Build mode > >> > > >> > A MAC-specific PXE file is written (OS-specific installer template) > >> > > >> > Known to Foreman and not in Build mode > >> > > >> > A MAC-specific PXE file is written (Global PXE Localboot template) > >> > > >> > Unknown to Foreman > >> > > >> > The global default PXE file is used (PXE Default File template) > >> > > >> > > >> > > >> > I need to be able to provide a default file, over HTTP. Which is an > iPXE > >> > menu. And also files based on MAC, for discovered hosts. > >> > > >> > Basically what is now provided in SysLinux/PXELinux, GRUB, GRUB2 now. > >> > > >> > Is this possible in foreman now? > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "Foreman users" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send > >> > an > >> > email to foreman-user...@googlegroups.com. > >> > To post to this group, send email to forema...@googlegroups.com. > >> > Visit this group at https://groups.google.com/group/foreman-users. > >> > For more options, visit https://groups.google.com/d/optout. > >> > >> > >> > >> -- > >> Later, > >> Lukas @lzap Zapletal > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Foreman users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to foreman-user...@googlegroups.com . > > To post to this group, send email to forema...@googlegroups.com > . > > Visit this group at https://groups.google.com/group/foreman-users. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Later, > Lukas @lzap Zapletal >

No unfortunately, the support for iPXE was only added in foreman-proxy
API. You will see some iPXE templates in foreman core, but these
serves for a different purpose.

To be honest, I am missing motivation for putting iPXE templates onto
TFTP because the stack does support HTTP/HTTPS therefore you can
directly access iPXE templates in foreman (or via templates proxy
plugin as well).

LZ

··· On Thu, Aug 10, 2017 at 3:38 PM, Conor Mc Garvey wrote: > Yeah, I seen that post, which gave me hope that my approach is possible. > > So can the global iPXE template quoted in the code be managed in foreman > provisioning templates? > > On Thursday, 10 August 2017 14:21:52 UTC+1, Lukas Zapletal wrote: >> >> Git blame shows me >> >> http://projects.theforeman.org/issues/16009 >> >> See the discussion, it is a very limited support basically just for >> global template. >> >> LZ >> >> On Thu, Aug 10, 2017 at 2:06 PM, Conor Mc Garvey >> wrote: >> > Hi Lukas, >> > >> > We have servers that we wish to provision using UEFI and from testing we >> > have found that iPXE is the most stable across all cases. >> > >> > I have found the following code in >> > "foreman-proxy/modules/tftp/server.rb" >> > which indicates that iPXE does serve a "Global Default" through the >> > pxelinux >> > TFTP directory. >> > >> > class Ipxe < Server >> > def pxeconfig_dir >> > "#{path}/pxelinux.cfg" >> > end >> > def pxe_default >> > ["#{pxeconfig_dir}/default.ipxe"] >> > end >> > def pxeconfig_file mac >> > ["#{pxeconfig_dir}/01-"+mac.gsub(/:/,"-").downcase+".ipxe"] >> > end >> > end >> > >> > In the foreman provisioning templates Web UI. Can i have a "iPXE global >> > default" that manages to "default.ipxe"? Also a 01-.ipxe for >> > builds? >> > >> > Thanks, >> > Conor >> > >> > >> > On Thursday, 10 August 2017 12:21:42 UTC+1, Lukas Zapletal wrote: >> >> >> >> Conor, >> >> >> >> to be honest, I am really not sure what you are trying to do. We do >> >> have some iPXE support in Foreman, but this is mostly limited to iPXE >> >> template type, so you can use Foreman to generate its contents. If >> >> your intention is to have Foreman to supply custom DHCP filename >> >> option (e.g. http:/somehost/my/ipxe) this is not supported. >> >> >> >> LZ >> >> >> >> On Thu, Aug 10, 2017 at 12:22 PM, Conor Mc Garvey >> >> wrote: >> >> > Hi, >> >> > >> >> > I'm looking to use an iPXE script delivered over HTTP as my global >> >> > default. >> >> > This is to make use of the "3 state boot" in pure iPXE. >> >> > >> >> > http://projects.theforeman.org/projects/foreman/wiki/3_state_boot >> >> > >> >> > Known to Foreman and in Build mode >> >> > >> >> > A MAC-specific PXE file is written (OS-specific installer template) >> >> > >> >> > Known to Foreman and not in Build mode >> >> > >> >> > A MAC-specific PXE file is written (Global PXE Localboot template) >> >> > >> >> > Unknown to Foreman >> >> > >> >> > The global default PXE file is used (PXE Default File template) >> >> > >> >> > >> >> > >> >> > I need to be able to provide a default file, over HTTP. Which is an >> >> > iPXE >> >> > menu. And also files based on MAC, for discovered hosts. >> >> > >> >> > Basically what is now provided in SysLinux/PXELinux, GRUB, GRUB2 now. >> >> > >> >> > Is this possible in foreman now? >> >> > >> >> > -- >> >> > You received this message because you are subscribed to the Google >> >> > Groups >> >> > "Foreman users" group. >> >> > To unsubscribe from this group and stop receiving emails from it, >> >> > send >> >> > an >> >> > email to foreman-user...@googlegroups.com. >> >> > To post to this group, send email to forema...@googlegroups.com. >> >> > Visit this group at https://groups.google.com/group/foreman-users. >> >> > For more options, visit https://groups.google.com/d/optout. >> >> >> >> >> >> >> >> -- >> >> Later, >> >> Lukas @lzap Zapletal >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "Foreman users" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> > an >> > email to foreman-user...@googlegroups.com. >> > To post to this group, send email to forema...@googlegroups.com. >> > Visit this group at https://groups.google.com/group/foreman-users. >> > For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Later, >> Lukas @lzap Zapletal > > -- > You received this message because you are subscribed to the Google Groups > "Foreman users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to foreman-users+unsubscribe@googlegroups.com. > To post to this group, send email to foreman-users@googlegroups.com. > Visit this group at https://groups.google.com/group/foreman-users. > For more options, visit https://groups.google.com/d/optout.


Later,
Lukas @lzap Zapletal