Establish clean homelab infrastructure baseline
Reorganize the brownfield repository, remove retired and generated artifacts, harden ignore rules, and record the GitOps/IaC redesign.
This commit is contained in:
@@ -0,0 +1,219 @@
|
||||
#!ipxe
|
||||
|
||||
:global_vars
|
||||
# set site name
|
||||
set site_name netboot.xyz
|
||||
|
||||
# set boot domain
|
||||
set boot_domain boot.netboot.xyz/3.0.2
|
||||
|
||||
# set location of memdisk
|
||||
set memdisk http://${boot_domain}/memdisk
|
||||
|
||||
# set location of custom netboot.xyz live assets, override in local-vars.ipxe
|
||||
isset ${live_endpoint} || set live_endpoint https://github.com/netbootxyz
|
||||
|
||||
# default Windows install source (local WinPE); local-vars.ipxe may override
|
||||
isset ${win_base_url} || set win_base_url http://192.168.10.127:8080/WinPE
|
||||
|
||||
# signature check enabled?
|
||||
set sigs_enabled false
|
||||
|
||||
# disable signature checks if SecureBoot is active, as imgverify is not
|
||||
# available when booting via iPXE upstream's official Secure Boot image
|
||||
iseq ${efi/SecureBoot} 01 && set sigs_enabled false ||
|
||||
|
||||
# set location of signatures for sources
|
||||
set sigs http://${boot_domain}/sigs/
|
||||
|
||||
# set location of latest iPXE
|
||||
iseq ${platform} efi && set ipxe_disk netboot.xyz-snponly.efi || set ipxe_disk netboot.xyz-undionly.kpxe
|
||||
|
||||
# set default boot timeout
|
||||
isset ${boot_timeout} || set boot_timeout 300000
|
||||
|
||||
##################
|
||||
# official mirrors
|
||||
##################
|
||||
:mirrors
|
||||
### AlmaLinux
|
||||
set almalinux_mirror http://repo.almalinux.org
|
||||
set almalinux_base_dir almalinux
|
||||
|
||||
### Alpine Linux
|
||||
set alpinelinux_mirror http://dl-cdn.alpinelinux.org
|
||||
set alpinelinux_base_dir alpine
|
||||
|
||||
### Arch Linux
|
||||
set archlinux_mirror mirrors.kernel.org
|
||||
set archlinux_base_dir archlinux
|
||||
|
||||
### CentOS Stream
|
||||
set centos_mirror https://mirror.stream.centos.org
|
||||
set centos_base_dir
|
||||
|
||||
### CentOS Stream CoreOS
|
||||
set scos_mirror https://cloud.centos.org
|
||||
set scos_base_dir centos/scos
|
||||
|
||||
### Debian
|
||||
set debian_mirror http://deb.debian.org
|
||||
set debian_base_dir debian
|
||||
|
||||
### Devuan
|
||||
set devuan_mirror http://deb.devuan.org
|
||||
set devuan_base_dir devuan
|
||||
|
||||
### Fedora
|
||||
set fedora_mirror http://mirrors.kernel.org
|
||||
set fedora_base_dir fedora
|
||||
|
||||
### Fedora CoreOS
|
||||
set coreos_mirror https://builds.coreos.fedoraproject.org
|
||||
set coreos_base_dir prod/streams
|
||||
|
||||
### FreeDOS
|
||||
set freedos_mirror http://www.ibiblio.org
|
||||
set freedos_base_dir pub/micro/pc-stuff/freedos/files/distributions/1.4
|
||||
|
||||
### IPFire
|
||||
set ipfire_mirror https://downloads.ipfire.org
|
||||
set ipfire_base_dir releases/ipfire-2.x
|
||||
|
||||
### Kali Linux
|
||||
set kali_mirror http://http.kali.org
|
||||
set kali_base_dir kali
|
||||
|
||||
### Mageia
|
||||
set mageia_mirror http://mirrors.kernel.org
|
||||
set mageia_base_dir mageia
|
||||
|
||||
### OpenBSD
|
||||
set openbsd_mirror http://cdn.openbsd.org
|
||||
set openbsd_base_dir pub/OpenBSD
|
||||
|
||||
### openEuler
|
||||
set openEuler_mirror http://repo.openeuler.org
|
||||
set openEuler_base_dir
|
||||
|
||||
### openSUSE
|
||||
set opensuse_mirror http://download.opensuse.org
|
||||
set opensuse_base_dir distribution/leap
|
||||
|
||||
### Red Hat Enterprise Linux CoreOS
|
||||
set rhcos_mirror https://mirror.openshift.com
|
||||
set rhcos_base_dir pub/openshift-v
|
||||
|
||||
### Rocky Linux
|
||||
set rockylinux_mirror http://download.rockylinux.org
|
||||
set rockylinux_base_dir pub/rocky
|
||||
|
||||
### Slackware
|
||||
set slackware_mirror http://mirrors.kernel.org
|
||||
set slackware_base_dir slackware
|
||||
|
||||
### SmartOS
|
||||
set smartos_mirror https://netboot.smartos.org/os/
|
||||
set smartos_base_dir /platform/i86pc/
|
||||
|
||||
### Ubuntu
|
||||
set ubuntu_mirror http://archive.ubuntu.com
|
||||
set ubuntu_base_dir ubuntu
|
||||
|
||||
#################################################
|
||||
# determine architectures and enable menu options
|
||||
#################################################
|
||||
:architectures
|
||||
set menu_linux 1
|
||||
set menu_bsd 1
|
||||
set menu_unix 1
|
||||
set menu_freedos 1
|
||||
set menu_live 1
|
||||
set menu_pci 1
|
||||
set menu_windows 1
|
||||
set menu_utils 1
|
||||
iseq ${arch} i386 && goto i386 ||
|
||||
iseq ${arch} x86_64 && goto x86_64 ||
|
||||
iseq ${arch} arm64 && goto arm64 ||
|
||||
goto architectures_end
|
||||
:x86_64
|
||||
set menu_linux_i386 0
|
||||
iseq ${platform} efi && goto efi ||
|
||||
goto architectures_end
|
||||
:i386
|
||||
set menu_linux 0
|
||||
set menu_linux_i386 1
|
||||
set menu_bsd 1
|
||||
set menu_unix 0
|
||||
set menu_freedos 1
|
||||
set menu_live 0
|
||||
set menu_windows 0
|
||||
set menu_utils 1
|
||||
iseq ${platform} efi && goto efi ||
|
||||
goto architectures_end
|
||||
:arm64
|
||||
set menu_linux 0
|
||||
set menu_linux_arm 1
|
||||
set menu_unix 0
|
||||
set menu_freedos 0
|
||||
set menu_live 0
|
||||
set menu_live_arm 1
|
||||
set menu_windows 0
|
||||
set menu_utils 0
|
||||
set menu_utils_arm 1
|
||||
set menu_pci 0
|
||||
iseq ${platform} efi && goto efi ||
|
||||
goto architectures_end
|
||||
:efi
|
||||
set menu_bsd 1
|
||||
set menu_freedos 0
|
||||
set menu_unix 0
|
||||
set menu_pci 0
|
||||
goto architectures_end
|
||||
:architectures_end
|
||||
goto clouds
|
||||
|
||||
###################################
|
||||
# set iPXE cloud provider specifics
|
||||
###################################
|
||||
:clouds
|
||||
iseq ${ipxe_cloud_config} gce && goto gce ||
|
||||
iseq ${ipxe_cloud_config} metal && goto metal ||
|
||||
iseq ${ipxe_cloud_config} packet && goto metal ||
|
||||
goto clouds_end
|
||||
|
||||
:gce
|
||||
set cmdline console=ttyS0,115200n8
|
||||
goto clouds_end
|
||||
|
||||
:metal
|
||||
iseq ${arch} i386 && goto metal_x86_64 ||
|
||||
iseq ${arch} x86_64 && goto metal_x86_64 ||
|
||||
iseq ${arch} arm64 && goto metal_arm64 ||
|
||||
goto clouds_end
|
||||
|
||||
:metal_x86_64
|
||||
set cmdline console=ttyS1,115200n8
|
||||
iseq ${platform} efi && set ipxe_disk netboot.xyz-metal-snp.efi || set ipxe_disk netboot.xyz-metal.kpxe
|
||||
set menu_linux_i386 0
|
||||
set menu_freedos 0
|
||||
set menu_windows 0
|
||||
iseq ${platform} efi && set menu_pci 0 ||
|
||||
goto clouds_end
|
||||
|
||||
:metal_arm64
|
||||
set cmdline console=ttyAMA0,115200
|
||||
set ipxe_disk netboot.xyz-metal-arm64-snp.efi
|
||||
set menu_bsd 1
|
||||
set menu_freedos 0
|
||||
set menu_live 0
|
||||
set menu_windows 0
|
||||
set menu_utils 0
|
||||
set menu_pci 0
|
||||
goto clouds_end
|
||||
|
||||
:clouds_end
|
||||
goto end
|
||||
|
||||
:end
|
||||
exit
|
||||
@@ -0,0 +1,22 @@
|
||||
#!ipxe
|
||||
### local overrides for this self-hosted netboot.xyz instance
|
||||
|
||||
# Use the proxyDHCP-provided TFTP server (192.168.10.127) without prompting for a keypress
|
||||
set use_proxydhcp_settings true
|
||||
|
||||
# Windows: where wimboot fetches WinPE from (files live in assets/WinPE/x64/,
|
||||
# served by the appliance nginx on :8080). The Windows menu appends /x64/...
|
||||
set win_base_url http://192.168.10.127:8080/WinPE
|
||||
|
||||
# ─── Proxmox VE 9.2 reinstall auto-boot (per-node MAC-match) ───
|
||||
# Re-add ONE line at a time, only for the node you're actively reinstalling, then
|
||||
# remove it once that node is up — this prevents a network-boot reinstall loop.
|
||||
# Runs after DHCP so ${mac} is set; non-matching machines fall through (||) to the menu.
|
||||
# iseq ${mac} 6c:4b:90:c9:f8:0a && chain --replace http://192.168.10.127:8080/proxmox/pve3.ipxe || # pve3 -> .9
|
||||
# iseq ${mac} 6c:4b:90:c9:f8:53 && chain --replace http://192.168.10.127:8080/proxmox/pve2.ipxe || # pve2 -> .7
|
||||
# pve1 (NUC) needs pve1-net.ipxe, NOT pve1.ipxe: its UEFI cannot unpack a
|
||||
# ~1.8GB initramfs ("initramfs unpacking failed: write error"), so the ISO
|
||||
# must be staged to a local disk over the network instead of riding along in
|
||||
# the initrd. See services/netboot/assets/proxmox/pve1-net.ipxe for details.
|
||||
# iseq ${mac} b8:ae:ed:ea:0f:30 && chain --replace http://192.168.10.127:8080/proxmox/pve1-net.ipxe || # pve1 -> .4
|
||||
# ALL THREE NODES REINSTALLED 2026-07-25 — every line above is disarmed on purpose.
|
||||
Reference in New Issue
Block a user