1
0
Antony Messerli 5 жил өмнө
parent
commit
9f3c1ec862

+ 16 - 11
roles/netbootxyz/defaults/main.yml

@@ -1,13 +1,14 @@
 ---
 
-boot_domain: boot.mydomain.com
-boot_version: 1.00
+site_name: netboot.xyz
+boot_domain: boot.netboot.xyz
+boot_version: 1.04
 
 ipxe_repo: https://github.com/ipxe/ipxe.git
 ipxe_branch: master
 ipxe_source_dir: /usr/src/ipxe
 
-netbootxyz_repo: https://github.com/antonym/netboot.xyz.git
+netbootxyz_repo: https://github.com/netbootxyz/netboot.xyz.git
 netbootxyz_branch: master
 netbootxyz_root: /var/www/html
 
@@ -53,7 +54,9 @@ releases:
       - name: "7.7"
         code_name: "7.7.1908"
   coreos:
-    name: "CoreOS"
+    name: "Fedora CoreOS"
+    mirror: "https://builds.coreos.fedoraproject.org"
+    base_dir: "prod/streams/testing/builds"
     enabled: true
     menu: "linux"    
     versions:
@@ -118,6 +121,8 @@ releases:
       - name: "Beta Channel"
         code_name: "beta"
       - name: "Alpha Channel"
+        code_name: "alpha"
+      - name: "Edge Channel"
         code_name: "edge"
   freebsd:
     name: "FreeBSD"
@@ -141,7 +146,7 @@ releases:
   freedos:
     name: "FreeDOS"
     mirror: "http://www.freedos.org"
-    base_dir: "/download/download/"
+    base_dir: "download/download"
     enabled: true
     menu: "dos"
     versions:
@@ -163,7 +168,7 @@ releases:
     versions:
       - name: "2.21 Core 126"
         code_name: "2.21-core126"
-  kail:
+  kali:
     name: "Kali Linux"
     mirror: "http://http.kali.org"
     base_dir: "kali"
@@ -244,19 +249,19 @@ releases:
     enabled: true
     menu: "bsd"
     versions:
-      - name: "OpenBSD 6.6"
+      - name: "6.6"
         code_name: "6.6"
         image_ver: "66"
-      - name: "OpenBSD 6.5"
+      - name: "6.5"
         code_name: "6.5"
         image_ver: "65"
-      - name: "OpenBSD 6.4"
+      - name: "6.4"
         code_name: "6.4"
         image_ver: "64"
-      - name: "OpenBSD 6.3"
+      - name: "6.3"
         code_name: "6.3"
         image_ver: "63"
-      - name: "OpenBSD 6.6 Latest Snapshot"
+      - name: "6.6 Latest Snapshot"
         code_name: "snapshots"
         image_ver: "66"
   opensuse:

BIN
roles/netbootxyz/files/memdisk


BIN
roles/netbootxyz/files/wimboot


+ 8 - 0
roles/netbootxyz/tasks/generate_disks.yml

@@ -95,6 +95,14 @@
     - ipxe.kpxe
     - undionly.kpxe
 
+  - name: Copy helper apps
+    copy:
+      src: "{{ item }}"
+      dest: "{{ netbootxyz_root }}"
+    with_items:
+      - memdisk
+      - wimboot
+
   - name: Copy netboot.xyz general.h.efi iPXE config
     file:
       src: /usr/src/netboot.xyz/ipxe/local/general.h.efi

+ 0 - 38
roles/netbootxyz/templates/disks/ipxe-dhcp.j2

@@ -1,38 +0,0 @@
-#!ipxe
-
-:start
-set version {{ loader_version }}
-echo {{ domain_name }} iPXE loader v${version}
-goto dhcp
-
-:dhcp
-dhcp || goto static
-goto menu
-
-:static
-echo DHCP Server not found, enabling manual override:
-imgfree
-ifclose net0
-echo -n IP: && read net0/ip
-echo -n Subnet mask: && read net0/netmask
-echo -n Gateway: && read net0/gateway
-echo -n DNS: && read dns
-ifopen net0
-echo Attempting chainload of {{ domain_name }}...
-goto menu || goto failsafe
-
-:menu
-chain --autofree http://{{ domain_name }}/menu.ipxe
-goto boot
-
-:failsafe
-echo Attempt to load {{ domain_name }} failed... restarting...
-goto start
-
-:boot
-sanboot --no-describe --drive 0x80
-
-:debug
-echo Type "exit" to return to menu
-shell
-goto start

