mirror of
https://github.com/netbootxyz/netboot.xyz.git
synced 2025-08-10 15:56:58 +02:00
Adding more changes
This commit is contained in:
parent
3cf7f27ed9
commit
fe57e98664
@ -1,17 +1,27 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
### site configuration ###
|
||||||
site_name: netboot.xyz
|
site_name: netboot.xyz
|
||||||
boot_domain: boot.netboot.xyz
|
boot_domain: boot.netboot.xyz
|
||||||
boot_version: 1.04
|
boot_version: 1.04
|
||||||
|
|
||||||
|
sigs_enabled: false
|
||||||
|
img_sigs_enabled: false
|
||||||
|
sigs_location: "http://${boot_domain}/sigs/"
|
||||||
|
memdisk_location: "http://${boot_domain}/memdisk"
|
||||||
|
|
||||||
ipxe_repo: https://github.com/ipxe/ipxe.git
|
ipxe_repo: https://github.com/ipxe/ipxe.git
|
||||||
ipxe_branch: master
|
ipxe_branch: master
|
||||||
ipxe_source_dir: /usr/src/ipxe
|
ipxe_source_dir: /usr/src/ipxe
|
||||||
|
|
||||||
netbootxyz_repo: https://github.com/netbootxyz/netboot.xyz.git
|
live_endpoint: "https://github.com/netbootxyz"
|
||||||
netbootxyz_branch: master
|
|
||||||
netbootxyz_root: /var/www/html
|
netbootxyz_root: /var/www/html
|
||||||
|
|
||||||
|
bootloader_tftp_enabled: false
|
||||||
|
bootloader_https_enabled: true
|
||||||
|
bootloader_http_enabled: true
|
||||||
|
|
||||||
|
### release values ###
|
||||||
releases:
|
releases:
|
||||||
alpinelinux:
|
alpinelinux:
|
||||||
name: "Alpine Linux"
|
name: "Alpine Linux"
|
||||||
@ -126,6 +136,7 @@ releases:
|
|||||||
code_name: "edge"
|
code_name: "edge"
|
||||||
freebsd:
|
freebsd:
|
||||||
name: "FreeBSD"
|
name: "FreeBSD"
|
||||||
|
enabled: false
|
||||||
menu: "bsd"
|
menu: "bsd"
|
||||||
versions:
|
versions:
|
||||||
- name: "FreeBSD 12.0"
|
- name: "FreeBSD 12.0"
|
||||||
@ -157,14 +168,16 @@ releases:
|
|||||||
gentoo:
|
gentoo:
|
||||||
name: "Gentoo"
|
name: "Gentoo"
|
||||||
mirror: ""
|
mirror: ""
|
||||||
|
enabled: false
|
||||||
menu: "linux"
|
menu: "linux"
|
||||||
versions:
|
versions:
|
||||||
- name: "TBA"
|
- name: "Minimal CD 20160204 (amd64)"
|
||||||
code_name: "TBA"
|
code_name: "20160204"
|
||||||
ipfire:
|
ipfire:
|
||||||
name: "IPFire"
|
name: "IPFire"
|
||||||
mirror: "downloads.ipfire.org"
|
mirror: "downloads.ipfire.org"
|
||||||
menu: "linux"
|
menu: "linux"
|
||||||
|
enabled: true
|
||||||
versions:
|
versions:
|
||||||
- name: "2.21 Core 126"
|
- name: "2.21 Core 126"
|
||||||
code_name: "2.21-core126"
|
code_name: "2.21-core126"
|
||||||
@ -301,6 +314,7 @@ releases:
|
|||||||
name: "Scientific Linux"
|
name: "Scientific Linux"
|
||||||
mirror: "ftp1.scientificlinux.org"
|
mirror: "ftp1.scientificlinux.org"
|
||||||
base_dir: ""
|
base_dir: ""
|
||||||
|
enabled: true
|
||||||
menu: "linux"
|
menu: "linux"
|
||||||
versions:
|
versions:
|
||||||
- name: "7.7"
|
- name: "7.7"
|
||||||
@ -315,6 +329,7 @@ releases:
|
|||||||
name: "Slackware"
|
name: "Slackware"
|
||||||
mirror: "mirror.rackspace.com"
|
mirror: "mirror.rackspace.com"
|
||||||
base_dir: "slackware"
|
base_dir: "slackware"
|
||||||
|
enabled: true
|
||||||
menu: "linux"
|
menu: "linux"
|
||||||
versions:
|
versions:
|
||||||
- name: "Current"
|
- name: "Current"
|
||||||
@ -326,6 +341,7 @@ releases:
|
|||||||
tinycore:
|
tinycore:
|
||||||
name: "Tiny Core Linux"
|
name: "Tiny Core Linux"
|
||||||
mirror: "tinycorelinux.net"
|
mirror: "tinycorelinux.net"
|
||||||
|
enabled: true
|
||||||
menu: "linux"
|
menu: "linux"
|
||||||
versions:
|
versions:
|
||||||
- name: "Core [ISO]"
|
- name: "Core [ISO]"
|
||||||
|
67
roles/netbootxyz/files/ipxe/disks/netboot.xyz
Normal file
67
roles/netbootxyz/files/ipxe/disks/netboot.xyz
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#!ipxe
|
||||||
|
set esc:hex 1b
|
||||||
|
set bold ${esc:string}[1m
|
||||||
|
set boldoff ${esc:string}[22m
|
||||||
|
set fg_gre ${esc:string}[32m
|
||||||
|
set fg_cya ${esc:string}[36m
|
||||||
|
set fg_whi ${esc:string}[37m
|
||||||
|
set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
|
||||||
|
set HTTP_ERR HTTP has failed, localbooting...
|
||||||
|
set version 1.04
|
||||||
|
|
||||||
|
:start
|
||||||
|
echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version}${boldoff}
|
||||||
|
prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp
|
||||||
|
|
||||||
|
:dhcp
|
||||||
|
echo
|
||||||
|
dhcp || goto netconfig
|
||||||
|
goto menu
|
||||||
|
|
||||||
|
:failsafe
|
||||||
|
menu netboot.xyz Failsafe Menu
|
||||||
|
item localboot Boot to local drive
|
||||||
|
item netconfig Manual network configuration
|
||||||
|
item retry Retry boot
|
||||||
|
item debug iPXE Debug Shell
|
||||||
|
item reboot Reboot System
|
||||||
|
choose failsafe_choice || exit
|
||||||
|
goto ${failsafe_choice}
|
||||||
|
|
||||||
|
:netconfig
|
||||||
|
echo Network Configuration:
|
||||||
|
echo Available interfaces...
|
||||||
|
ifstat
|
||||||
|
imgfree
|
||||||
|
echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
|
||||||
|
isset ${net} || set net 0
|
||||||
|
echo -n IP: && read net${net}/ip
|
||||||
|
echo -n Subnet mask: && read net${net}/netmask
|
||||||
|
echo -n Gateway: && read net${net}/gateway
|
||||||
|
echo -n DNS: && read dns
|
||||||
|
ifopen net${net}
|
||||||
|
echo Attempting chainload of netboot.xyz...
|
||||||
|
goto menu || goto failsafe
|
||||||
|
|
||||||
|
:menu
|
||||||
|
set conn_type https
|
||||||
|
chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}
|
||||||
|
sleep 5
|
||||||
|
set conn_type http
|
||||||
|
chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR}
|
||||||
|
goto localboot
|
||||||
|
|
||||||
|
:localboot
|
||||||
|
exit
|
||||||
|
|
||||||
|
:retry
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:reboot
|
||||||
|
reboot
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:debug
|
||||||
|
echo Type "exit" to return to menu
|
||||||
|
shell
|
||||||
|
goto failsafe
|
68
roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce
Normal file
68
roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#!ipxe
|
||||||
|
set esc:hex 1b
|
||||||
|
set bold ${esc:string}[1m
|
||||||
|
set boldoff ${esc:string}[22m
|
||||||
|
set fg_gre ${esc:string}[32m
|
||||||
|
set fg_cya ${esc:string}[36m
|
||||||
|
set fg_whi ${esc:string}[37m
|
||||||
|
set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
|
||||||
|
set HTTP_ERR HTTP has failed, localbooting...
|
||||||
|
set version 1.04
|
||||||
|
set ipxe_cloud_config gce
|
||||||
|
|
||||||
|
:start
|
||||||
|
echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version} for ${fg_cya}Google Compute Engine${boldoff}
|
||||||
|
prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp
|
||||||
|
|
||||||
|
:dhcp
|
||||||
|
echo
|
||||||
|
dhcp || goto netconfig
|
||||||
|
goto menu
|
||||||
|
|
||||||
|
:failsafe
|
||||||
|
menu netboot.xyz Failsafe Menu
|
||||||
|
item localboot Boot to local drive
|
||||||
|
item netconfig Manual network configuration
|
||||||
|
item retry Retry boot
|
||||||
|
item debug iPXE Debug Shell
|
||||||
|
item reboot Reboot System
|
||||||
|
choose failsafe_choice || exit
|
||||||
|
goto ${failsafe_choice}
|
||||||
|
|
||||||
|
:netconfig
|
||||||
|
echo Network Configuration:
|
||||||
|
echo Available interfaces...
|
||||||
|
ifstat
|
||||||
|
imgfree
|
||||||
|
echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
|
||||||
|
isset ${net} || set net 0
|
||||||
|
echo -n IP: && read net${net}/ip
|
||||||
|
echo -n Subnet mask: && read net${net}/netmask
|
||||||
|
echo -n Gateway: && read net${net}/gateway
|
||||||
|
echo -n DNS: && read dns
|
||||||
|
ifopen net${net}
|
||||||
|
echo Attempting chainload of netboot.xyz...
|
||||||
|
goto menu || goto failsafe
|
||||||
|
|
||||||
|
:menu
|
||||||
|
set conn_type https
|
||||||
|
chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}
|
||||||
|
sleep 5
|
||||||
|
set conn_type http
|
||||||
|
chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR}
|
||||||
|
goto localboot
|
||||||
|
|
||||||
|
:localboot
|
||||||
|
exit
|
||||||
|
|
||||||
|
:retry
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:reboot
|
||||||
|
reboot
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:debug
|
||||||
|
echo Type "exit" to return to menu
|
||||||
|
shell
|
||||||
|
goto failsafe
|
69
roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet
Normal file
69
roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
#!ipxe
|
||||||
|
set esc:hex 1b
|
||||||
|
set bold ${esc:string}[1m
|
||||||
|
set boldoff ${esc:string}[22m
|
||||||
|
set fg_gre ${esc:string}[32m
|
||||||
|
set fg_red ${esc:string}[31m
|
||||||
|
set fg_cya ${esc:string}[36m
|
||||||
|
set fg_whi ${esc:string}[37m
|
||||||
|
set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
|
||||||
|
set HTTP_ERR HTTP has failed, localbooting...
|
||||||
|
set version 1.04
|
||||||
|
set ipxe_cloud_config packet
|
||||||
|
|
||||||
|
:start
|
||||||
|
echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version} for ${fg_red}packet.com${fg_whi}${boldoff}
|
||||||
|
prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp
|
||||||
|
|
||||||
|
:dhcp
|
||||||
|
echo
|
||||||
|
dhcp || goto netconfig
|
||||||
|
goto menu
|
||||||
|
|
||||||
|
:failsafe
|
||||||
|
menu netboot.xyz Failsafe Menu
|
||||||
|
item localboot Boot to local drive
|
||||||
|
item netconfig Manual network configuration
|
||||||
|
item retry Retry boot
|
||||||
|
item debug iPXE Debug Shell
|
||||||
|
item reboot Reboot System
|
||||||
|
choose failsafe_choice || exit
|
||||||
|
goto ${failsafe_choice}
|
||||||
|
|
||||||
|
:netconfig
|
||||||
|
echo Network Configuration:
|
||||||
|
echo Available interfaces...
|
||||||
|
ifstat
|
||||||
|
imgfree
|
||||||
|
echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
|
||||||
|
isset ${net} || set net 0
|
||||||
|
echo -n IP: && read net${net}/ip
|
||||||
|
echo -n Subnet mask: && read net${net}/netmask
|
||||||
|
echo -n Gateway: && read net${net}/gateway
|
||||||
|
echo -n DNS: && read dns
|
||||||
|
ifopen net${net}
|
||||||
|
echo Attempting chainload of netboot.xyz...
|
||||||
|
goto menu || goto failsafe
|
||||||
|
|
||||||
|
:menu
|
||||||
|
set conn_type https
|
||||||
|
chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}
|
||||||
|
sleep 5
|
||||||
|
set conn_type http
|
||||||
|
chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR}
|
||||||
|
goto localboot
|
||||||
|
|
||||||
|
:localboot
|
||||||
|
exit
|
||||||
|
|
||||||
|
:retry
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:reboot
|
||||||
|
reboot
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:debug
|
||||||
|
echo Type "exit" to return to menu
|
||||||
|
shell
|
||||||
|
goto failsafe
|
28
roles/netbootxyz/files/ipxe/local/colour.h
Normal file
28
roles/netbootxyz/files/ipxe/local/colour.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#undef COLOR_NORMAL_FG
|
||||||
|
#undef COLOR_NORMAL_BG
|
||||||
|
#undef COLOR_SELECT_FG
|
||||||
|
#undef COLOR_SELECT_BG
|
||||||
|
#undef COLOR_SEPARATOR_FG
|
||||||
|
#undef COLOR_SEPARATOR_BG
|
||||||
|
#undef COLOR_EDIT_FG
|
||||||
|
#undef COLOR_EDIT_BG
|
||||||
|
#undef COLOR_ALERT_FG
|
||||||
|
#undef COLOR_ALERT_BG
|
||||||
|
#undef COLOR_URL_FG
|
||||||
|
#undef COLOR_URL_BG
|
||||||
|
#undef COLOR_PXE_FG
|
||||||
|
#undef COLOR_PXE_BG
|
||||||
|
#define COLOR_NORMAL_FG COLOR_CYAN
|
||||||
|
#define COLOR_NORMAL_BG COLOR_BLACK
|
||||||
|
#define COLOR_SELECT_FG COLOR_WHITE
|
||||||
|
#define COLOR_SELECT_BG COLOR_BLUE
|
||||||
|
#define COLOR_SEPARATOR_FG COLOR_WHITE
|
||||||
|
#define COLOR_SEPARATOR_BG COLOR_BLACK
|
||||||
|
#define COLOR_EDIT_FG COLOR_BLACK
|
||||||
|
#define COLOR_EDIT_BG COLOR_CYAN
|
||||||
|
#define COLOR_ALERT_FG COLOR_WHITE
|
||||||
|
#define COLOR_ALERT_BG COLOR_RED
|
||||||
|
#define COLOR_URL_FG COLOR_CYAN
|
||||||
|
#define COLOR_URL_BG COLOR_BLUE
|
||||||
|
#define COLOR_PXE_FG COLOR_BLACK
|
||||||
|
#define COLOR_PXE_BG COLOR_WHITE
|
1
roles/netbootxyz/files/ipxe/local/crypto.h
Normal file
1
roles/netbootxyz/files/ipxe/local/crypto.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#undef OCSP_CHECK
|
11
roles/netbootxyz/files/ipxe/local/general.h
Normal file
11
roles/netbootxyz/files/ipxe/local/general.h
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#define DIGEST_CMD /* Image crypto digest commands */
|
||||||
|
#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
|
||||||
|
#define IMAGE_COMBOOT /* COMBOOT */
|
||||||
|
#define IMAGE_TRUST_CMD /* Image trust management commands */
|
||||||
|
#define NET_PROTO_IPV6 /* IPv6 protocol */
|
||||||
|
#define NSLOOKUP_CMD /* DNS resolving command */
|
||||||
|
#define NTP_CMD /* NTP commands */
|
||||||
|
#define PCI_CMD /* PCI commands */
|
||||||
|
#define REBOOT_CMD /* Reboot command */
|
||||||
|
#define TIME_CMD /* Time commands */
|
||||||
|
#define VLAN_CMD /* VLAN commands */
|
10
roles/netbootxyz/files/ipxe/local/general.h.efi
Normal file
10
roles/netbootxyz/files/ipxe/local/general.h.efi
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#define DIGEST_CMD /* Image crypto digest commands */
|
||||||
|
#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
|
||||||
|
#define IMAGE_TRUST_CMD /* Image trust management commands */
|
||||||
|
#define NET_PROTO_IPV6 /* IPv6 protocol */
|
||||||
|
#define NSLOOKUP_CMD /* DNS resolving command */
|
||||||
|
#define NTP_CMD /* NTP commands */
|
||||||
|
#define PCI_CMD /* PCI commands */
|
||||||
|
#define REBOOT_CMD /* Reboot command */
|
||||||
|
#define TIME_CMD /* Time commands */
|
||||||
|
#define VLAN_CMD /* VLAN commands */
|
4
roles/netbootxyz/files/ipxe/local/nap.h.efi
Normal file
4
roles/netbootxyz/files/ipxe/local/nap.h.efi
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/* nap.h */
|
||||||
|
#undef NAP_EFIX86
|
||||||
|
#undef NAP_EFIARM
|
||||||
|
#define NAP_NULL
|
2
roles/netbootxyz/files/ipxe/local/usb.h.efi
Normal file
2
roles/netbootxyz/files/ipxe/local/usb.h.efi
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/* usb.h */
|
||||||
|
#define USB_EFI
|
@ -1,136 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: Adds python packages if python is not present
|
|
||||||
raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal python-yaml)
|
|
||||||
|
|
||||||
- name: Gathering facts
|
- include: generate_disks_base.yml
|
||||||
setup:
|
|
||||||
|
|
||||||
- name: Gather variables for each operating system
|
- include: generate_disks_legacy.yml
|
||||||
include_vars: "{{ item }}"
|
when:
|
||||||
with_first_found:
|
- generate_disks_legacy | default(true) | bool
|
||||||
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
|
||||||
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
|
||||||
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
|
||||||
- "{{ ansible_distribution | lower }}.yml"
|
|
||||||
- "{{ ansible_os_family | lower }}.yml"
|
|
||||||
|
|
||||||
- name: Install required packages
|
- include: generate_disks_efi.yml
|
||||||
package:
|
when:
|
||||||
name: "{{ item }}"
|
- generate_disks_efi | default(true) | bool
|
||||||
state: latest
|
|
||||||
with_items: "{{ netbootxyz_packages }}"
|
|
||||||
|
|
||||||
- name: Check out latest iPXE sources
|
|
||||||
git:
|
|
||||||
repo: "{{ ipxe_repo }}"
|
|
||||||
dest: /usr/src/ipxe
|
|
||||||
version: "{{ ipxe_branch }}"
|
|
||||||
|
|
||||||
- name: Check out latest netboot.xyz sources
|
|
||||||
git:
|
|
||||||
repo: "{{ netbootxyz_repo }}"
|
|
||||||
dest: /usr/src/netboot.xyz
|
|
||||||
version: "{{ netbootxyz_branch }}"
|
|
||||||
|
|
||||||
- name: Copy iPXE Bootloader template to iPXE source directory
|
|
||||||
template:
|
|
||||||
src: disks/ipxe-bootloader.j2
|
|
||||||
dest: /usr/src/ipxe/src/ipxe-bootloader
|
|
||||||
|
|
||||||
- name: Copy netboot.xyz colour.h iPXE config
|
|
||||||
file:
|
|
||||||
src: /usr/src/netboot.xyz/ipxe/local/colour.h
|
|
||||||
dest: /usr/src/ipxe/src/config/local/colour.h
|
|
||||||
state: link
|
|
||||||
|
|
||||||
- name: Copy netboot.xyz general.h iPXE config
|
|
||||||
file:
|
|
||||||
src: /usr/src/netboot.xyz/ipxe/local/general.h
|
|
||||||
dest: /usr/src/ipxe/src/config/local/general.h
|
|
||||||
state: link
|
|
||||||
|
|
||||||
- name: Touch iPXE config local files
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: touch
|
|
||||||
with_items:
|
|
||||||
- /usr/src/ipxe/src/config/local/console.h
|
|
||||||
- /usr/src/ipxe/src/config/local/umalloc.h
|
|
||||||
- /usr/src/ipxe/src/config/local/nap.h
|
|
||||||
- /usr/src/ipxe/src/config/local/timer.h
|
|
||||||
- /usr/src/ipxe/src/config/local/branding.h
|
|
||||||
- /usr/src/ipxe/src/config/local/serial.h
|
|
||||||
- /usr/src/ipxe/src/config/local/reboot.h
|
|
||||||
- /usr/src/ipxe/src/config/local/sanboot.h
|
|
||||||
- /usr/src/ipxe/src/config/local/fault.h
|
|
||||||
- /usr/src/ipxe/src/config/local/dhcp.h
|
|
||||||
- /usr/src/ipxe/src/config/local/sideband.h
|
|
||||||
- /usr/src/ipxe/src/config/local/entropy.h
|
|
||||||
- /usr/src/ipxe/src/config/local/crypto.h
|
|
||||||
- /usr/src/ipxe/src/config/local/usb.h
|
|
||||||
- /usr/src/ipxe/src/config/local/settings.h
|
|
||||||
|
|
||||||
- name: Create iPXE file directory
|
|
||||||
file:
|
|
||||||
path: /var/www/html/ipxe
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Compile iPXE bootloader for Legacy BIOS
|
|
||||||
shell: "{{ item }}"
|
|
||||||
with_items:
|
|
||||||
- make EMBED=ipxe-bootloader bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe
|
|
||||||
args:
|
|
||||||
chdir: /usr/src/ipxe/src
|
|
||||||
|
|
||||||
- name: Copy iPXE files for Legacy BIOS to http directory
|
|
||||||
copy:
|
|
||||||
src: /usr/src/ipxe/src/bin/{{ item }}
|
|
||||||
dest: /var/www/html/ipxe/{{ boot_domain }}-{{ item }}
|
|
||||||
remote_src: True
|
|
||||||
with_items:
|
|
||||||
- ipxe.dsk
|
|
||||||
- ipxe.iso
|
|
||||||
- ipxe.lkrn
|
|
||||||
- ipxe.usb
|
|
||||||
- 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
|
|
||||||
dest: /usr/src/ipxe/src/config/local/general.h
|
|
||||||
state: link
|
|
||||||
|
|
||||||
- name: Compile iPXE bootloader for EFI
|
|
||||||
shell: "{{ item }}"
|
|
||||||
with_items:
|
|
||||||
- make clean
|
|
||||||
- make EMBED=ipxe-bootloader bin-x86_64-efi/ipxe.efi
|
|
||||||
args:
|
|
||||||
chdir: /usr/src/ipxe/src
|
|
||||||
|
|
||||||
- name: Generate iPXE EFI ISO Disk
|
|
||||||
shell: "{{ item }}"
|
|
||||||
with_items:
|
|
||||||
- mkdir -p efi_tmp/EFI/BOOT/
|
|
||||||
- cp bin-x86_64-efi/ipxe.efi efi_tmp/EFI/BOOT/bootx64.efi
|
|
||||||
- genisoimage -o ipxe-efi.iso efi_tmp
|
|
||||||
args:
|
|
||||||
chdir: /usr/src/ipxe/src
|
|
||||||
|
|
||||||
- name: Copy iPXE EFI builds to http directory
|
|
||||||
copy:
|
|
||||||
src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
|
|
||||||
dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
|
|
||||||
remote_src: True
|
|
||||||
with_items:
|
|
||||||
- { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ boot_domain }}-ipxe.efi" }
|
|
||||||
- { src: "ipxe-efi.iso", dest: "{{ boot_domain }}-ipxe-efi.iso" }
|
|
||||||
|
0
roles/netbootxyz/tasks/generate_disks_arm.yml
Normal file
0
roles/netbootxyz/tasks/generate_disks_arm.yml
Normal file
66
roles/netbootxyz/tasks/generate_disks_base.yml
Normal file
66
roles/netbootxyz/tasks/generate_disks_base.yml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Gathering facts
|
||||||
|
setup:
|
||||||
|
|
||||||
|
- name: Gather variables for each operating system
|
||||||
|
include_vars: "{{ item }}"
|
||||||
|
with_first_found:
|
||||||
|
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
||||||
|
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
||||||
|
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
||||||
|
- "{{ ansible_distribution | lower }}.yml"
|
||||||
|
- "{{ ansible_os_family | lower }}.yml"
|
||||||
|
|
||||||
|
- name: Create iPXE file directories
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
with_items:
|
||||||
|
- "{{ netbootxyz_root }}/ipxe"
|
||||||
|
|
||||||
|
- name: Copy helper apps
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "{{ netbootxyz_root }}"
|
||||||
|
with_items:
|
||||||
|
- memdisk
|
||||||
|
- wimboot
|
||||||
|
|
||||||
|
- name: Install required packages
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: latest
|
||||||
|
with_items: "{{ netbootxyz_packages }}"
|
||||||
|
|
||||||
|
- name: Check out latest iPXE sources
|
||||||
|
git:
|
||||||
|
repo: "{{ ipxe_repo }}"
|
||||||
|
dest: "{{ ipxe_source_dir }}"
|
||||||
|
version: "{{ ipxe_branch }}"
|
||||||
|
|
||||||
|
- name: Copy iPXE Bootloader template to iPXE source directory
|
||||||
|
template:
|
||||||
|
src: disks/ipxe-bootloader.j2
|
||||||
|
dest: "{{ ipxe_source_dir }}/src/ipxe-bootloader"
|
||||||
|
|
||||||
|
- name: Touch iPXE config local files
|
||||||
|
file:
|
||||||
|
path: "{{ ipxe_source_dir }}/{{ item }}"
|
||||||
|
state: touch
|
||||||
|
with_items:
|
||||||
|
- src/config/local/console.h
|
||||||
|
- src/config/local/umalloc.h
|
||||||
|
- src/config/local/nap.h
|
||||||
|
- src/config/local/timer.h
|
||||||
|
- src/config/local/branding.h
|
||||||
|
- src/config/local/serial.h
|
||||||
|
- src/config/local/reboot.h
|
||||||
|
- src/config/local/sanboot.h
|
||||||
|
- src/config/local/fault.h
|
||||||
|
- src/config/local/dhcp.h
|
||||||
|
- src/config/local/sideband.h
|
||||||
|
- src/config/local/entropy.h
|
||||||
|
- src/config/local/crypto.h
|
||||||
|
- src/config/local/usb.h
|
||||||
|
- src/config/local/settings.h
|
44
roles/netbootxyz/tasks/generate_disks_efi.yml
Normal file
44
roles/netbootxyz/tasks/generate_disks_efi.yml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Copy netboot.xyz local EFI iPXE configs
|
||||||
|
copy:
|
||||||
|
src: "ipxe/local/{{ item }}"
|
||||||
|
dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- colour.h
|
||||||
|
- crypto.h
|
||||||
|
|
||||||
|
- name: Copy netboot.xyz general.h.efi iPXE config
|
||||||
|
copy:
|
||||||
|
src: "ipxe/local/general.h.efi"
|
||||||
|
dest: "{{ ipxe_source_dir }}/src/config/local/general.h"
|
||||||
|
|
||||||
|
- name: Compile iPXE bootloader for EFI
|
||||||
|
shell: "{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- make clean
|
||||||
|
- make EMBED=ipxe-bootloader bin-x86_64-efi/ipxe.efi
|
||||||
|
args:
|
||||||
|
chdir: "{{ ipxe_source_dir }}/src"
|
||||||
|
|
||||||
|
- name: Generate iPXE EFI ISO Disk
|
||||||
|
shell: "{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- mkdir -p efi_tmp
|
||||||
|
- dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
|
||||||
|
- mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
|
||||||
|
- mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
|
||||||
|
- mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
|
||||||
|
- genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -e ipxe.img -no-emul-boot efi_tmp
|
||||||
|
args:
|
||||||
|
chdir: "{{ ipxe_source_dir }}/src"
|
||||||
|
warn: false
|
||||||
|
|
||||||
|
- name: Copy iPXE EFI builds to http directory
|
||||||
|
copy:
|
||||||
|
src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
|
||||||
|
dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
|
||||||
|
remote_src: True
|
||||||
|
with_items:
|
||||||
|
- { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ site_name }}.efi" }
|
||||||
|
- { src: "ipxe-efi.eiso", dest: "{{ site_name }}-efi.iso" }
|
36
roles/netbootxyz/tasks/generate_disks_legacy.yml
Normal file
36
roles/netbootxyz/tasks/generate_disks_legacy.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Copy netboot.xyz local legacy iPXE configs
|
||||||
|
copy:
|
||||||
|
src: "ipxe/local/{{ item }}"
|
||||||
|
dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- colour.h
|
||||||
|
- crypto.h
|
||||||
|
- general.h
|
||||||
|
|
||||||
|
- name: Compile iPXE bootloader for Legacy BIOS
|
||||||
|
shell: "{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- make clean
|
||||||
|
- make EMBED=ipxe-bootloader bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe
|
||||||
|
args:
|
||||||
|
chdir: "{{ ipxe_source_dir }}/src"
|
||||||
|
|
||||||
|
- name: Copy iPXE files for Legacy BIOS to http directory
|
||||||
|
copy:
|
||||||
|
src: "{{ ipxe_source_dir }}/src/bin/ipxe{{ item }}"
|
||||||
|
dest: "{{ netbootxyz_root }}/ipxe/{{ site_name }}{{ item }}"
|
||||||
|
remote_src: True
|
||||||
|
with_items:
|
||||||
|
- ".dsk"
|
||||||
|
- ".iso"
|
||||||
|
- ".lkrn"
|
||||||
|
- ".usb"
|
||||||
|
- ".kpxe"
|
||||||
|
|
||||||
|
- name: Copy undionly.kpxe for Legacy BIOS to http directory
|
||||||
|
copy:
|
||||||
|
src: "{{ ipxe_source_dir }}/src/bin/undionly.kpxe"
|
||||||
|
dest: "{{ netbootxyz_root }}/ipxe/{{ site_name }}-undionly.kpxe"
|
||||||
|
remote_src: True
|
@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: Combine overrides with defaults
|
- name: Combine overrides with defaults
|
||||||
set_fact:
|
set_fact:
|
||||||
_my_releases: "{{ releases|combine(release_overrides, recursive=True) }}"
|
_releases: "{{ releases|combine(release_overrides, recursive=True) }}"
|
||||||
|
|
||||||
- name: Set releases with user overrides
|
- name: Set releases with user overrides
|
||||||
set_fact:
|
set_fact:
|
||||||
releases: "{{ _my_releases }}"
|
releases: "{{ _releases }}"
|
||||||
|
|
||||||
- name: Generate directories
|
- name: Generate directories
|
||||||
file:
|
file:
|
||||||
@ -16,6 +16,10 @@
|
|||||||
debug:
|
debug:
|
||||||
var: releases
|
var: releases
|
||||||
|
|
||||||
|
- name: Dump endpoint vars for debugging
|
||||||
|
debug:
|
||||||
|
var: endpoints
|
||||||
|
|
||||||
- name: Generate netboot.xyz source files templates
|
- name: Generate netboot.xyz source files templates
|
||||||
template:
|
template:
|
||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
|
@ -19,8 +19,8 @@ prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe me
|
|||||||
:dhcp
|
:dhcp
|
||||||
echo
|
echo
|
||||||
dhcp || goto netconfig
|
dhcp || goto netconfig
|
||||||
isset ${next-server} && iseq ${filename} netboot.xyz.kpxe && goto tftpmenu
|
isset ${next-server} && iseq ${filename} {{ site_name }}.kpxe && goto tftpmenu ||
|
||||||
isset ${next-server} && iseq ${filename} netboot.xyz.efi && goto tftpmenu
|
isset ${next-server} && iseq ${filename} {{ site_name }}.efi && goto tftpmenu ||
|
||||||
goto menu
|
goto menu
|
||||||
|
|
||||||
:failsafe
|
:failsafe
|
||||||
@ -52,11 +52,15 @@ goto menu || goto failsafe
|
|||||||
chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} && goto menu
|
chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} && goto menu
|
||||||
|
|
||||||
:menu
|
:menu
|
||||||
|
{% if bootloader_https_enabled | bool %}
|
||||||
set conn_type https
|
set conn_type https
|
||||||
chain --autofree https://${boot_domain}/menu.ipxe || echo ${HTTPS_ERR}
|
chain --autofree https://${boot_domain}/menu.ipxe || echo ${HTTPS_ERR}
|
||||||
sleep 5
|
sleep 5
|
||||||
|
{% endif %}
|
||||||
|
{% if bootloader_http_enabled | bool %}
|
||||||
set conn_type http
|
set conn_type http
|
||||||
chain --autofree http://${boot_domain}/menu.ipxe || echo ${HTTP_ERR}
|
chain --autofree http://${boot_domain}/menu.ipxe || echo ${HTTP_ERR}
|
||||||
|
{% endif %}
|
||||||
goto localboot
|
goto localboot
|
||||||
|
|
||||||
:localboot
|
:localboot
|
||||||
|
@ -8,22 +8,22 @@ set site_name {{ site_name }}
|
|||||||
set boot_domain {{ boot_domain }}
|
set boot_domain {{ boot_domain }}
|
||||||
|
|
||||||
# set location of memdisk
|
# set location of memdisk
|
||||||
set memdisk http://${boot_domain}/memdisk
|
set memdisk {{ memdisk_location }}
|
||||||
|
|
||||||
# signature check enabled?
|
# signature check enabled?
|
||||||
set sigs_enabled true
|
set sigs_enabled {{ sigs_enabled | default(false) | bool }}
|
||||||
|
|
||||||
# image signatures check enabled?
|
# image signatures check enabled?
|
||||||
set img_sigs_enabled true
|
set img_sigs_enabled {{ img_sigs_enabled | default(false) | bool }}
|
||||||
|
|
||||||
# set location of signatures for sources
|
# set location of signatures for sources
|
||||||
set sigs http://${boot_domain}/sigs/
|
set sigs {{ sigs_location }}
|
||||||
|
|
||||||
# set location of latest iPXE
|
# set location of latest iPXE
|
||||||
set ipxe_disk netboot.xyz-undionly.kpxe
|
set ipxe_disk netboot.xyz-undionly.kpxe
|
||||||
|
|
||||||
# set location of custom netboot.xyz live assets
|
# set location of custom netboot.xyz live assets
|
||||||
set live_endpoint https://github.com/netbootxyz
|
set live_endpoint {{ live_endpoint }}
|
||||||
|
|
||||||
##############################
|
##############################
|
||||||
# netboot-xyz hosted endpoints
|
# netboot-xyz hosted endpoints
|
@ -9,7 +9,7 @@ iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
|||||||
|
|
||||||
# BSD based systems
|
# BSD based systems
|
||||||
item --gap BSD Based Operating Systems
|
item --gap BSD Based Operating Systems
|
||||||
{% for key, value in releases.items() | sort %}
|
{% for key, value in releases.items() | sort(attribute='1.name') %}
|
||||||
{% if value.enabled is defined and value.menu == "bsd" and value.enabled | bool %}
|
{% if value.enabled is defined and value.menu == "bsd" and value.enabled | bool %}
|
||||||
item {{ key }} ${space} {{ value.name }}
|
item {{ key }} ${space} {{ value.name }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
32
roles/netbootxyz/templates/menu/gentoo.ipxe.j2
Normal file
32
roles/netbootxyz/templates/menu/gentoo.ipxe.j2
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
# Gentoo Operating System
|
||||||
|
# http://www.gentoo.org
|
||||||
|
|
||||||
|
# Note: in order to boot Gentoo via iPXE, the method at http://blog.dastrup.com/?p=12 has been utilized to
|
||||||
|
# to allow for the Gentoo minimal disk to boot. I've regenerated the latest boot disks and have put
|
||||||
|
# them on https://sourceforge.net/projects/netboot-xyz/files/distros/gentoo/amd64/20160204/
|
||||||
|
|
||||||
|
goto ${menu}
|
||||||
|
|
||||||
|
:gentoo
|
||||||
|
set os {{ releases.gentoo.name }}
|
||||||
|
menu ${os} ${arch_a}
|
||||||
|
{% for item in releases.gentoo.versions %}
|
||||||
|
item {{ item.code_name }} ${space} ${os} {{ item.name }}
|
||||||
|
{% endfor %}
|
||||||
|
choose gentoo_version || goto gentoo_exit
|
||||||
|
goto ${gentoo_version}
|
||||||
|
|
||||||
|
:20160204
|
||||||
|
set gentoopath https://master.dl.sourceforge.net/project/netboot-xyz/distros/gentoo/amd64/20160204
|
||||||
|
echo Please note the gentoo ISO has been regenerated to work with iPXE
|
||||||
|
echo using the method here: http://blog.dastrup.com/?p=12
|
||||||
|
kernel --name gentoo-kernel ${gentoopath}/kernel root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/ ${console}
|
||||||
|
initrd --name gentoo-initrd.img ${gentoopath}/initrd
|
||||||
|
boot
|
||||||
|
goto gentoo
|
||||||
|
|
||||||
|
:gentoo_exit
|
||||||
|
clear menu
|
||||||
|
chain linux.ipxe
|
@ -1,7 +0,0 @@
|
|||||||
#!ipxe
|
|
||||||
#### boot.netboot.xyz initial loader ####
|
|
||||||
#### see https://netboot.xyz for more information ####
|
|
||||||
set conn_type https
|
|
||||||
chain --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS failed... attempting HTTP...
|
|
||||||
set conn_type http
|
|
||||||
chain --autofree http://boot.netboot.xyz/menu.ipxe || echo HTTP failed, localbooting...
|
|
11
roles/netbootxyz/templates/menu/index.html.j2
Normal file
11
roles/netbootxyz/templates/menu/index.html.j2
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#!ipxe
|
||||||
|
#### {{ boot_domain }} initial loader
|
||||||
|
#### see https://netboot.xyz for more information
|
||||||
|
{% if bootloader_https_enabled | bool %}
|
||||||
|
set conn_type https
|
||||||
|
chain --autofree https://{{ boot_domain }}/menu.ipxe || echo HTTPS failed... attempting HTTP...
|
||||||
|
{% endif %}
|
||||||
|
{% if bootloader_http_enabled | bool %}
|
||||||
|
set conn_type http
|
||||||
|
chain --autofree http://{{ boot_domain }}/menu.ipxe || echo HTTP failed, localbooting...
|
||||||
|
{% endif %}
|
@ -6,7 +6,7 @@ goto ${menu} ||
|
|||||||
menu Linux Installers - Current Arch [ ${arch} ]
|
menu Linux Installers - Current Arch [ ${arch} ]
|
||||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
||||||
item --gap Popular Linux Operating Systems:
|
item --gap Popular Linux Operating Systems:
|
||||||
{% for key, value in releases.items() | sort %}
|
{% for key, value in releases.items() | sort(attribute='1.name') %}
|
||||||
{% if value.enabled is defined and value.menu == "linux" and value.enabled | bool %}
|
{% if value.enabled is defined and value.menu == "linux" and value.enabled | bool %}
|
||||||
item {{ key }} ${space} {{ value.name }}
|
item {{ key }} ${space} {{ value.name }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,7 +6,7 @@ goto ${menu} ||
|
|||||||
menu Live Boot Distributions - Current Arch [ ${arch} ]
|
menu Live Boot Distributions - Current Arch [ ${arch} ]
|
||||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
||||||
item --gap Live Boot Distributions
|
item --gap Live Boot Distributions
|
||||||
item liveubuntu ${space} Ubuntu Live
|
item live-ubuntu ${space} Ubuntu Live
|
||||||
choose menu || goto live_exit
|
choose menu || goto live_exit
|
||||||
echo ${cls}
|
echo ${cls}
|
||||||
goto ${menu} ||
|
goto ${menu} ||
|
||||||
|
@ -6,17 +6,32 @@ goto ${menu} ||
|
|||||||
menu Live Ubuntu Default (Unity) - Current Arch [ ${arch} ]
|
menu Live Ubuntu Default (Unity) - Current Arch [ ${arch} ]
|
||||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
||||||
item --gap Live Ubuntu Default (Unity)
|
item --gap Live Ubuntu Default (Unity)
|
||||||
item bionic-18.04-default ${space} Bionic Beaver 18.04
|
{% for key, value in endpoints.items() | sort %}
|
||||||
|
{% if value.os == "ubuntu" and 'squash' in key %}
|
||||||
|
item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
choose menu || goto live_exit
|
choose menu || goto live_exit
|
||||||
echo ${cls}
|
echo ${cls}
|
||||||
goto ${menu} ||
|
goto ${menu} ||
|
||||||
iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
|
iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
|
||||||
|
|
||||||
:bionic-18.04-default
|
{% for key, value in endpoints.items() | sort %}
|
||||||
kernel ${live_endpoint}${ubuntu-18.04-live-kernel}vmlinuz boot=casper netboot=http fetch=${live_endpoint}${ubuntu-18.04-default-squash}filesystem.squashfs initrd=initrd
|
{% if value.os == "ubuntu" and 'squash' in key %}
|
||||||
initrd ${live_endpoint}${ubuntu-18.04-live-kernel}initrd
|
{% set kernel_name = value.kernel %}
|
||||||
|
:{{ key }}
|
||||||
|
set fetch_url ${live_endpoint}{{ value.path }}filesystem.squashfs
|
||||||
|
{% for key, value in endpoints.items() | sort %}
|
||||||
|
{% if key == kernel_name %}
|
||||||
|
kernel ${live_endpoint}{{ value.path }}vmlinuz boot=casper netboot=http fetch=${fetch_url} initrd=initrd
|
||||||
|
initrd ${live_endpoint}{{ value.path }}initrd
|
||||||
boot
|
boot
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
:change_menu
|
:change_menu
|
||||||
chain ${menu}.ipxe || goto error
|
chain ${menu}.ipxe || goto error
|
||||||
goto live_menu
|
goto live_menu
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
#!ipxe
|
|
||||||
|
|
||||||
goto ${menu} ||
|
|
||||||
|
|
||||||
:live_menu
|
|
||||||
menu Live Ubuntu Distros - Current Arch [ ${arch} ]
|
|
||||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
|
||||||
item --gap Live Ubuntu Distros
|
|
||||||
item liveubuntu-default ${space} Ubuntu Live Default (Unity)
|
|
||||||
choose menu || goto live_exit
|
|
||||||
echo ${cls}
|
|
||||||
goto ${menu} ||
|
|
||||||
iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
|
|
||||||
|
|
||||||
:verify_sigs
|
|
||||||
imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error
|
|
||||||
goto change_menu
|
|
||||||
|
|
||||||
:change_menu
|
|
||||||
chain ${menu}.ipxe || goto error
|
|
||||||
goto live_menu
|
|
||||||
|
|
||||||
:live_exit
|
|
||||||
clear menu
|
|
||||||
exit 0
|
|
||||||
|
|
44
roles/netbootxyz/templates/menu/mageia.ipxe.j2
Normal file
44
roles/netbootxyz/templates/menu/mageia.ipxe.j2
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
# Mageia Operating System
|
||||||
|
# http://www.mageia.org/
|
||||||
|
|
||||||
|
# No way to set the network interface by MAC address, let the installer ask the question
|
||||||
|
isset ${dhcp-server} && set network dhcp || set network static,ip:${ip},netmask:${netmask},gateway:${gateway},dns:${dns}
|
||||||
|
|
||||||
|
goto ${menu} ||
|
||||||
|
|
||||||
|
:mageia
|
||||||
|
set os {{ releases.mageia.name }}
|
||||||
|
menu ${os} - ${arch} - Image Sig Checks: [${img_sigs_enabled}]
|
||||||
|
{% for item in releases.mageia.versions %}
|
||||||
|
item {{ item.code_name }} ${space} ${os} {{ item.name }}
|
||||||
|
{% endfor %}
|
||||||
|
choose version || goto mageia_exit
|
||||||
|
goto mageia_boot
|
||||||
|
|
||||||
|
:mageia_boot
|
||||||
|
set dir {{ releases.mageia.base_dir }}/distrib/${version}/x86_64 && set dir2 isolinux/x86_64 ||
|
||||||
|
iseq ${arch} i386 && set dir ${mageia_base_dir}/distrib/${version}/i586 && set dir2 isolinux/i386 ||
|
||||||
|
set automatic method:http,network:${network},server:${mageia_mirror},directory:/${dir}
|
||||||
|
imgfree
|
||||||
|
kernel {{ releases.mageia.mirror }}/${dir}/${dir2}/vmlinuz
|
||||||
|
initrd {{ releases.mageia.mirror }}/${dir}/${dir2}/all.rdz
|
||||||
|
imgargs vmlinuz automatic=${automatic} vga=788 splash=silent ${console} initrd=all.rdz
|
||||||
|
echo
|
||||||
|
echo MD5sums:
|
||||||
|
md5sum vmlinuz all.rdz
|
||||||
|
iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
|
||||||
|
:verify_sigs
|
||||||
|
echo
|
||||||
|
echo Checking signatures...
|
||||||
|
imgverify vmlinuz ${sigs}${dir}/${dir2}/vmlinuz.sig || goto error
|
||||||
|
imgverify all.rdz ${sigs}${dir}/${dir2}/all.rdz.sig || goto error
|
||||||
|
echo Signatures verified!
|
||||||
|
echo
|
||||||
|
:skip_sigs
|
||||||
|
boot || goto mageia
|
||||||
|
|
||||||
|
:mageia_exit
|
||||||
|
clear menu
|
||||||
|
exit 0
|
@ -1,7 +1,7 @@
|
|||||||
#!ipxe
|
#!ipxe
|
||||||
|
|
||||||
:start
|
:start
|
||||||
chain --autofree boot.ipxe ||
|
chain --autofree boot.cfg ||
|
||||||
iseq ${cls} serial && goto ignore_cls ||
|
iseq ${cls} serial && goto ignore_cls ||
|
||||||
set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J"
|
set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J"
|
||||||
set cls ${cls:string}
|
set cls ${cls:string}
|
||||||
|
52
roles/netbootxyz/templates/menu/rhel.ipxe.j2
Normal file
52
roles/netbootxyz/templates/menu/rhel.ipxe.j2
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
# Redhat Enterprise Linux (RHEL)
|
||||||
|
# https://www.redhat.com
|
||||||
|
|
||||||
|
isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}:::none nameserver=${dns}
|
||||||
|
set ipparam BOOTIF=${netX/mac} ${ipparam}
|
||||||
|
|
||||||
|
set rhel_arch x86_64
|
||||||
|
goto ${menu} ||
|
||||||
|
|
||||||
|
:rhel
|
||||||
|
set os Red Hat Enterprise Linux
|
||||||
|
clear rhel_version
|
||||||
|
menu ${os}
|
||||||
|
item --gap Installers
|
||||||
|
item rhel_install ${space} Load ${os} Installer...
|
||||||
|
item --gap Options:
|
||||||
|
item arch_set ${space} Architecture [ ${rhel_arch} ]
|
||||||
|
item url_set ${space} Base URL [ ${rhel_base_url} ]
|
||||||
|
choose rhel_version || goto rhel_exit
|
||||||
|
goto ${rhel_version}
|
||||||
|
|
||||||
|
:arch_set
|
||||||
|
iseq ${rhel_arch} x86_64 && set rhel_arch i386 || set rhel_arch x86_64
|
||||||
|
goto rhel
|
||||||
|
|
||||||
|
:url_set
|
||||||
|
echo Set the HTTP URL of an extracted RHEL ISO without the trailing slash:
|
||||||
|
echo e.g. http://www.mydomain.com/rhel/7
|
||||||
|
echo
|
||||||
|
echo -n URL: ${} && read rhel_base_url
|
||||||
|
echo
|
||||||
|
echo netboot.xyz will attempt to load the following files:
|
||||||
|
echo ${rhel_base_url}/os/${rhel_arch}/images/pxeboot/vmlinuz
|
||||||
|
echo ${rhel_base_url}/os/${rhel_arch}/images/pxeboot/initrd.img
|
||||||
|
echo
|
||||||
|
prompt Press any key to return to RHEL Menu...
|
||||||
|
goto rhel
|
||||||
|
|
||||||
|
:rhel_install
|
||||||
|
isset ${rhel_base_url} && goto boot || echo URL not set... && goto url_set
|
||||||
|
|
||||||
|
:boot
|
||||||
|
imgfree
|
||||||
|
kernel ${rhel_base_url}/os/${rhel_arch}/images/pxeboot/vmlinuz repo=${rhel_base_url}/os/${rhel_arch} ${console} ${ipparam} initrd=initrd.img
|
||||||
|
initrd ${rhel_base_url}/os/${rhel_arch}/images/pxeboot/initrd.img
|
||||||
|
md5sum vmlinuz initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:rhel_exit
|
||||||
|
exit 0
|
59
roles/netbootxyz/templates/menu/windows.ipxe.j2
Normal file
59
roles/netbootxyz/templates/menu/windows.ipxe.j2
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
# Microsoft Windows
|
||||||
|
# https://www.microsoft.com
|
||||||
|
|
||||||
|
set win_arch x64
|
||||||
|
goto ${menu} ||
|
||||||
|
|
||||||
|
:windows
|
||||||
|
set os Microsoft Windows
|
||||||
|
clear win_version
|
||||||
|
menu ${os}
|
||||||
|
item --gap Installers
|
||||||
|
item win_install ${space} Load ${os} Installer...
|
||||||
|
item --gap Options:
|
||||||
|
item arch_set ${space} Architecture [ ${win_arch} ]
|
||||||
|
item url_set ${space} Base URL [ ${win_base_url} ]
|
||||||
|
choose win_version || goto windows_exit
|
||||||
|
goto ${win_version}
|
||||||
|
|
||||||
|
:arch_set
|
||||||
|
iseq ${win_arch} x64 && set win_arch x86 || set win_arch x64
|
||||||
|
goto windows
|
||||||
|
|
||||||
|
:url_set
|
||||||
|
echo Set the HTTP URL of an extracted Windows ISO without the trailing slash:
|
||||||
|
echo e.g. http://www.mydomain.com/windows
|
||||||
|
echo
|
||||||
|
echo -n URL: ${} && read win_base_url
|
||||||
|
echo
|
||||||
|
echo netboot.xyz will attempt to load the following files:
|
||||||
|
echo ${win_base_url}/${win_arch}/bootmgr
|
||||||
|
echo ${win_base_url}/${win_arch}/boot/bcd
|
||||||
|
echo ${win_base_url}/${win_arch}/boot/boot.sdi
|
||||||
|
echo ${win_base_url}/${win_arch}/sources/boot.wim
|
||||||
|
echo
|
||||||
|
prompt Press any key to return to Windows Menu...
|
||||||
|
goto windows
|
||||||
|
|
||||||
|
:win_install
|
||||||
|
isset ${win_base_url} && goto boot || echo URL not set... && goto url_set
|
||||||
|
|
||||||
|
:boot
|
||||||
|
kernel http://${boot_domain}/wimboot
|
||||||
|
initrd ${win_base_url}/${win_arch}/bootmgr bootmgr
|
||||||
|
initrd ${win_base_url}/${win_arch}/boot/bcd bcd
|
||||||
|
initrd ${win_base_url}/${win_arch}/boot/boot.sdi boot.sdi
|
||||||
|
initrd ${win_base_url}/${win_arch}/sources/boot.wim boot.wim
|
||||||
|
md5sum wimboot
|
||||||
|
iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
|
||||||
|
:verify_sigs
|
||||||
|
echo
|
||||||
|
echo Checking wimboot signature...
|
||||||
|
imgverify wimboot ${sigs}wimboot.sig || goto error
|
||||||
|
:skip_sigs
|
||||||
|
boot
|
||||||
|
|
||||||
|
:windows_exit
|
||||||
|
exit 0
|
@ -1,8 +1,13 @@
|
|||||||
---
|
---
|
||||||
netbootxyz_packages:
|
netbootxyz_packages:
|
||||||
- apache2
|
- apache2
|
||||||
|
- binutils-dev
|
||||||
|
- binutils-aarch64-linux-gnu
|
||||||
|
- gcc-aarch64-linux-gnu
|
||||||
- build-essential
|
- build-essential
|
||||||
- genisoimage
|
- genisoimage
|
||||||
- git
|
- git
|
||||||
|
- isolinux
|
||||||
- liblzma-dev
|
- liblzma-dev
|
||||||
- syslinux
|
- syslinux
|
||||||
|
- syslinux-common
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# overrides defaults in netbootxyz role
|
# overrides defaults in netbootxyz role
|
||||||
generate_menus: true
|
generate_menus: true
|
||||||
generate_disks: false
|
generate_disks: true
|
||||||
|
|
||||||
# set desired site name
|
# set desired site name
|
||||||
#site_name: mysitename.com
|
#site_name: mysitename.com
|
||||||
@ -13,6 +13,10 @@ generate_disks: false
|
|||||||
# set boot version
|
# set boot version
|
||||||
#boot_version: 1.00
|
#boot_version: 1.00
|
||||||
|
|
||||||
|
#bootloader_tftp_enabled: false
|
||||||
|
#bootloader_https_enabled: true
|
||||||
|
#bootloader_http_enabled: true
|
||||||
|
|
||||||
# set overrides from standard netboot.xyz defaults
|
# set overrides from standard netboot.xyz defaults
|
||||||
release_overrides:
|
release_overrides:
|
||||||
alpinelinux:
|
alpinelinux:
|
||||||
|
Loading…
Reference in New Issue
Block a user