BASH scripts to manage pxe based ignition setup for CoreOS
Go to file
2024-09-12 10:58:13 +07:00
pxeconfigs Initial Commit 2024-09-12 10:40:51 +07:00
.mac-lists.csv.swp Initial Commit 2024-09-12 10:40:51 +07:00
csr-approve.sh Initial Commit 2024-09-12 10:40:51 +07:00
mac-lists.csv Initial Commit 2024-09-12 10:40:51 +07:00
pxelinux-generator.sh Initial Commit 2024-09-12 10:40:51 +07:00
Readme.md Add file structures 2024-09-12 10:58:13 +07:00
update-netra-token.sh Initial Commit 2024-09-12 10:40:51 +07:00

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