+ 0 - 34
roles/netbootxyz/templates/disks/ipxe-static.j2

@@ -1,34 +0,0 @@
-#!ipxe
-
-:start
-set version {{ loader_version }}
-echo {{ domain_name }} iPXE loader v${version}
-goto static
-
-:static
-echo Please enter in the networking information of your Server:
-imgfree
-ifclose net0
-echo -n IP: && read net0/ip
-echo -n Subnet mask: && read net0/netmask
-echo -n Gateway: && read net0/gateway
-echo -n DNS: && read dns
-ifopen net0
-echo Attempting chainload of {{ domain_name }}...
-goto menu || goto failsafe
-
-:menu
-chain --autofree http://{{ domain_name }}/menu.ipxe
-goto boot
-
-:failsafe
-echo Attempt to load {{ domain_name }} failed... restarting...
-goto start
-
-:boot
-sanboot --no-describe --drive 0x80
-
-:debug
-echo Type "exit" to return to menu
-shell
-goto start

+ 3 - 43
roles/netbootxyz/templates/menu/boot.ipxe.j2

@@ -2,10 +2,10 @@
 
 :global_vars
 # set site name
-set site_name netboot.xyz
+set site_name {{ site_name }}
 
 # set boot domain
-set boot_domain boot.netboot.xyz
+set boot_domain {{ boot_domain }}
 
 # set location of memdisk
 set memdisk http://${boot_domain}/memdisk
@@ -25,46 +25,6 @@ set ipxe_disk netboot.xyz-undionly.kpxe
 # set location of custom netboot.xyz live assets
 set live_endpoint https://github.com/netbootxyz
 
-##################
-# official mirrors
-##################
-:mirrors
-### Alpine Linux
-set alpinelinux_mirror dl-cdn.alpinelinux.org
-set alpinelinux_base_dir alpine
-
-### ArchLinux
-set archlinux_mirror mirror.rackspace.com
-set archlinux_base_dir archlinux
-
-### CentOS
-set centos_mirror mirror.centos.org
-set centos_base_dir centos
-
-### Devuan
-set devuan_mirror auto.mirror.devuan.org
-set devuan_base_dir devuan
-
-### Fedora
-set fedora_mirror mirrors.kernel.org
-set fedora_base_dir fedora
-
-### Mageia
-set mageia_mirror mirrors.kernel.org
-set mageia_base_dir mageia
-
-### OpenSUSE
-set opensuse_mirror download.opensuse.org
-set opensuse_base_dir distribution/leap
-
-### Slackware
-set slackware_mirror mirror.rackspace.com
-set slackware_base_dir slackware
-
-### Ubuntu
-set ubuntu_mirror archive.ubuntu.com
-set ubuntu_base_dir ubuntu
-
 ##############################
 # netboot-xyz hosted endpoints
 ##############################
@@ -120,7 +80,7 @@ goto clouds_end
 
 :packet_x86_64
 set console console=ttyS1,115200n8
-set ipxe_disk netboot.xyz-packet.kpxe
+iseq ${platform} efi && set ipxe_disk netboot.xyz-packet.efi || set ipxe_disk netboot.xyz-packet.kpxe
 set menu_freedos 0
 set menu_windows 0
 set menu_utils 0

+ 47 - 0
roles/netbootxyz/templates/menu/coreos.ipxe.j2

