PXE: Allowing config without preseed url

This commit is contained in:
nikolark committed 2016-06-19 18:59:56 +02:00
1 parent 456bcb7c50
commit 6385445227
2 files changed
+24 -17

No files matched your search

+19 -16
View File
@@ -4,29 +4,32 @@ import ipaddress
def render_pxelinux_cfg(_if, host):
"""Renders pxelinux.cfg based on a host and the set of host interfaces.
"""Renders pxelinux.cfg based on a host and the set of host interfaces,
If the host is tied to an OS with PXE fields set, it will use these instead of defaults."""
# Default config
kernel = settings.MDB_PXE_KERNEL
initrd = settings.MDB_PXE_INITRD
preseed_config_url = settings.MDB_PXE_PRESEED_URL
# Per host config (via OS model)
_os = host.operating_system
pxe_attrs = [_os.pxe_initrd, _os.pxe_kernel, _os.pxe_preseed_config_url]
if None not in pxe_attrs and '' not in pxe_attrs:
kernel = _os.pxe_kernel
initrd = _os.pxe_initrd
preseed_config_url = _os.pxe_preseed_config_url
context = {
'kernel': kernel,
'initrd': initrd,
'preseed_config_url': preseed_config_url,
'kernel': settings.MDB_PXE_KERNEL,
'initrd': settings.MDB_PXE_INITRD,
'preseed_config_url': settings.MDB_PXE_PRESEED_URL,
'host': host,
'interface': _if
}
# Per host config (via OS model)
_os = host.operating_system
required_pxe_attrs = [_os.pxe_initrd, _os.pxe_kernel]
if None not in required_pxe_attrs and '' not in required_pxe_attrs:
context['kernel'] = _os.pxe_kernel
context['initrd'] = _os.pxe_initrd
# optional preseed URL
if _os.pxe_preseed_config_url not in ['', None]:
context['preseed_config_url'] = _os.pxe_preseed_config_url
else:
# Per OS config without preseed
del context['preseed_config_url']
return render_to_string('pxelinux.cfg', context=context)
+5 -1
View File
@@ -4,4 +4,8 @@ timeout 0
label ninja
kernel {{kernel}}
append ramdisk_size=14984 locale=en_US console-setup/ask_detect=false keyboard-configuration/layoutcode=no netcfg/wireless_wep= netcfg_choose_interface=eth0 netcfg/get_hostname= preseed/url={{preseed_config_url}} vga=normal snop={{host.pxe_key}} initrd={{initrd}} -- quiet
{% if preseed_config_url %}
append ramdisk_size=14984 locale=en_US console-setup/ask_detect=false keyboard-configuration/layoutcode=no netcfg/wireless_wep= netcfg_choose_interface=eth0 netcfg/get_hostname= preseed/url={{preseed_config_url}} vga=normal snop={{host.pxe_key}} initrd={{initrd}} -- quiet
{% else %}
append locale=en_US console-setup/ask_detect=false keyboard-configuration/layoutcode=no netcfg/wireless_wep= vga=normal initrd={{initrd}} -- quiet
{% endif %}