Ver Fonte

Add initial support for openEuler OS

Signed-off-by: imjoey <majunjie@apache.org>
imjoey há 3 anos atrás
pai
commit
e5c085adee

+ 1 - 0
README.md

@@ -134,6 +134,7 @@ In addition to being able to host netboot.xyz locally, you can also create your
 | Nitrux | https://nxos.org/ | No | Yes |
 | NixOS | https://nixos.org | Yes | No |
 | OpenBSD | https://openbsd.org | Yes | No |
+| openEuler | https://openeuler.org | Yes | No |
 | OpenSUSE | https://opensuse.org | Yes | No |
 | Oracle Linux | https://www.oracle.com/linux/ | Yes | Installer |
 | Parrot Security | https://www.parrotsec.org | No | Yes |

+ 10 - 0
roles/netbootxyz/defaults/main.yml

@@ -314,6 +314,16 @@ releases:
     - code_name: snapshots
       image_ver: '69'
       name: 6.9 Latest Snapshot
+  openEuler:
+    enabled: true
+    menu: linux
+    mirror: https://repo.openeuler.org
+    name: openEuler
+    versions:
+    - code_name: openEuler-20.03-LTS-SP1
+      name: openEuler-20.03-LTS-SP1
+    - code_name: openEuler-21.03
+      name: openEuler-21.03
   opensuse:
     base_dir: distribution/leap
     enabled: true

+ 72 - 0
roles/netbootxyz/templates/menu/openEuler.ipxe.j2

@@ -0,0 +1,72 @@
+#!ipxe
+
+# openEuler
+# https://openeuler.org/
+
+isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}:::none nameserver=${dns}
+set ipparam BOOTIF=${netX/mac} ${ipparam}
+
+goto ${menu} ||
+
+:openEuler
+clear osversion
+set os {{ releases.openEuler.name }}
+menu ${os} - ${arch}
+{% for item in releases.openEuler.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+isset ${osversion} || choose osversion || goto linux_menu
+echo ${cls}
+set dir ${osversion}/OS/${arch}
+set repo ${openEuler_mirror}/${dir}
+goto boottype
+
+:boottype
+set ova ${os} ${osversion}
+menu ${os} ${arch} boot type
+item graphical ${ova} graphical installer
+item text ${ova} text based installer
+item rescue ${ova} rescue
+item kickstart ${ova} set kickstart url [ ${ksurl} ]
+item kickstart_device ${ova} set ksdevice [ ${ksdevice} ]
+isset ${bt} || choose bt || goto openEuler
+echo ${cls}
+iseq ${bt} text && goto text ||
+iseq ${bt} rescue && goto rescue ||
+iseq ${bt} kickstart && goto kickstart ||
+iseq ${bt} kickstart_device && goto kickstart_device ||
+goto bootos_images
+
+:text
+set params text ||
+goto bootos_images
+
+:rescue
+set params rescue ||
+goto bootos_images
+
+:kickstart
+echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
+set params inst.ks=${ksurl} ||
+clear bt
+goto boottype
+
+:kickstart_device
+echo -n Specify ksdevice param for ${os} ${osversion}: && read ksdevice
+set ksdevice ${ksdevice} ||
+clear bt
+goto boottype
+
+:bootos_images
+imgfree
+kernel ${openEuler_mirror}/${dir}/images/pxeboot/vmlinuz inst.repo=${repo} ${params} ${ipparam} initrd=initrd.img ${cmdline}
+initrd ${openEuler_mirror}/${dir}/images/pxeboot/initrd.img
+echo
+echo MD5sums:
+md5sum vmlinuz initrd.img
+boot
+goto linux_menu
+
+:linux_menu
+clear menu
+exit 0