BASH scripts to manage pxe based ignition setup for CoreOS
dhcpd | ||
dump | ||
etc | ||
nginx/conf.d | ||
pxeconfigs | ||
pxelinux/pxelinux.cfg | ||
scripts | ||
.gitignore | ||
.mac-lists.csv.swo | ||
csr-approve.sh | ||
docker-compose.yaml | ||
Dockerfile | ||
inf-install.yaml | ||
mac-lists.csv | ||
pxelinux-generator.sh | ||
Readme.md | ||
update-netra-token.sh |
PXE
Use pxelinux-generator.sh
script to generate configs and populate the target path with pxe profiles according to mac-address from mac-lists.csv
file.
DHCP Setup
authoritative;
ddns-update-style interim;
allow booting;
allow bootp;
allow unknown-clients;
ignore client-updates;
default-lease-time 14400;
max-lease-time 14400;
subnet 192.168.22.0 netmask 255.255.255.0 {
option routers 192.168.22.1; # lan
option subnet-mask 255.255.255.0;
option domain-name "ocp.lan";
option domain-name-servers 192.168.22.1;
# range 192.168.22.80 192.168.22.99;
next-server 192.168.22.1;
filename "pxelinux/pxelinux.0";
}
Host File Structure
/var/lib/tftpboot/
└── pxelinux
├── bg.png
├── boot.msg
├── fcos-37-pxe
│ ├── fcos-initramfs.x86_64.img
│ ├── fcos-live-kernel.x86_64
│ └── fcos-live-rootfs.x86_64.img
├── ldlinux.c32
├── libcom32.c32
├── libutil.c32
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ ├── 01-00-50-56-bb-f8-6d
│ ├── 01-52-54-00-1b-15-29
│ ├── 01-52-54-00-47-1a-1b
│ ├── 01-52-54-00-5e-7c-d6
│ ├── 01-52-54-00-70-f5-db
│ ├── 01-52-54-00-84-b1-11
│ ├── 01-52-54-00-a1-55-1a
│ ├── 01-52-54-00-c0-d0-de
│ ├── 01-52-54-00-f1-d1-63
│ ├── 01-ac-1f-6b-ef-83-74
│ └── default
├── rhcos-4.9-pxe
└── vesamenu.c32
Dependencies
- initramfs and kernel file (Will make the handler later)
- PXE setup
- DHCP Config
- tftpboot