diff --git a/README.md b/README.md index 3d9549782d..5735cbf953 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ In addition to being able to host netboot.xyz locally, you can also create your | Bodhi Linux | https://www.bodhilinux.com | No | Yes | | CachyOS | https://cachyos.org | No | Yes | | CentOS | https://centos.org | Yes | No | +| CentOS CoreOS | https://centos.org | Yes | No | | Debian | https://debian.org | Yes | Yes| | Devuan | https://devuan.org | Yes | No | | Elementary OS | https://elementary.io | No | Yes | @@ -170,6 +171,7 @@ In addition to being able to host netboot.xyz locally, you can also create your | Q4OS | https://q4os.org | No | Yes | | Raizo | https://sourceforge.net/projects/live-raizo/ | No | Yes | | Red Hat Enterprise Linux | https://www.redhat.com | User supplied media | No | +| Red Hat Enterprise Linux CoreOS | https://openshift.com | Yes | No | | Regolith | https://regolith-linux.org | No | Yes | | Rocky Linux | https://rockylinux.org/ | Yes | No | | Septor | https://septor.sourceforge.io | No | Yes | diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index a24961adff..5f72829983 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -331,7 +331,7 @@ releases: name: Ubuntu 24.04 - key: ubuntu-24.10 name: Ubuntu 24.10 - version: v3.5.2 + version: v3.5.3 kali: base_dir: kali enabled: true @@ -442,6 +442,25 @@ releases: enabled: true menu: linux name: Proxmox + rhcos: + base_dir: pub/openshift-v4 + enabled: true + menu: linux + mirror: https://mirror.openshift.com + name: Red Hat Enterprise Linux CoreOS + versions: + - code_name: 4.12 + name: 4.12 [Extended Support] + - code_name: 4.14 + name: 4.14 [Extended Support] + - code_name: 4.16 + name: 4.16 [Maintenance Support] + - code_name: 4.17 + name: 4.17 [Maintenance Support] + - code_name: 4.18 + name: 4.18 [Full Support] + - code_name: 4.19 + name: 4.19 [Full Support] rhel: enabled: true menu: linux @@ -459,6 +478,25 @@ releases: name: 9 (Latest) - code_name: 8 name: 8 (Latest) + scos: + base_dir: centos/scos + enabled: true + menu: linux + mirror: https://cloud.centos.org + name: CentOS Stream CoreOS + versions: + - code_name: 9.0.20250222-0 + name: 9.0.20250222-0 + major_version: 9 + - code_name: 9.0.20250411-0 + name: 9.0.20250411-0 + major_version: 9 + - code_name: 9.0.20250510-0 + name: 9.0.20250510-0 + major_version: 9 + - code_name: 10.0.20250628-0 + name: 10.0.20250628-0 + major_version: 10 slackware: base_dir: slackware enabled: true diff --git a/roles/netbootxyz/templates/menu/rhcos.ipxe.j2 b/roles/netbootxyz/templates/menu/rhcos.ipxe.j2 new file mode 100644 index 0000000000..d9f86110c5 --- /dev/null +++ b/roles/netbootxyz/templates/menu/rhcos.ipxe.j2 @@ -0,0 +1,56 @@ +#!ipxe + +# Red Hat Enterprise Linux CoreOS (RHCOS) +# https://openshift.com +# https://github.com/coreos/coreos-installer/blob/master/README.md#installing-from-pxe + +goto ${menu} + +:rhcos +set os {{ releases.rhcos.name }} +set os_arch ${arch} +iseq ${os_arch} x86_64 && set os_arch x86_64 || +iseq ${os_arch} arm64 && set os_arch aarch64 || +isset ${install_device} || set install_device /dev/sda +isset ${ignition_url} || set ignition_url skip +menu ${os} - ${os_arch} +item --gap ${os}: +{% for item in releases.rhcos.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item install_dev ${space} Set install device: ${install_device} +item ignition_config ${space} Set ignition config url: ${ignition_url} +choose --default ${rhcos_version} rhcos_version || goto rhcos_exit +echo ${cls} +iseq ${rhcos_version} ignition_config && goto ignition_config || +iseq ${rhcos_version} install_dev && goto install_dev || +goto rhcos_boot || +goto rhcos_exit + +:rhcos_boot +{% for item in releases.rhcos.versions %} +iseq ${core_version} {{ item.code_name }} || +{% endfor %} +set base_url ${rhcos_mirror}/${os_arch}/dependencies/rhcos +set build_version ${rhcos_version} +imgfree +kernel ${base_url}/${build_version}/latest/rhcos-live-kernel.${os_arch} ip=dhcp rd.neednet=1 coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} coreos.live.rootfs_url=${base_url}/${build_version}/latest/rhcos-live-rootfs.${os_arch}.img initrd=initrd.magic ${cmdline} +initrd ${base_url}/${build_version}/latest/rhcos-live-initramfs.${os_arch}.img +boot +goto rhcos_exit + +:install_dev +echo -n Selected install device will be overwritten, +echo -n please ensure you know what are you doing... +echo -n Please set desired install device: && read install_device +clear menu +goto rhcos + +:ignition_config +echo -n Please set Ignition Configuration URL: && read ignition_url +clear menu +goto rhcos + +:rhcos_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/scos.ipxe.j2 b/roles/netbootxyz/templates/menu/scos.ipxe.j2 new file mode 100644 index 0000000000..0f46e9c4b3 --- /dev/null +++ b/roles/netbootxyz/templates/menu/scos.ipxe.j2 @@ -0,0 +1,56 @@ +#!ipxe + +# CentOS Stream CoreOS (SCOS) +# https://www.centos.org/cloud/ +# https://github.com/coreos/coreos-installer/blob/master/README.md#installing-from-pxe + +goto ${menu} + +:scos +set os {{ releases.scos.name }} +set os_arch ${arch} +iseq ${os_arch} x86_64 && set os_arch x86_64 || +iseq ${os_arch} arm64 && set os_arch aarch64 || +isset ${install_device} || set install_device /dev/sda +isset ${ignition_url} || set ignition_url skip +menu ${os} - ${os_arch} +item --gap ${os}: +{% for item in releases.scos.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item install_dev ${space} Set install device (e.g. /dev/sda): ${install_device} +item ignition_config ${space} Set ignition config url: ${ignition_url} +choose --default ${scos_version} scos_version || goto scos_exit +echo ${cls} +iseq ${scos_version} ignition_config && goto ignition_config || +iseq ${scos_version} install_dev && goto install_dev || +goto scos_boot || +goto scos_exit + +:scos_boot +{% for item in releases.scos.versions %} +iseq ${scos_version} {{ item.code_name }} && set scos_major_version {{ item.major_version }} || +{% endfor %} +set base_url ${scos_mirror}/${scos_base_dir}/${scos_major_version}/prod/streams +set build_version ${scos_version} +imgfree +kernel ${base_url}/${build_version}/${os_arch}/scos-${build_version}-live-kernel.${os_arch} ip=dhcp rd.neednet=1 coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} coreos.live.rootfs_url=${base_url}/${build_version}/${os_arch}/scos-${build_version}-live-rootfs.${os_arch}.img initrd=initrd.magic ${cmdline} +initrd ${base_url}/${build_version}/${os_arch}/scos-${build_version}-live-initramfs.${os_arch}.img +boot +goto scos_exit + +:install_dev +echo -n Selected install device will be overwritten, +echo -n please ensure you know what are you doing... +echo -n Please set desired install device: && read install_device +clear menu +goto scos + +:ignition_config +echo -n Please set Ignition Configuration URL: && read ignition_url +clear menu +goto scos + +:scos_exit +clear menu +exit 0