@@ -0,0 +1,47 @@
+#!ipxe
+
+# Fedora CoreOS (Preview)
+# https://getfedora.org/coreos/
+
+goto ${menu}
+
+:coreos
+set os {{ releases.coreos.name }}
+isset ${install_device} || set install_device sda
+isset ${ignition_url} || set ignition_url skip
+menu ${os}
+item --gap ${os}:
+{% for item in releases.coreos.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 ${menu} menu || goto coreos_exit
+echo ${cls}
+goto ${menu} ||
+goto coreos_exit
+
+:stable
+:beta
+:alpha
+set release ${menu}
+set base_url https://builds.coreos.fedoraproject.org/prod/streams/testing/builds
+set build_version 30.20191014.0
+kernel ${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-installer-kernel nomodeset rd.neednet=1 coreos.inst=yes coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} ${console} coreos.inst.image_url=${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-metal.raw.xz initrd=fedora-coreos-${build_version}-installer-initramfs.img
+initrd ${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-installer-initramfs.img
+boot
+goto coreos_exit
+
+:install_dev
+echo -n Please set desired install device:  && read install_device
+clear menu
+goto coreos
+
+:ignition_config
+echo -n Please set Ignition Configuration URL:  && read ignition_url
+clear menu
+goto coreos
+
+:coreos_exit
+clear menu
+exit 0

+ 45 - 0
roles/netbootxyz/templates/menu/flatcar.ipxe.j2

@@ -0,0 +1,45 @@
+#!ipxe
+
+# Container Linux by flatcar
+# https://www.flatcar.com
+# For further info on:
+# iPXE and flatcar Container Linux: https://docs.flatcar-linux.org/os/booting-with-ipxe/
+# Setting up Ignition: https://docs.flatcar-linux.org/os/provisioning/
+# 64-bit only
+
+goto ${menu}
+
+:flatcar
+set os {{ releases.flatcar.name }}
+menu ${os}
+item --gap ${os}
+{% for item in releases.flatcar.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+item ignition_config ${space} Set flatcar.config.url: ${flatcar.config.url}
+choose --default ${menu} menu || goto flatcar_exit
+echo ${cls}
+goto ${menu} ||
+goto flatcar_exit
+
+:stable
+:beta
+:alpha
+:edge
+set release ${menu}
+set base-url http://${release}.release.flatcar-linux.net/amd64-usr/current
+kernel ${base-url}/flatcar_production_pxe.vmlinuz ${flatcar_firstboot} ${flatcar_params} ${console} flatcar.autologin=tty1 flatcar.autologin=ttyS0 initrd=flatcar_production_pxe_image.cpio.gz
+initrd ${base-url}/flatcar_production_pxe_image.cpio.gz
+boot
+goto flatcar_exit
+
+:ignition_config
+echo -n Please set Ignition URL: && read flatcar.config.url
+set flatcar_params flatcar.config.url=${flatcar.config.url}
+set flatcar_firstboot flatcar.first_boot=1
+clear menu
+goto flatcar
+
+:flatcar_exit
+clear menu
+exit 0

+ 47 - 0
roles/netbootxyz/templates/menu/freebsd.ipxe.j2

@@ -0,0 +1,47 @@
+#!ipxe
+
+# FreeBSD Operating System
+# http://www.freebsd.org
+
+:freebsd_menu
+set os {{ releases.freebsd.name }}
+menu ${os}
+{% for item in releases.freebsd.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+choose ver || goto freebsd_exit
+
+{% for item in releases.freebsd.versions %}
+iseq ${ver} {{ item.code_name }} && set image_ver {{ item.code_name }}-RELEASE ||
+{% endfor %}
+
+iseq ${arch} x86_64 && goto freebsd_x64 ||
+set freebsd_arch i386
+goto boot_freebsd
+
+:freebsd_x64
+set freebsd_arch amd64
+goto boot_freebsd
+
+:boot_freebsd
+{% for item in releases.freebsd.versions %}
+iseq ${ver} {{ item.code_name }} && set image_subdir {{ item.image_subdir }}/${freebsd_arch} ||
+{% endfor %}
+set src https://mfsbsd.vx.sk/files/images/${image_subdir}/mfsbsd-${image_ver}-${freebsd_arch}.img
+imgfree
+echo This loads an mfsbsd installer (http://mfsbsd.vx.sk/).
+echo Root password for all images: mfsroot
+echo You'll need to configure networking manually for the installer disk as
+echo it uses dhcp by default:
+echo ifconfig xn0 inet <public ip> netmask 255.255.255.0
+echo route delete default; route add default <public ip x.x.x.1>
+echo echo "nameserver x.x.x.x" > /etc/resolv.conf
+echo Once network is configured, you can launch the usual installer:
+echo bsdinstall
+initrd ${src}
+chain ${memdisk} harddisk raw
+exit
+
+:freebsd_exit
+clear menu
+exit 0

+ 25 - 0
roles/netbootxyz/templates/menu/freedos.ipxe.j2

@@ -0,0 +1,25 @@
+#!ipxe
+
+# FreeDOS Operating System
+# http://www.freedos.org
+
+:freedos_menu
+set os {{ releases.freedos.name }}
+menu ${os}
+item --gap ${os}
+{% for item in releases.freedos.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+choose freedos_version || goto freedos_exit
+echo ${cls}
+goto freedos_install || goto freedos_exit
+
+:freedos_install
+imgfree
+kernel ${memdisk}
+initrd {{ releases.freedos.mirror }}/{{ releases.freedos.base_dir }}/${freedos_version}.zip
+boot
+
+:freedos_exit
+clear menu
+exit 0

+ 41 - 0
roles/netbootxyz/templates/menu/ipfire.ipxe.j2

@@ -0,0 +1,41 @@
+#!ipxe
+
+# IPFire
+# https://www.ipfire.org/
+
+goto ${menu} ||
+
+:ipfire
+clear osversion
+set os {{ releases.ipfire.name }}
+menu ${os} - Image Sig Checks: [${img_sigs_enabled}]
+{% for item in releases.ipfire.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+isset ${osversion} || choose osversion || goto linux_menu
+echo ${cls}
+set ipfire_mirror {{ releases.ipfire.mirror }}
+set dir releases/ipfire-2.x/${osversion}/images/x86_64
+goto ipfire_images
+
+:ipfire_images
+imgfree
+kernel https://${ipfire_mirror}/${dir}/vmlinuz ${console} vga=791 initrd=instroot
+initrd https://${ipfire_mirror}/${dir}/instroot
+echo
+echo MD5sums:
+md5sum vmlinuz instroot
+iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
+:verify_sigs
+echo
+echo Checking signatures...
+imgverify vmlinuz ${sigs}ipfire/${dir}/vmlinuz.sig || goto error
+imgverify instroot ${sigs}ipfire/${dir}/instroot.sig || goto error
+echo Signatures verified!
+echo
+:skip_sigs
+boot
+
+:ipfire_exit
+clear menu
+exit 0

+ 40 - 0
roles/netbootxyz/templates/menu/kali.ipxe.j2

@@ -0,0 +1,40 @@
+#!ipxe
+
+# Kali Linux
+# http://www.kali.org
+
+goto ${menu} ||
+
+:kali
+set os {{ releases.kali.name }}
+menu ${os} - ${arch_a}
+{% for item in releases.kali.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+choose version || goto kali_exit
+
+:deb_boot_type
+set dir kali/dists/kali-${version}/main/installer-${arch_a}/current/images/netboot
+menu ${os} boot parameters
+item text ${os} text based install
+choose --default ${type} type || goto kali
+
+echo ${cls}
+goto deb_${type}
+
+:deb_text
+set dir ${dir}/debian-installer/${arch_a}
+goto deb_boot
+
+:deb_boot
+imgfree
+kernel http://http.kali.org/${dir}/linux vga=788 ${console} -- quiet initrd=initrd.gz
+initrd http://http.kali.org/${dir}/initrd.gz
+echo
+echo MD5sums:
+md5sum linux initrd.gz
+boot
+
+:kali_exit
+clear menu
+exit 0

+ 3 - 3
roles/netbootxyz/templates/menu/menu.ipxe.j2

@@ -12,12 +12,12 @@ set latest_version 1.04
 echo ${cls}
 iseq ${version} ${latest_version} && goto version_up2date ||
 echo
-echo Updated version of netboot.xyz is available:
+echo Updated version of {{ site_name }} is available:
 echo
 echo Running version.....${version}
 echo Updated version.....${latest_version}
 echo
-echo Please download the latest version from netboot.xyz.
+echo Please download the latest version from {{ site_name }}.
 echo
 echo Attempting to chain to latest version...
 chain --autofree http://${boot_domain}/ipxe/${ipxe_disk} ||
@@ -40,8 +40,8 @@ menu ${site_name}
 item --gap Default:
 item local ${space} Boot from local hdd
 item --gap Distributions:
-iseq ${menu_live} 1 && item live ${space} Live CDs ||
 iseq ${menu_linux} 1 && item linux ${space} Linux Network Installs ||
+iseq ${menu_live} 1 && item live ${space} Live CDs ||
 iseq ${menu_bsd} 1 && item bsd ${space} BSD Installs ||
 iseq ${menu_freedos} 1 && item freedos ${space} FreeDOS || 
 iseq ${menu_security} 1 && item security ${space} Security Related ||

+ 21 - 0
roles/netbootxyz/templates/menu/nixos.ipxe.j2

@@ -0,0 +1,21 @@
+#!ipxe
+
+# NixOS
+# https://nixos.org/
+
+set os {{ releases.nixos.name }}
+menu ${os}
+item --gap Official Releases
+{% for item in releases.nixos.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+choose version || goto nixos_exit
+{% for item in releases.nixos.versions %}
+iseq ${version} {{ item.code_name }} && set link https://hydra.nixos.org/job/nixos/release-{{ item.code_name }}/nixos.netboot.x86_64-linux/latest-finished/download/netboot.ipxe ||
+{% endfor %}
+chain ${link}
+goto nixos_exit
+
+:nixos_exit
+clear menu
+exit 0

+ 3 - 2
roles/netbootxyz/templates/menu/openbsd.ipxe.j2

@@ -4,9 +4,10 @@
 # http://www.openbsd.org
 
 :openbsd_menu
-menu {{ releases.openbsd.name }}
+set os {{ releases.openbsd.name }}
+menu ${os}
 {% for item in releases.openbsd.versions %}
-item {{ item.code_name }} ${space} {{ item.name }}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
 {% endfor %}
 choose ver || goto openbsd_exit
 {% for item in releases.openbsd.versions %}

+ 31 - 0
roles/netbootxyz/templates/menu/rancheros.ipxe.j2

@@ -0,0 +1,31 @@
+#!ipxe
+
+# RancherOS
+# http://rancher.com/rancher-os/
+
+:rancheros_menu
+set os {{ releases.rancheros.name }}
+set url {{ releases.rancheros.mirror }}
+menu ${os}
+{% for item in releases.rancheros.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+choose version || goto rancheros_exit
+goto ${version}
+
+:latest
+echo ${cls}
+set folder {{ releases.rancheros.base_dir }}
+goto boot
+
+:boot
+echo Login in with username: rancher, password: rancher
+echo To install: ros install -d /dev/sda1
+imgfree
+kernel http://${url}/${folder}/vmlinuz rancher.state.autoformat=[/dev/sda] rancher.password=rancher initrd=initrd
+initrd http://${url}/${folder}/initrd
+boot
+
+:rancheros_exit
+clear menu
+exit 0

+ 8 - 2
user_overrides.yml

@@ -4,8 +4,14 @@
 generate_menus: true
 generate_disks: false
 
-# set desired boot domain 
-boot_domain: boot.mydomain.com
+# set desired site name
+#site_name: mysitename.com
+
+# set desired boot domain
+#boot_domain: boot.mysitename.com
+
+# set boot version
+#boot_version: 1.00
 
 # set overrides from standard netboot.xyz defaults
 release_overrides: