From fc4b151f7a5b236236fadc86778b5432f3ef3301 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Wed, 6 Nov 2019 22:34:15 -0600 Subject: [PATCH 001/169] initial commit --- README.md | 25 ++ TODO.md | 12 + inventory/all | 1 + netbootxyz.yml | 7 + roles/netbootxyz/defaults/main.yml | 347 ++++++++++++++++++ roles/netbootxyz/tasks/generate_disks.yml | 128 +++++++ roles/netbootxyz/tasks/generate_menus.yml | 24 ++ roles/netbootxyz/tasks/main.yml | 8 + .../templates/disks/ipxe-bootloader.j2 | 69 ++++ roles/netbootxyz/templates/disks/ipxe-dhcp.j2 | 38 ++ .../netbootxyz/templates/disks/ipxe-static.j2 | 34 ++ .../templates/menu/alpinelinux.ipxe.j2 | 46 +++ .../templates/menu/archlinux.ipxe.j2 | 55 +++ .../templates/menu/blackarch.ipxe.j2 | 27 ++ roles/netbootxyz/templates/menu/boot.ipxe.j2 | 134 +++++++ roles/netbootxyz/templates/menu/bsd.ipxe.j2 | 41 +++ .../netbootxyz/templates/menu/centos.ipxe.j2 | 83 +++++ .../netbootxyz/templates/menu/debian.ipxe.j2 | 99 +++++ .../netbootxyz/templates/menu/devuan.ipxe.j2 | 86 +++++ .../netbootxyz/templates/menu/fedora.ipxe.j2 | 83 +++++ roles/netbootxyz/templates/menu/index.html | 7 + roles/netbootxyz/templates/menu/linux.ipxe.j2 | 30 ++ roles/netbootxyz/templates/menu/menu.ipxe.j2 | 103 ++++++ .../netbootxyz/templates/menu/openbsd.ipxe.j2 | 32 ++ .../templates/menu/opensuse.ipxe.j2 | 89 +++++ .../templates/menu/parrotsec.ipxe.j2 | 27 ++ .../templates/menu/scientific.ipxe.j2 | 59 +++ .../templates/menu/security.ipxe.j2 | 29 ++ .../templates/menu/slackware.ipxe.j2 | 31 ++ .../templates/menu/tinycore.ipxe.j2 | 24 ++ .../netbootxyz/templates/menu/ubuntu.ipxe.j2 | 83 +++++ roles/netbootxyz/vars/main.yml | 1 + roles/netbootxyz/vars/redhat.yml | 9 + roles/netbootxyz/vars/ubuntu.yml | 8 + user_overrides.yml | 15 + 35 files changed, 1894 insertions(+) create mode 100644 README.md create mode 100644 TODO.md create mode 100644 inventory/all create mode 100644 netbootxyz.yml create mode 100644 roles/netbootxyz/defaults/main.yml create mode 100644 roles/netbootxyz/tasks/generate_disks.yml create mode 100644 roles/netbootxyz/tasks/generate_menus.yml create mode 100644 roles/netbootxyz/tasks/main.yml create mode 100644 roles/netbootxyz/templates/disks/ipxe-bootloader.j2 create mode 100644 roles/netbootxyz/templates/disks/ipxe-dhcp.j2 create mode 100644 roles/netbootxyz/templates/disks/ipxe-static.j2 create mode 100644 roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/archlinux.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/blackarch.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/boot.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/bsd.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/centos.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/debian.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/devuan.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/fedora.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/index.html create mode 100644 roles/netbootxyz/templates/menu/linux.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/menu.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/openbsd.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/opensuse.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/parrotsec.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/scientific.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/security.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/slackware.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/tinycore.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 create mode 100644 roles/netbootxyz/vars/main.yml create mode 100644 roles/netbootxyz/vars/redhat.yml create mode 100644 roles/netbootxyz/vars/ubuntu.yml create mode 100644 user_overrides.yml diff --git a/README.md b/README.md new file mode 100644 index 00000000..cb936632 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +## netboot.xyz - v2 - Under Construction + +** THIS IS A WORK IN PROGRESS, DO NOT USE ** + +** Templates are incomplete and still being worked ** + +netboot.xyz rewritten in ansible to generate standalone netboot environments. + +The goal is to use this to generate the primary netboot.xyz site +but at the same time allow it to be customizable for any type of environment or user. + +The source files are now templates in order to make things a bit easier to generate. + +This is a seperate repo for now but will more than likely roll into the existing repo. + +To generate, run: + +``` +ansible-playbook -i inventory/all netbootxyz.yml +``` + +It'll handle source generation as well as ipxe disk generation with the users settings. The disk generation was worked on a while back so it needs work to catch it up to the existing state of netboot.xyz. + +If you want to override the defaults, you can put overrides in user_overrides.yml. See file for examples. + diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..3b8ab047 --- /dev/null +++ b/TODO.md @@ -0,0 +1,12 @@ +## TODO + +* Finish the templates +* Convert utilties to dictionary +* Signature generation +* Custom iPXE Certificate generation +* Logic to mirror repos locally for airgapped environments or those with plenty of space. +* Webserver optimization, make configurable (nginx, apache, etc) +* More host OS support +* Docker images +* package cacher +* port netboot.xyz to this in staging env to validate and test \ No newline at end of file diff --git a/inventory/all b/inventory/all new file mode 100644 index 00000000..2302edae --- /dev/null +++ b/inventory/all @@ -0,0 +1 @@ +localhost ansible_connection=local diff --git a/netbootxyz.yml b/netbootxyz.yml new file mode 100644 index 00000000..43c7db80 --- /dev/null +++ b/netbootxyz.yml @@ -0,0 +1,7 @@ +--- +- hosts: localhost + user: root + roles: + - netbootxyz + vars_files: + - user_overrides.yml diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml new file mode 100644 index 00000000..d7a065ae --- /dev/null +++ b/roles/netbootxyz/defaults/main.yml @@ -0,0 +1,347 @@ +--- + +boot_domain: boot.mydomain.com +boot_version: 1.00 + +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_branch: master +netbootxyz_root: /var/www/html + +releases: + alpinelinux: + name: "Alpine Linux" + mirror: "http://dl-cdn.alpinelinux.org" + base_dir: "alpine" + enabled: true + menu: "linux" + versions: + - name: "3.10" + code_name: "v3.10" + - name: "Edge (development)" + code_name: "edge" + archlinux: + name: "Arch Linux" + mirror: "mirror.rackspace.com" + base_dir: "archlinux" + enabled: true + menu: "linux" + versions: + - name: "2019.10.01" + code_name: "2019.10.01" + blackarch: + name: "BlackArch" + enabled: true + menu: "security" + versions: + - name: "2019.06.01" + code_name: "2019.06.01" + centos: + name: "CentOS" + mirror: "http://mirror.centos.org" + base_dir: "centos" + enabled: true + menu: "linux" + versions: + - name: "8.0" + code_name: "8.0.1905" + - name: "8.0 Stream" + code_name: "8-stream" + - name: "7.7" + code_name: "7.7.1908" + coreos: + name: "CoreOS" + enabled: true + menu: "linux" + versions: + - name: "30" + code_name: "beta" + debian: + name: "Debian" + mirror: "deb.debian.org" + archive_mirror: "archive.debian.org" + base_dir: "debian" + enabled: true + menu: "linux" + versions: + stable: + - name: "9.0 (stretch)" + code_name: "stretch" + - name: "8.0 (jessie)" + code_name: "jessie" + - name: "7.0 (jessie)" + code_name: "wheezy" + testing: + - name: "buster (testing)" + code_name: "buster" + - name: "sid (unstable)" + code_name: "sid" + devuan: + name: "Devuan" + mirror: "auto.mirror.devuan.org" + base_dir: "devuan" + enabled: true + menu: "linux" + versions: + stable: + - name: "ascii (stable)" + code_name: "ascii" + - name: "1.0 (jessie)" + code_name: "jessie" + testing: + - name: "beowulf (testing)" + code_name: "beowulf" + fedora: + name: "Fedora" + mirror: "mirrors.kernel.org" + base_dir: "fedora" + enabled: true + menu: "linux" + versions: + - name: "31" + code_name: "31" + - name: "30" + code_name: "30" + - name: "29" + code_name: "29" + flatcar: + name: "Container Linux by Flatcar" + mirror: "" + enabled: true + menu: "linux" + versions: + - name: "Stable Channel" + code_name: "stable" + - name: "Beta Channel" + code_name: "beta" + - name: "Alpha Channel" + code_name: "edge" + freebsd: + name: "FreeBSD" + menu: "bsd" + versions: + - name: "FreeBSD 12.0" + code_name: "12.0" + image_subdir: "12" + - name: "FreeBSD 11.2" + code_name: "11.2" + image_subdir: "11" + - name: "FreeBSD 11.1" + code_name: "11.1" + image_subdir: "11" + - name: "FreeBSD 11.0" + code_name: "11.0" + image_subdir: "11" + - name: "FreeBSD 10.4" + code_name: "10.4" + image_subdir: "10" + freedos: + name: "FreeDOS" + mirror: "http://www.freedos.org" + base_dir: "/download/download/" + enabled: true + menu: "dos" + versions: + - name: "1.2 Full Installer" + code_name: "FD12FULL" + - name: "1.2 Lite Installer" + code_name: "FD12LITE" + gentoo: + name: "Gentoo" + mirror: "" + menu: "linux" + versions: + - name: "TBA" + code_name: "TBA" + ipfire: + name: "IPFire" + mirror: "downloads.ipfire.org" + menu: "linux" + versions: + - name: "2.21 Core 126" + code_name: "2.21-core126" + kail: + name: "Kali Linux" + mirror: "http://http.kali.org" + base_dir: "kali" + enabled: true + menu: "security" + versions: + - name: "Rolling Edition (2019.2)" + code_name: "rolling" + livedebian: + name: "Debian Live" + mirror: "http://cdimage.debian.org" + base_dir: "cdimage/archive" + enabled: true + menu: "live" + versions: + - name: "8.11.0" + code_name: "8.11.0" + flavors: + - name: "Cinnamon" + code_name: "cinnamon-desktop" + - name: "Gnome" + code_name: "gnome-desktop" + - name: "KDE" + code_name: "kde-desktop" + - name: "LXDE" + code_name: "lxde-desktop" + - name: "MATE" + code_name: "mate-desktop" + - name: "Standard" + code_name: "standard" + - name: "XFCE" + code_name: "xfce-desktop" + livegrml: + name: "Grml Live Linux" + mirror: "http://download.grml.org" + enabled: true + menu: "live" + versions: + - name: "2018.12 Full" + code_name: "grml-full" + - name: "2018.12 Small" + code_name: "grml-small" + mageia: + name: "Mageia" + mirror: "http://mirrors.kernel.org" + base_dir: "mageia" + enabled: true + menu: "linux" + versions: + - name: "7.1" + code_name: "7.1" + - name: "cauldron" + code_name: "cauldron" + mirbsd: + name: "MirOS" + mirror: "https://www.mirbsd.org/" + base_dir: "MirOS" + enabled: true + menu: "bsd" + versions: + - name: "Latest (i386)" + code_name: "mirbsd" + nixos: + name: "NixOS" + enabled: true + menu: "linux" + versions: + - name: "Nixos 19.09" + code_name: "19.09" + - name: "Nixos 19.03" + code_name: "19.03" + - name: "Nixox Unstable" + code_name: "unstable" + openbsd: + name: "OpenBSD" + mirror: "ftp.openbsd.org" + base_dir: "pub/OpenBSD" + enabled: true + menu: "bsd" + versions: + - name: "OpenBSD 6.6" + code_name: "6.6" + image_ver: "66" + - name: "OpenBSD 6.5" + code_name: "6.5" + image_ver: "65" + - name: "OpenBSD 6.4" + code_name: "6.4" + image_ver: "64" + - name: "OpenBSD 6.3" + code_name: "6.3" + image_ver: "63" + - name: "OpenBSD 6.6 Latest Snapshot" + code_name: "snapshots" + image_ver: "66" + opensuse: + name: "OpenSUSE" + mirror: "" + base_dir: "" + enabled: true + menu: "linux" + versions: + - name: "openSUSE Leap 15.1" + code_name: "15.1" + - name: "openSUSE Leap 15.0" + code_name: "15.0" + - name: "openSUSE Leap 42.3" + code_name: "42.3" + - name: "openSUSE tumbleweed" + code_name: "tumbleweed" + parrotsec: + name: "Parrot Security" + mirror: "https://mirrordirector.archive.parrotsec.org" + base_dir: "parrot" + enabled: true + menu: "security" + versions: + - name: "Stable Netinstall" + code_name: "stable" + rancheros: + name: "RancherOS" + mirror: "releases.rancher.com" + base_dir: "os/latest" + enabled: true + menu: "linux" + versions: + - name: "Latest (20 MB)" + code_name: "latest" + scientific: + name: "Scientific Linux" + mirror: "ftp1.scientificlinux.org" + base_dir: "" + menu: "linux" + versions: + - name: "7.7" + code_name: "7.7" + - name: "7.6" + code_name: "7.6" + - name: "6.10" + code_name: "6.10" + - name: "6.9" + code_name: "6.9" + slackware: + name: "Slackware" + mirror: "mirror.rackspace.com" + base_dir: "slackware" + menu: "linux" + versions: + - name: "Current" + code_name: "current" + - name: "14.2" + code_name: "14.2" + - name: "14.1" + code_name: "14.1" + tinycore: + name: "Tiny Core Linux" + mirror: "tinycorelinux.net" + menu: "linux" + versions: + - name: "Core [ISO]" + code_name: "Core" + - name: "TinyCore [ISO]" + code_name: "TinyCore" + - name: "CorePlus [ISO]" + code_name: "CorePlus" + ubuntu: + name: "Ubuntu" + mirror: "archive.ubuntu.com" + archive_mirror: "old-releases.ubuntu.com" + base_dir: "ubuntu" + enabled: true + menu: "linux" + versions: + - name: "19.10 Eoan Ermine" + code_name: "eoan" + - name: "19.04 Disco Dingo" + code_name: "disco" + - name: "18.04 LTS Bionic Beaver" + code_name: "bionic" + - name: "16.04 LTS Xenial Xerus" + code_name: "xenial" diff --git a/roles/netbootxyz/tasks/generate_disks.yml b/roles/netbootxyz/tasks/generate_disks.yml new file mode 100644 index 00000000..0deff438 --- /dev/null +++ b/roles/netbootxyz/tasks/generate_disks.yml @@ -0,0 +1,128 @@ +--- + - 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 + 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: Install required packages + package: + name: "{{ item }}" + 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 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" } diff --git a/roles/netbootxyz/tasks/generate_menus.yml b/roles/netbootxyz/tasks/generate_menus.yml new file mode 100644 index 00000000..28c1da27 --- /dev/null +++ b/roles/netbootxyz/tasks/generate_menus.yml @@ -0,0 +1,24 @@ +--- + - name: Combine overrides with defaults + set_fact: + _my_releases: "{{ releases|combine(release_overrides, recursive=True) }}" + + - name: Set releases with user overrides + set_fact: + releases: "{{ _my_releases }}" + + - name: Generate directories + file: + path: "{{ netbootxyz_root }}" + state: directory + + - name: Dump releases vars for debugging + debug: + var: releases + + - name: Generate netboot.xyz source files templates + template: + src: "{{ item.src }}" + dest: "{{ netbootxyz_root }}/{{ item.path | regex_replace('.j2','') }}" + with_filetree: "templates/menu/" + when: item.state == "file" diff --git a/roles/netbootxyz/tasks/main.yml b/roles/netbootxyz/tasks/main.yml new file mode 100644 index 00000000..a7437155 --- /dev/null +++ b/roles/netbootxyz/tasks/main.yml @@ -0,0 +1,8 @@ +--- + - include: generate_menus.yml + when: + - generate_menus | default(true) | bool + + - include: generate_disks.yml + when: + - generate_disks | default(true) | bool \ No newline at end of file diff --git a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 new file mode 100644 index 00000000..208c1b05 --- /dev/null +++ b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 @@ -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_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 boot_domain {{ boot_domain }} +set version {{ boot_version }} + +:start +echo ${bold}${fg_gre}${boot_domain} - ${fg_whi}v${version}${boldoff} +echo ${bold}${fg_whi}Powered by${fg_gre}netboot.xyz${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 ${boot_domain} 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 ${boot_domain}... +goto menu || goto failsafe + +:menu +set conn_type https +chain --autofree https://${boot_domain}/menu.ipxe || echo ${HTTPS_ERR} +sleep 5 +set conn_type http +chain --autofree http://${boot_domain}/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 diff --git a/roles/netbootxyz/templates/disks/ipxe-dhcp.j2 b/roles/netbootxyz/templates/disks/ipxe-dhcp.j2 new file mode 100644 index 00000000..1f12fd1e --- /dev/null +++ b/roles/netbootxyz/templates/disks/ipxe-dhcp.j2 @@ -0,0 +1,38 @@ +#!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 diff --git a/roles/netbootxyz/templates/disks/ipxe-static.j2 b/roles/netbootxyz/templates/disks/ipxe-static.j2 new file mode 100644 index 00000000..7bce2a43 --- /dev/null +++ b/roles/netbootxyz/templates/disks/ipxe-static.j2 @@ -0,0 +1,34 @@ +#!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 diff --git a/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 b/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 new file mode 100644 index 00000000..a66b6b9f --- /dev/null +++ b/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 @@ -0,0 +1,46 @@ +#!ipxe + +# Alpine Linux +# https://alpinelinux.org + +isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}::eth0:none:${dns} + +goto ${menu} + +:alpinelinux +clear alpine_version +set os {{ releases.alpinelinux.name }} +iseq ${arch} x86_64 && set bootarch x86_64 || set bootarch x86 +menu ${os} [${bootarch}] - Image Sig Checks: [${img_sigs_enabled}] +item --gap Releases +{% for item in releases.alpinelinux.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose alpine_version || goto alpine_exit +goto boot + +:boot +set base-url {{ releases.alpinelinux.mirror }} +set dir {{ releases.alpinelinux.base_dir }}/${alpine_version}/releases/${bootarch}/netboot +set repo-url {{ releases.alpinelinux.mirror }}/{{ releases.alpinelinux.base_dir }}/${alpine_version}/main +imgfree +kernel ${base-url}/${dir}/vmlinuz-vanilla ${ipparam} alpine_repo=${repo-url} modules=loop,squashfs modloop=${base-url}/${dir}/modloop-vanilla quiet nomodeset +initrd ${base-url}/${dir}/initramfs-vanilla +echo +echo MD5sums: +md5sum vmlinuz-vanilla initramfs-vanilla +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify vmlinuz-vanilla ${sigs}${dir}/vmlinuz-vanilla.sig || goto error +imgverify initramfs-vanilla ${sigs}${dir}/initramfs-vanilla.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot +goto alpine_exit + +:alpine_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 b/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 new file mode 100644 index 00000000..4c46e502 --- /dev/null +++ b/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 @@ -0,0 +1,55 @@ +#!ipxe + +# Arch Linux Operating System +# http://www.archlinux.org + +isset ${dhcp-server} || goto static_ip +set ipparam BOOTIF=${netX/mac} ip=dhcp +set real_archlinux_mirror http://{{ releases.archlinux.mirror }} +goto goto_menu + +:static_ip +# Arch Linux cannot use DNS if booted with a static IP +# See https://bugs.archlinux.org/task/63174 +# Remove this hack when the above bug is properly resolved +nslookup real_archlinux_mirror {{ releases.archlinux.mirror }} +set ipparam BOOTIF=${netX/mac} ip=${ip}::${gateway}:${netmask} + +:goto_menu +goto ${menu} || + +:archlinux +set os {{ releases.archlinux.name }} +clear arch_version +menu ${os} - ${arch} - Image Sig Checks: [${img_sigs_enabled}] +item --gap Latest Releases +{% for item in releases.archlinux.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose arch_version || goto archlinux_exit +goto boot + +:boot +imgfree +set dir {{ releases.archlinux.base_dir }}/iso/${arch_version}/arch/boot +set params initrd=archiso.img archiso_http_srv=http://${real_archlinux_mirror}/{{ releases.archlinux.base_dir }}/iso/${arch_version}/ archisobasedir=arch verify=y ${ipparam} net.ifnames=0 ${console} +kernel http://{{ releases.archlinux.mirror }}/${dir}/x86_64/vmlinuz ${params} initrd=archiso.img +initrd http://{{ releases.archlinux.mirror }}/${dir}/x86_64/archiso.img +echo +echo MD5sums: +md5sum vmlinuz archiso.img +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify vmlinuz ${sigs}${dir}/x86_64/vmlinuz.sig || goto error +imgverify archiso.img ${sigs}${dir}/x86_64/archiso.img.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot +goto archlinux_exit + +:archlinux_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/blackarch.ipxe.j2 b/roles/netbootxyz/templates/menu/blackarch.ipxe.j2 new file mode 100644 index 00000000..596bbce6 --- /dev/null +++ b/roles/netbootxyz/templates/menu/blackarch.ipxe.j2 @@ -0,0 +1,27 @@ +#!ipxe + +# BlackArch Linux Operating System +# https://blackarch.org/ + +goto ${menu} + +:blackarch +set os {{ releases.blackarch.name }} +menu ${os} Installers +item --gap Official Releases +{% for item in releases.blackarch.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose blackarch_version || goto blackarch_exit +goto blackarch_boot + +:blackarch_boot +set blackarch_initrd http://distro.ibiblio.org/blackarch/iso/blackarch-linux-netinst-${blackarch_version}-x86_64.iso +kernel ${memdisk} iso raw +initrd ${blackarch_initrd} +boot +goto blackarch_exit + +:blackarch_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/boot.ipxe.j2 b/roles/netbootxyz/templates/menu/boot.ipxe.j2 new file mode 100644 index 00000000..46cd5aea --- /dev/null +++ b/roles/netbootxyz/templates/menu/boot.ipxe.j2 @@ -0,0 +1,134 @@ +#!ipxe + +:global_vars +# set site name +set site_name netboot.xyz + +# set boot domain +set boot_domain boot.netboot.xyz + +# set location of memdisk +set memdisk http://${boot_domain}/memdisk + +# signature check enabled? +set sigs_enabled true + +# image signatures check enabled? +set img_sigs_enabled true + +# set location of signatures for sources +set sigs http://${boot_domain}/sigs/ + +# set location of latest iPXE +set ipxe_disk netboot.xyz-undionly.kpxe + +################## +# 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 + + +################################################# +# determine architectures and enable menu options +################################################# +:architectures +set menu_linux 1 +set menu_bsd 1 +set menu_freedos 1 +set menu_live 1 +set menu_security 1 +set menu_windows 1 +set menu_utils 1 +iseq ${buildarch} i386 && goto x86_64 || +iseq ${buildarch} x86_64 && goto x86_64 || +iseq ${buildarch} arm64 && goto arm64 || +goto architectures_end +:x86_64 +goto architectures_end +:arm64 +set menu_freedos 0 +set menu_live 0 +set menu_security 0 +set menu_windows 0 +set menu_utils 0 +goto architectures_end +:architectures_end +goto clouds + +################################### +# set iPXE cloud provider specifics +################################### +:clouds +iseq ${ipxe_cloud_config} gce && goto gce || +iseq ${ipxe_cloud_config} packet && goto packet || +goto clouds_end + +:gce +set console console=ttyS0,115200n8 +goto clouds_end + +:packet +iseq ${buildarch} i386 && goto packet_x86_64 || +iseq ${buildarch} x86_64 && goto packet_x86_64 || +iseq ${buildarch} arm64 && goto packet_arm64 || +goto clouds_end + +:packet_x86_64 +set console console=ttyS1,115200n8 +set ipxe_disk netboot.xyz-packet.kpxe +set menu_freedos 0 +set menu_windows 0 +set menu_utils 0 +goto clouds_end + +:packet_arm64 +set console console=ttyAMA0,115200 +set ipxe_disk netboot.xyz-packet-arm64.efi +set menu_bsd 0 +set menu_freedos 0 +set menu_live 0 +set menu_security 0 +set menu_windows 0 +set menu_utils 0 +goto clouds_end + +:clouds_end +goto end + +:end +exit diff --git a/roles/netbootxyz/templates/menu/bsd.ipxe.j2 b/roles/netbootxyz/templates/menu/bsd.ipxe.j2 new file mode 100644 index 00000000..ac5a5af0 --- /dev/null +++ b/roles/netbootxyz/templates/menu/bsd.ipxe.j2 @@ -0,0 +1,41 @@ +#!ipxe + +goto ${menu} || + +:bsd_menu + +menu BSD Installers - Current Selected Architecture [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} + +# BSD based systems +item --gap BSD Based Operating Systems +{% for key, value in releases.items() | sort %} +{% if value.enabled is defined and value.menu == "bsd" and value.enabled | bool %} +item {{ key }} ${space} {{ value.name }} +{% endif %} +{% endfor %} +# Options +item --gap Options: +iseq ${arch} x86_64 && set bits 64 || set bits 32 +item changebits ${space} Architecture: ${arch} (${bits}bit) +choose menu || goto bsd_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 bsd_menu + +:bsd_exit +clear menu +exit 0 + +:changebits +iseq ${arch} x86_64 && set arch i386 || set arch x86_64 +goto bsd_menu \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/centos.ipxe.j2 b/roles/netbootxyz/templates/menu/centos.ipxe.j2 new file mode 100644 index 00000000..2f2d2d34 --- /dev/null +++ b/roles/netbootxyz/templates/menu/centos.ipxe.j2 @@ -0,0 +1,83 @@ +#!ipxe + +# CentOS Operating System +# http://www.centos.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} || + +:centos +clear osversion +set os {{ releases.centos.name }} +menu ${os} - ${arch} - Image Sig Checks: [${img_sigs_enabled}] +{% for item in releases.centos.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +isset ${osversion} || choose osversion || goto linux_menu +echo ${cls} +set dir {{ releases.centos.base_dir }}/${osversion}/BaseOS/${arch}/os +iseq ${osversion} 7.7.1908 && set dir {{ releases.centos.base_dir }}/${osversion}/os/${arch} || +set repo {{ releases.centos.mirror }}/{{ releases.centos.base_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 centos +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 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 {{ releases.centos.mirror }}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} initrd=initrd.img +initrd {{ releases.centos.mirror }}/${dir}/images/pxeboot/initrd.img +echo +echo MD5sums: +md5sum vmlinuz initrd.img +iseq ${osversion} 8-stream && echo Rolling release, skipping sig checks && goto skip_sigs || +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify vmlinuz ${sigs}${dir}/images/pxeboot/vmlinuz.sig || goto error +imgverify initrd.img ${sigs}${dir}/images/pxeboot/initrd.img.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot +goto linux_menu + +:linux_menu +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/debian.ipxe.j2 b/roles/netbootxyz/templates/menu/debian.ipxe.j2 new file mode 100644 index 00000000..fb12cc6c --- /dev/null +++ b/roles/netbootxyz/templates/menu/debian.ipxe.j2 @@ -0,0 +1,99 @@ +#!ipxe + +# Debian Operating System +# http://www.debian.org + +goto ${menu} + +:debian +set os Debian +clear debian_version +clear older_release +menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}] +item --gap Latest Releases +{% for item in releases.debian.versions.stable %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item --gap Testing Releases +{% for item in releases.debian.versions.testing %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item --gap Older Releases +item older_release ${space} Set release codename... +choose debian_version || goto debian_exit +iseq ${debian_version} older_release && goto older_release || +goto mirrorcfg + +:older_release +set older_release true +set debian_mirror {{ releases.debian.archive_mirror }} +echo Setting mirror to ${debian_mirror} +clear debian_version +echo -n Please set enter code name of release: ${} && read debian_version +set dir {{ releases.debian.base_dir }}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/ +goto deb_boot_type + +:mirrorcfg +set debian_mirror {{ releases.debian.mirror }} +set mirrorcfg mirror/suite=${debian_version} +set dir {{ releases.debian.base_dir }}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/ +goto deb_boot_type + +:deb_boot_type +menu ${os} [${debian_version}] Installer +item --gap Install types +item text ${space} Text Based Install +item graphical ${space} Graphical Based Install +item rescue ${space} Rescue Mode +item expert ${space} Expert Install +item preseed ${space} Specify preseed url... +choose --default ${type} type || goto debian + +echo ${cls} +goto deb_${type} + +:deb_rescue +set install_params rescue/enable=true +goto deb_text + +:deb_expert +set install_params priority=low +goto deb_text + +:deb_preseed +echo -n Specify preseed URL for ${os} ${debian_version}: && read preseedurl +set install_params auto=true priority=critical preseed/url=${preseedurl} +goto deb_text + +:deb_text +set dir ${dir}${menu}-installer/${arch_a} +goto deb_boot + +:deb_graphical +set dir ${dir}gtk/${menu}-installer/${arch_a} +set install_params vga=788 +goto deb_boot + +:deb_boot +imgfree +echo Boot parameters: ${install_params} -- quiet ${params} +kernel http://${debian_mirror}/${dir}/linux ${install_params} ${netcfg} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz +initrd http://${debian_mirror}/${dir}/initrd.gz +echo +echo MD5sums: +md5sum linux initrd.gz +iseq ${img_sigs_enabled} true && iseq ${older_release} true && goto skip_sigs || +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify linux ${sigs}${dir}/linux.sig || goto error +imgverify initrd.gz ${sigs}${dir}/initrd.gz.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot + +:debian_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/devuan.ipxe.j2 b/roles/netbootxyz/templates/menu/devuan.ipxe.j2 new file mode 100644 index 00000000..b4ea6731 --- /dev/null +++ b/roles/netbootxyz/templates/menu/devuan.ipxe.j2 @@ -0,0 +1,86 @@ +#!ipxe + +# Devuan Operating System +# http://www.devuan.org + +goto ${menu} + +:devuan +set os Devuan +clear devuan_version +clear older_release +menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}] +item --gap Latest Releases +{% for item in releases.devuan.versions.stable %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item --gap Testing Releases +{% for item in releases.devuan.versions.testing %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose devuan_version || goto devuan_exit +goto mirrorcfg + +:mirrorcfg +set mirrorcfg mirror/suite=${devuan_version} +set dir ${devuan_base_dir}/dists/${devuan_version}/main/installer-${arch_a}/current/images/netboot/ +goto devuan_boot_type + +:devuan_boot_type +menu ${os} [${devuan_version}] Installer +item --gap Install types +item text ${space} Text Based Install +item graphical ${space} Graphical Based Install +item rescue ${space} Rescue Mode +item expert ${space} Expert Install +item preseed ${space} Specify preseed url... +choose --default ${type} type || goto devuan + +echo ${cls} +goto devuan_${type} + +:devuan_rescue +set install_params rescue/enable=true +goto devuan_text + +:devuan_expert +set install_params priority=low +goto devuan_text + +:devuan_preseed +echo -n Specify preseed URL for ${os} ${devuan_version}: && read preseedurl +set install_params auto=true priority=critical preseed/url=${preseedurl} +goto devuan_text + +:devuan_text +set dir ${dir}debian-installer/${arch_a} +goto devuan_boot + +:devuan_graphical +set dir ${dir}gtk/debian-installer/${arch_a} +set install_params vga=788 +goto devuan_boot + +:devuan_boot +imgfree +echo Boot parameters: ${install_params} -- quiet ${params} +kernel http://${devuan_mirror}/${dir}/linux ${install_params} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz +initrd http://${devuan_mirror}/${dir}/initrd.gz +echo +echo MD5sums: +md5sum linux initrd.gz +iseq ${img_sigs_enabled} true && iseq ${older_release} true && goto skip_sigs || +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify linux ${sigs}${dir}/linux.sig || goto error +imgverify initrd.gz ${sigs}${dir}/initrd.gz.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot + +:devuan_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/fedora.ipxe.j2 b/roles/netbootxyz/templates/menu/fedora.ipxe.j2 new file mode 100644 index 00000000..6578e603 --- /dev/null +++ b/roles/netbootxyz/templates/menu/fedora.ipxe.j2 @@ -0,0 +1,83 @@ +#!ipxe + +# Fedora Operating System +# https://getfedora.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} || + +:fedora +clear osversion +clear sku_type +clear ova +set os Fedora +menu Fedora - ${arch} - Image Sig Checks: [${img_sigs_enabled}] +item --gap Latest Releases +{% for item in releases.fedora.versions %} +item {{ item.name }} ${space} ${os} {{ item.name }} +{% endfor %} +iseq ${arch} x86_64 && item rawhide ${space} ${os} rawhide || +isset ${osversion} || choose osversion || goto linux_menu +set ova ${os} ${osversion} +goto product_sku + +:product_sku +menu ${os} ${arch} sku type +item Everything ${ova} Everything +item Server ${ova} Server +item Workstation ${ova} Workstation +item Atomic ${ova} Atomic +iseq ${arch} x86_64 && item Silverblue ${ova} Silverblue || +isset ${sku_type} || choose sku_type || goto fedora +set dir ${fedora_base_dir}/releases/${osversion}/${sku_type}/${arch}/os +iseq ${osversion} rawhide && set dir ${fedora_base_dir}/development/${osversion}/${sku_type}/${arch}/os || +iseq ${sku_type} Atomic && iseq ${osversion} 29 && set dir fedora-alt/atomic/stable/Fedora-Atomic-29-20181025.1/AtomicHost/x86_64/os || +set ova ${ova} ${sku_type} +echo ${cls} +goto boottype + +:boottype +menu ${os} ${arch} boot type +item normal ${ova} install +item rescue ${ova} rescue +item kickstart ${ova} specify kickstart url +isset ${bt} || choose bt || goto fedora +echo ${cls} +iseq ${bt} rescue && goto rescue || +iseq ${bt} kickstart && goto kickstart || +goto boot + +:rescue +set params rescue || +goto boot + +:kickstart +echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl +set params ks=${ksurl} || +goto boot + +:boot +imgfree +kernel http://${fedora_mirror}/${dir}/images/pxeboot/vmlinuz repo=http://${fedora_mirror}/${dir} ${params} ${console} ${ipparam} initrd=initrd.img +initrd http://${fedora_mirror}/${dir}/images/pxeboot/initrd.img +echo +echo MD5sums: +md5sum vmlinuz initrd.img +iseq ${osversion} rawhide && goto skip_sigs || +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify vmlinuz ${sigs}${dir}/images/pxeboot/vmlinuz.sig || goto error +imgverify initrd.img ${sigs}${dir}/images/pxeboot/initrd.img.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot +goto linux_menu + +:linux_menu +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/index.html b/roles/netbootxyz/templates/menu/index.html new file mode 100644 index 00000000..a62f838c --- /dev/null +++ b/roles/netbootxyz/templates/menu/index.html @@ -0,0 +1,7 @@ +#!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... diff --git a/roles/netbootxyz/templates/menu/linux.ipxe.j2 b/roles/netbootxyz/templates/menu/linux.ipxe.j2 new file mode 100644 index 00000000..d05212d1 --- /dev/null +++ b/roles/netbootxyz/templates/menu/linux.ipxe.j2 @@ -0,0 +1,30 @@ +#!ipxe + +goto ${menu} || + +:linux_menu +menu Linux Installers - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap Popular Linux Operating Systems: +{% for key, value in releases.items() | sort %} +{% if value.enabled is defined and value.menu == "linux" and value.enabled | bool %} +item {{ key }} ${space} {{ value.name }} +{% endif %} +{% endfor %} +item --gap All Others: +choose menu || goto linux_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 linux_menu + +:linux_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 new file mode 100644 index 00000000..2923819d --- /dev/null +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -0,0 +1,103 @@ +#!ipxe + +:start +chain --autofree boot.cfg || +iseq ${cls} serial && goto ignore_cls || +set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J" +set cls ${cls:string} +:ignore_cls + +:version_check +set latest_version 1.04 +echo ${cls} +iseq ${version} ${latest_version} && goto version_up2date || +echo +echo Updated version of netboot.xyz is available: +echo +echo Running version.....${version} +echo Updated version.....${latest_version} +echo +echo Please download the latest version from netboot.xyz. +echo +echo Attempting to chain to latest version... +chain --autofree http://${boot_domain}/ipxe/${ipxe_disk} || +:version_up2date + +isset ${arch} && goto skip_arch_detect || +cpuid --ext 29 && set arch x86_64 || set arch i386 +iseq ${buildarch} arm64 && set arch arm64 || +:skip_arch_detect +isset ${menu} && goto ${menu} || + +isset ${ip} || dhcp || echo DHCP failed + +:main_menu +clear menu +set space:hex 20:20 +set space ${space:string} +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +menu ${site_name} +item --gap Default: +item local ${space} Boot from local hdd +item --gap Distributions: +iseq ${menu_linux} 1 && item linux ${space} Linux Installs || +iseq ${menu_bsd} 1 && item bsd ${space} BSD Installs || +iseq ${menu_freedos} 1 && item freedos ${space} FreeDOS || +iseq ${menu_live} 1 && item live ${space} Live Boot || +iseq ${menu_security} 1 && item security ${space} Security Related || +iseq ${menu_windows} 1 && item windows ${space} Windows || +item --gap Tools: +iseq ${menu_utils} 1 && item utils ${space} Utilities || +iseq ${arch} x86_64 && set bits 64 || set bits 32 +item changebits ${space} Architecture: ${arch} (${bits}bit) +item shell ${space} iPXE shell +item netinfo ${space} Network card info +item --gap Signature Checks: +item sig_check ${space} netboot.xyz [ enabled: ${sigs_enabled} ] +item img_sigs_check ${space} Images [ enabled: ${img_sigs_enabled} ] +isset ${github_user} && item --gap Custom Menu: || +isset ${github_user} && item nbxyz-custom ${space} ${github_user}'s Custom Menu || +isset ${menu} && set timeout 0 || set timeout 300000 +choose --timeout ${timeout} --default ${menu} menu || goto local +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 main_menu + +:error +echo Error occured, press any key to return to menu ... +prompt +goto main_menu + +:local +echo Booting from local disks ... +exit 0 + +:shell +echo Type "exit" to return to menu. +set menu main_menu +shell +goto main_menu + +:changebits +iseq ${arch} x86_64 && set arch i386 || set arch x86_64 +goto main_menu + +:sig_check +iseq ${sigs_enabled} true && set sigs_enabled false || set sigs_enabled true +goto main_menu + +:img_sigs_check +iseq ${img_sigs_enabled} true && set img_sigs_enabled false || set img_sigs_enabled true +goto main_menu + +:nbxyz-custom +chain https://raw.githubusercontent.com/${github_user}/netboot.xyz-custom/master/custom.ipxe || goto error +goto main_menu diff --git a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 new file mode 100644 index 00000000..1510779f --- /dev/null +++ b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 @@ -0,0 +1,32 @@ +#!ipxe + +# OpenBSD Operating System +# http://www.openbsd.org + +:openbsd_menu +menu {{ releases.openbsd.name }} +{% for item in releases.openbsd.versions %} +item {{ item.code_name }} ${space} {{ item.name }} +{% endfor %} +choose ver || goto openbsd_exit +{% for item in releases.openbsd.versions %} +iseq ${ver} {{ item.code_name }} && set image_ver {{ item.image_ver }} || +{% endfor %} +iseq ${arch} x86_64 && goto openbsd_x64 || +set openbsd_arch i386 +goto boot_openbsd + +:openbsd_x64 +set openbsd_arch amd64 +goto boot_openbsd + +:boot_openbsd +set src http://{{ releases.openbsd.mirror }}/{{ releases.openbsd.base_dir }}/${ver}/${openbsd_arch}/cd${image_ver}.iso +imgfree +initrd ${src} +chain ${memdisk} iso raw +exit + +:openbsd_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 b/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 new file mode 100644 index 00000000..7a2d2419 --- /dev/null +++ b/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 @@ -0,0 +1,89 @@ +#!ipxe + +# OpenSUSE Operating System +# http://opensuse.org + +isset ${dhcp-server} || goto static_ip +set netsetup netsetup=dhcp +goto goto_menu + +:static_ip +# Need to convert netmask into prefix, because otherwise the installer +# accepts it but configures the network with /32 prefix, which installs +# fine but breaks connectivity to devices in the same network. +set prefix 32 + +iseq ${netmask} 0.0.0.0 && set prefix 0 || + +iseq ${netmask} 128.0.0.0 && set prefix 1 || +iseq ${netmask} 192.0.0.0 && set prefix 2 || +iseq ${netmask} 224.0.0.0 && set prefix 3 || +iseq ${netmask} 240.0.0.0 && set prefix 4 || +iseq ${netmask} 248.0.0.0 && set prefix 5 || +iseq ${netmask} 252.0.0.0 && set prefix 6 || +iseq ${netmask} 254.0.0.0 && set prefix 7 || +iseq ${netmask} 255.0.0.0 && set prefix 8 || + +iseq ${netmask} 255.128.0.0 && set prefix 9 || +iseq ${netmask} 255.192.0.0 && set prefix 10 || +iseq ${netmask} 255.224.0.0 && set prefix 11 || +iseq ${netmask} 255.240.0.0 && set prefix 12 || +iseq ${netmask} 255.248.0.0 && set prefix 13 || +iseq ${netmask} 255.252.0.0 && set prefix 14 || +iseq ${netmask} 255.254.0.0 && set prefix 15 || +iseq ${netmask} 255.255.0.0 && set prefix 16 || + +iseq ${netmask} 255.255.128.0 && set prefix 17 || +iseq ${netmask} 255.255.192.0 && set prefix 18 || +iseq ${netmask} 255.255.224.0 && set prefix 19 || +iseq ${netmask} 255.255.240.0 && set prefix 20 || +iseq ${netmask} 255.255.248.0 && set prefix 21 || +iseq ${netmask} 255.255.252.0 && set prefix 22 || +iseq ${netmask} 255.255.254.0 && set prefix 23 || +iseq ${netmask} 255.255.255.0 && set prefix 24 || + +iseq ${netmask} 255.255.255.128 && set prefix 25 || +iseq ${netmask} 255.255.255.192 && set prefix 26 || +iseq ${netmask} 255.255.255.224 && set prefix 27 || +iseq ${netmask} 255.255.255.240 && set prefix 28 || +iseq ${netmask} 255.255.255.248 && set prefix 29 || +iseq ${netmask} 255.255.255.252 && set prefix 30 || +iseq ${netmask} 255.255.255.254 && set prefix 31 || +iseq ${netmask} 255.255.255.255 && set prefix 32 || + +set netsetup netsetup=hostip,gateway,nameserver hostip=${ip}/${prefix} gateway=${gateway} nameserver=${dns} + +:goto_menu +set netsetup ${netsetup} BOOTIF=${netX/mac} + +set distro opensuse +menu openSUSE - ${arch} - Image Sig Checks: [${img_sigs_enabled}] +{% for item in releases.opensuse.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose version || goto opensuse_exit +set dir ${opensuse_base_dir}/${version}/repo/oss +iseq ${version} tumbleweed && set dir ${version}/repo/oss || + +imgfree +kernel http://${opensuse_mirror}/${dir}/boot/x86_64/loader/linux +initrd http://${opensuse_mirror}/${dir}/boot/x86_64/loader/initrd +imgargs linux ${netsetup} install=http://${opensuse_mirror}/${dir} ${params} ${console} initrd=initrd +echo +echo MD5sums: +md5sum linux initrd +iseq ${img_sigs_enabled} true && iseq ${version} tumbleweed && goto skip_sigs || +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify linux ${sigs}${distro}/${dir}/boot/x86_64/loader/linux.sig || goto error +imgverify initrd ${sigs}${distro}/${dir}/boot/x86_64/loader/initrd.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot + +:opensuse_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/parrotsec.ipxe.j2 b/roles/netbootxyz/templates/menu/parrotsec.ipxe.j2 new file mode 100644 index 00000000..a3756267 --- /dev/null +++ b/roles/netbootxyz/templates/menu/parrotsec.ipxe.j2 @@ -0,0 +1,27 @@ +#!ipxe + +# Parrot Security Linux +# https://www.parrotsec.org + +goto ${menu} + +:parrotsec +set os {{ releases.parrotsec.name }} +menu ${os} Installers +item --gap Official Releases +{% for item in releases.parrotsec.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose parrotsec_version || goto parrotsec_exit +goto parrotsec_boot + +:parrotsec_boot +set parrotsec_initrd https://mirrordirector.archive.parrotsec.org/parrot/dists/${parrotsec_version}/main/installer-${arch_a}/current/images/netboot/mini.iso +kernel ${memdisk} iso raw +initrd ${parrotsec_initrd} +boot +goto parrotsec_exit + +:parrotsec_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/scientific.ipxe.j2 b/roles/netbootxyz/templates/menu/scientific.ipxe.j2 new file mode 100644 index 00000000..7698a62e --- /dev/null +++ b/roles/netbootxyz/templates/menu/scientific.ipxe.j2 @@ -0,0 +1,59 @@ +#!ipxe + +# Scientific Linux Operating System +# https://www.scientificlinux.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} || + +:scientific +clear osversion +set os Scientific Linux +menu ${os} ${arch} +{% for item in releases.scientific.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item other Choose other version [o] +isset ${osversion} || choose osversion || goto linux_menu +iseq ${osversion} other || goto scientific_skip_read_osversion +echo ${cls} +echo -n Enter version: ${} && read osversion +:scientific_skip_read_osversion +set dir linux/scientific/${osversion}/${arch}/os +set repo http://ftp1.scientificlinux.org/${dir} + +goto boottype + +:boottype +set ova ${os} ${osversion} +menu ${os} ${arch} boot type +item normal ${ova} +item rescue ${ova} rescue +item kickstart ${ova} specify kickstart url +isset ${bt} || choose bt || goto scientific +echo ${cls} +iseq ${bt} rescue && goto rescue || +iseq ${bt} kickstart && goto kickstart || +goto bootos_images + +:rescue +set params rescue || +goto bootos_images + +:kickstart +echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl +set params ks=${ksurl} || +goto bootos_images + +:bootos_images +imgfree +kernel http://ftp1.scientificlinux.org/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} +initrd http://ftp1.scientificlinux.org/${dir}/images/pxeboot/initrd.img +boot +goto linux_menu + +:linux_menu +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/security.ipxe.j2 b/roles/netbootxyz/templates/menu/security.ipxe.j2 new file mode 100644 index 00000000..3f3adec2 --- /dev/null +++ b/roles/netbootxyz/templates/menu/security.ipxe.j2 @@ -0,0 +1,29 @@ +#!ipxe + +goto ${menu} || + +:security_menu +menu Security Distributions - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap Security Distributions +{% for key, value in releases.items() | sort %} +{% if value.enabled is defined and value.menu == "security" and value.enabled | bool %} +item {{ key }} ${space} {{ value.name }} +{% endif %} +{% endfor %} +choose menu || goto security_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 security_menu + +:security_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/slackware.ipxe.j2 b/roles/netbootxyz/templates/menu/slackware.ipxe.j2 new file mode 100644 index 00000000..875a9e80 --- /dev/null +++ b/roles/netbootxyz/templates/menu/slackware.ipxe.j2 @@ -0,0 +1,31 @@ +#!ipxe + +# Slackware Operating System +# http://www.slackware.com + +goto ${menu} + +:slackware +set os slackware +iseq ${arch} x86_64 && set sbits 64 || clear sbits + +menu ${os} +{% for item in releases.slackware.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item --key o other Choose other version [o] +choose version || exit 0 +iseq ${version} other || goto skip_read_version +echo ${cls} +echo -n Enter version: ${} && read version +:skip_read_version +set dir ${slackware_base_dir}/slackware${sbits}-${version} +goto boot + +:boot +imgfree +kernel http://${slackware_mirror}/${dir}/kernels/huge.s/bzImage +initrd http://${slackware_mirror}/${dir}/isolinux/initrd.img +imgargs bzImage load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s ${params} ${console} +isset ${debug} && prompt || +boot diff --git a/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 b/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 new file mode 100644 index 00000000..bdb78ca6 --- /dev/null +++ b/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 @@ -0,0 +1,24 @@ +#!ipxe + +# Tiny Core Linux +# http://tinycorelinux.net/downloads.html + +set tinycore_mirror {{ releases.tinycore.mirror }} + +:tinycore_menu +set dir 10.x/x86/release +menu Tiny Core Linux 10.x +{% for item in releases.tinycore.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +choose version || goto tinycore_exit + +echo ${cls} + +kernel ${memdisk} iso raw ${params} +initrd http://${tinycore_mirror}/${dir}/${version}-current.iso +boot + +:tinycore_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 new file mode 100644 index 00000000..f36da1e6 --- /dev/null +++ b/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 @@ -0,0 +1,83 @@ +#!ipxe + +# Ubuntu Operating System +# https://www.ubuntu.com + +goto ${menu} + +:ubuntu +set os Ubuntu +clear ubuntu_version +menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}] +item --gap Latest Releases +{% for item in releases.ubuntu.versions %} +item {{ item.code_name }} ${space} ${os} {{ item.name }} +{% endfor %} +item --gap Older Releases +item older_release ${space} Set release codename... +choose ubuntu_version || goto ubuntu_exit +iseq ${ubuntu_version} older_release && goto older_release || +goto mirrorcfg + +:older_release +set older_release true +set ubuntu_mirror {{ releases.ubuntu.archive_mirror }} +echo Setting mirror to ${ubuntu_mirror} +clear ubuntu_version +echo -n Please set enter code name of release: ${} && read ubuntu_version +set dir ${ubuntu_base_dir}/dists/${ubuntu_version}-updates/main/installer-${arch_a}/current/images/netboot/ +goto deb_boot_type + +:mirrorcfg +set mirrorcfg mirror/suite=${ubuntu_version} +set dir ${ubuntu_base_dir}/dists/${ubuntu_version}-updates/main/installer-${arch_a}/current/images/netboot/ +iseq ${ubuntu_version} eoan && set dir ${ubuntu_base_dir}/dists/${ubuntu_version}/main/installer-${arch_a}/current/images/netboot/ || + +:deb_boot_type +menu ${os} [${ubuntu_version}] Installer +item --gap Install types +item install ${space} Install +item rescue ${space} Rescue Mode +item expert ${space} Expert Install +item preseed ${space} Specify preseed url... +choose --default ${type} type || goto ubuntu +echo ${cls} +goto deb_${type} + +:deb_rescue +set install_params rescue/enable=true +goto deb_boot + +:deb_expert +set install_params priority=low +goto deb_boot + +:deb_preseed +echo -n Specify preseed URL for ${os} ${ubuntu_version}: && read preseedurl +set install_params auto=true priority=critical preseed/url=${preseedurl} +goto deb_boot + +:deb_install +:deb_boot +set dir ${dir}${menu}-installer/${arch_a} +imgfree +kernel http://${ubuntu_mirror}/${dir}/linux ${install_params} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz +initrd http://${ubuntu_mirror}/${dir}/initrd.gz +echo +echo MD5sums: +md5sum linux initrd.gz +iseq ${img_sigs_enabled} true && iseq ${older_release} true && goto skip_sigs || +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify linux ${sigs}${dir}/linux.sig || goto error +imgverify initrd.gz ${sigs}${dir}/initrd.gz.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot + +:ubuntu_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/vars/main.yml b/roles/netbootxyz/vars/main.yml new file mode 100644 index 00000000..ed97d539 --- /dev/null +++ b/roles/netbootxyz/vars/main.yml @@ -0,0 +1 @@ +--- diff --git a/roles/netbootxyz/vars/redhat.yml b/roles/netbootxyz/vars/redhat.yml new file mode 100644 index 00000000..cf467b4b --- /dev/null +++ b/roles/netbootxyz/vars/redhat.yml @@ -0,0 +1,9 @@ +--- +netbootxyz_packages: + - gcc + - genisoimage + - git + - httpd + - minizip-devel + - syslinux + - xz-devel diff --git a/roles/netbootxyz/vars/ubuntu.yml b/roles/netbootxyz/vars/ubuntu.yml new file mode 100644 index 00000000..70c4e02a --- /dev/null +++ b/roles/netbootxyz/vars/ubuntu.yml @@ -0,0 +1,8 @@ +--- +netbootxyz_packages: + - apache2 + - build-essential + - genisoimage + - git + - liblzma-dev + - syslinux diff --git a/user_overrides.yml b/user_overrides.yml new file mode 100644 index 00000000..f69555b1 --- /dev/null +++ b/user_overrides.yml @@ -0,0 +1,15 @@ +--- + +# overrides defaults in netbootxyz role +generate_menus: true +generate_disks: false + +# set desired boot domain +boot_domain: boot.mydomain.com + +# set overrides from standard netboot.xyz defaults +release_overrides: + alpinelinux: + name: "ALPINELINUX" + fedora: + mirror: "iad.mirror.rackspace.com" From 026c87546d38eee6d73e9e98c30fe2db98f6e661 Mon Sep 17 00:00:00 2001 From: thelamer Date: Thu, 7 Nov 2019 17:43:06 -0800 Subject: [PATCH 002/169] adding POC live menu stuff loading settings from endpoints yaml --- endpoints.yml | 10 +++++++ netbootxyz.yml | 1 + roles/netbootxyz/templates/menu/boot.ipxe.j2 | 10 +++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 25 +++++++++++++++++ .../templates/menu/liveubuntu-default.ipxe.j2 | 27 +++++++++++++++++++ .../templates/menu/liveubuntu.ipxe.j2 | 26 ++++++++++++++++++ roles/netbootxyz/templates/menu/menu.ipxe.j2 | 6 ++--- 7 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 endpoints.yml create mode 100644 roles/netbootxyz/templates/menu/live.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 diff --git a/endpoints.yml b/endpoints.yml new file mode 100644 index 00000000..395e2558 --- /dev/null +++ b/endpoints.yml @@ -0,0 +1,10 @@ +endpoints: + ubuntu-19.10-live-kernel: + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ + files: [initrd, vmlinuz] + ubuntu-18.04-live-kernel: + path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-dc9800c9-1.1/ + files: [initrd, vmlinuz] + ubuntu-18.04-default-squash: + path: /ubuntu-squash/releases/download/18.04.3-7dfb37b3-1.1/ + files: [filesystem.squashfs] diff --git a/netbootxyz.yml b/netbootxyz.yml index 43c7db80..5400dbc2 100644 --- a/netbootxyz.yml +++ b/netbootxyz.yml @@ -4,4 +4,5 @@ roles: - netbootxyz vars_files: + - endpoints.yml - user_overrides.yml diff --git a/roles/netbootxyz/templates/menu/boot.ipxe.j2 b/roles/netbootxyz/templates/menu/boot.ipxe.j2 index 46cd5aea..46f9114c 100644 --- a/roles/netbootxyz/templates/menu/boot.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/boot.ipxe.j2 @@ -22,6 +22,9 @@ set sigs http://${boot_domain}/sigs/ # set location of latest iPXE set ipxe_disk netboot.xyz-undionly.kpxe +# set location of custom netboot.xyz live assets +set live_endpoint https://github.com/netbootxyz + ################## # official mirrors ################## @@ -62,6 +65,13 @@ set slackware_base_dir slackware set ubuntu_mirror archive.ubuntu.com set ubuntu_base_dir ubuntu +############################## +# netboot-xyz hosted endpoints +############################## + +{% for key, value in endpoints.iteritems() %} +set {{ key }} {{ value['path'] }} +{% endfor %} ################################################# # determine architectures and enable menu options diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 new file mode 100644 index 00000000..f3e4010f --- /dev/null +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -0,0 +1,25 @@ +#!ipxe + +goto ${menu} || + +:live_menu +menu Live Boot Distributions - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap Live Boot Distributions +item liveubuntu ${space} Ubuntu Live +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 diff --git a/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 b/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 new file mode 100644 index 00000000..cd4bea59 --- /dev/null +++ b/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 @@ -0,0 +1,27 @@ +#!ipxe + +goto ${menu} || + +:live_menu +menu Live Ubuntu Default (Unity) - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap Live Ubuntu Default (Unity) +item bionic-18.04-default ${space} Bionic Beaver 18.04 +choose menu || goto live_exit +echo ${cls} +goto ${menu} || +iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu + +:bionic-18.04-default +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 +initrd ${live_endpoint}${ubuntu-18.04-live-kernel}initrd +boot + +:change_menu +chain ${menu}.ipxe || goto error +goto live_menu + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 new file mode 100644 index 00000000..5739d0dd --- /dev/null +++ b/roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 @@ -0,0 +1,26 @@ +#!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 + diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index 2923819d..c665147a 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -1,7 +1,7 @@ #!ipxe :start -chain --autofree boot.cfg || +chain --autofree boot.ipxe || iseq ${cls} serial && goto ignore_cls || set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J" set cls ${cls:string} @@ -40,10 +40,10 @@ menu ${site_name} item --gap Default: item local ${space} Boot from local hdd item --gap Distributions: -iseq ${menu_linux} 1 && item linux ${space} Linux Installs || +iseq ${menu_live} 1 && item live ${space} Live CDs || +iseq ${menu_linux} 1 && item linux ${space} Linux Network Installs || iseq ${menu_bsd} 1 && item bsd ${space} BSD Installs || iseq ${menu_freedos} 1 && item freedos ${space} FreeDOS || -iseq ${menu_live} 1 && item live ${space} Live Boot || iseq ${menu_security} 1 && item security ${space} Security Related || iseq ${menu_windows} 1 && item windows ${space} Windows || item --gap Tools: From 9f3c1ec862b343f62cf2fef187ecdf785e08b5ef Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Fri, 8 Nov 2019 04:50:42 +0000 Subject: [PATCH 003/169] Pushing up more work --- roles/netbootxyz/defaults/main.yml | 27 ++++++---- roles/netbootxyz/files/memdisk | Bin 0 -> 25372 bytes roles/netbootxyz/files/wimboot | Bin 0 -> 51392 bytes roles/netbootxyz/tasks/generate_disks.yml | 8 +++ roles/netbootxyz/templates/disks/ipxe-dhcp.j2 | 38 -------------- .../netbootxyz/templates/disks/ipxe-static.j2 | 34 ------------- roles/netbootxyz/templates/menu/boot.ipxe.j2 | 46 ++--------------- .../netbootxyz/templates/menu/coreos.ipxe.j2 | 47 ++++++++++++++++++ .../netbootxyz/templates/menu/flatcar.ipxe.j2 | 45 +++++++++++++++++ .../netbootxyz/templates/menu/freebsd.ipxe.j2 | 47 ++++++++++++++++++ .../netbootxyz/templates/menu/freedos.ipxe.j2 | 25 ++++++++++ .../netbootxyz/templates/menu/ipfire.ipxe.j2 | 41 +++++++++++++++ roles/netbootxyz/templates/menu/kali.ipxe.j2 | 40 +++++++++++++++ roles/netbootxyz/templates/menu/menu.ipxe.j2 | 6 +-- roles/netbootxyz/templates/menu/nixos.ipxe.j2 | 21 ++++++++ .../netbootxyz/templates/menu/openbsd.ipxe.j2 | 5 +- .../templates/menu/rancheros.ipxe.j2 | 31 ++++++++++++ user_overrides.yml | 10 +++- 18 files changed, 338 insertions(+), 133 deletions(-) create mode 100644 roles/netbootxyz/files/memdisk create mode 100755 roles/netbootxyz/files/wimboot delete mode 100644 roles/netbootxyz/templates/disks/ipxe-dhcp.j2 delete mode 100644 roles/netbootxyz/templates/disks/ipxe-static.j2 create mode 100644 roles/netbootxyz/templates/menu/coreos.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/flatcar.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/freebsd.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/freedos.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/ipfire.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/kali.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/nixos.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/rancheros.ipxe.j2 diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index d7a065ae..25a60a75 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/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: diff --git a/roles/netbootxyz/files/memdisk b/roles/netbootxyz/files/memdisk new file mode 100644 index 0000000000000000000000000000000000000000..8bcf4effe8c27c5e2cc2ae538e02484a93bc9a25 GIT binary patch literal 25372 zcmeHv3w%`7wf8wQXC{+j;0zEjU#KgD&th>)(%Zb-KdaPF=nzJ-w}U+fiwMu7%@HuQhNMS6JGSV35Yt zd2dpiqVo2U*o?u9p{KHcXy^^bQ z+uydG+IB8ke12S-0RSH+hm$i5+{cEG4HpasW3ur*e4a7xGrnLvcglCl*C4HKGUu4X z{^akO`Lp4F-*0F#Bc+vd@((Cw2=dPDuMhjVR=~-tpXarAIr%OsH|{!iDqnk@+x6b5 z)mjs`D~#ML+?}pNS_UUiKH0;7gb#mWGdQoF`U#agIXNEXR|n;o3XKDqR1=*nGEUPHY3PAS(_x2<)~wz|CzPTH}V8z)UQKg!9mQm&LK?cB_1Ibpr% z{qxd~%$qrB%qdDaG@F&j8r+yNOMdys(QQWR~LGN&#UXi;KU1H zD`6W(x$WpKi^#S5pPpmpxbO%2IiGfF3Gw4P_QFyc(w>Y|SK6c}|!rPG5*8P*n zN&C(T8VT4vm1ln;aGb~ol7OoBvdU1pK0N(0O6^=Qmec!V-ShEHCQ#RciH->=u1P6ru5|9YUf#wLXE|;y z=QDAtk7|6}&oB-2e4ITw?q_f6EgpZ9%U-S_PGbf}t*5-K&9K|JGM_GZVw4^w{ zsCey|fmYTlO)@S_+&`}Ww>WV56>hbi+xw_gI$@!K+ZR@88?7Y{l{=%9$iJ%V|@WI_>^gzd;q80Vry2zuN-n?NUIrYF$at z?nYa6omjmLEbs%+nB|O{Dmcrng&$&!njs#=x7J`Ff$T8wS^(p~Q&@M_R{83qDEFs2 zU17D=)xviS?nO-udX7~#J1v}8^9jbGJb0NGtKUJ&zwlG#!ER2hev^uOu8NN|QE4{k zUnZzc>R*+nu=3Zi66PvQ%GE37MvO7AHw?NeKjtvN^kz|c5)IUYiM>;oItB5eM<~}c z-s==9PZ0!qjpZuL>0W0{+2r&F&jht2u^WRa%Tv3?XE=2HGKIcTWSRh7GcpD>o@`gk9l%jC*d2(jE3@&XLp7|4Aql zD}?lkWzo%U3ljmS-)-|Rv8VTzjYLI9dCUWb#EucYi*wZuwO89Xj1jFg*g`>c(f;93 zjw1=EJo6$Lv)9RZ6(qsb7J!gTg(*|)T;VFZH4t^NDBM9Z>VGU2-H{-)c&&b495U5) zvbFFCpxU))FnOtygepaQF9tqL8jM>7I>SIy=)dp+p*wUl#|4%;GazYcTG^Fw7%a;` zD?8Yf7M?^M6%L&Qz^4G%WEu(Gi4KmXf}@u)ca1Tw&g#02QQCK7X;#r#NbC@I4syjp+U3B5lQVN4OA!DaSu))RMkM`&v0gnRXGrxzzbXr$NBcros-SJEoR<3 zpl~t)-V7q{^Ow)AKQ(~=n{Nxx$u{4X_+}q3q{wTG^oR3kZm%Jz#Vi6c;uq5W|IXen!^l1d_=)B?5vIh=XJ=oCQ~fx zt$G7;Z+Zh-e>R(Js1lLVc{Ct2yMGb2GlWw0q9F{5iiFS@y@+OA$8HV{(tGpic~Wm- zyot!a&empS8g<8cV|1oI!q`iUrj$C3`0Hmw=HK4y18&T2s&-`rhgFfddx4ND?tbjY zfXqxkCa+PtqvX?H=+nKExPs27?j)ulF=Hq7xq~QyxtYC_5?C7uiOp(vKhkuH2)jP@ zlnVY7H|^hg!(qtEAng)Vpt{a$VqFCPFd21L+k*07AO3L&FIUR-NX+OA}@%X6j5 z9}eIQ@=S5hype&KVQCs{TB_uq6+1^#x~Eqp24-bS$`6NgUSnXE)3?!(2p6z%NRDjx zZ5%pNw)!^4EETJ~SQxqLT!*MTu{xLRU^qM)tFlL)$2|C^F$EHMw6r=OO87ZM0_L?NmV z$wMkLoIK~?MjZ0JKeMu)6cDCQ>?^HP+TK^{W~fXWnA9rMNSZl$gnuB(g7^nkOwp~tk$p)Z-#lwiegU-^~pMJ7M!h1 zppIGCcC?od+{#G+uFuJ*JJa3}b0 zWj<#etq78g%$%xj;VII_8u!gXFG%ohcG|g(hFvq!b_(;bwLUw9y2d@S$$h&J+(qv4 z#AjfGS3rR&_$Ol6VOC(Pb>FVET~J;#)VOaCE~1J*-dJI!io2-dr#cGXn%ge~mr=nZ zH$n=4e1$sebl=X)rdM7-GPoPJ>Q31d+>3;NAZduY!0GT0B%_a%bMMQj=z5i=KsN2| zK<3z4bv@RM>z#JxqpdI1p+p~{=_OL`6}eagBt+H%NqDmVJCT^PY;oZ|MAz>j+e%|f z@LwqNJ%nG_AO~d_#Hu0Si}*+fdaJ@JbP#gErwB>_RPY^2^}-iMv_Vvv5vKW?1Kwt^ zi3;R~YnDt`x}!(bbsbgOEH&<|>Q1pb38?gCXw|bwV$qi5e`q!q0`+YJ_@lMCV`?7% z8HQNPw5{gx?MVA`6V%6lfrPkc<1Lc9@86MBF_+?=%yE*c{07a+I;%UOMtPRq+!EVB_3plVwulWGlp&|AF6D3yt1sSD#YlSK3LuY&w z&4Oc@t`3>z+`_BWauQTI@NgKaRV>>AhoIN;h@hIxA}*W!K~~h|4=c8b*XgE zsJKa;zf@haQgyG2STe6kQsyrAPvSPqO+U(H>N$&M-9L{qjHFcf^TN;}E? zk(Y*@oJ0mN@tiBXV!4(JpRYATT>O&~P^x}Xf7+@pN!sD0OnrU3U7eqzG{(V`a~+&~ z6HxI-r_rLc+!Uk-H0_pT09v>gjTyy~{^SjwI;{$aF_TzAlBqMeV@XvaP{tJy?_bOqlftc@LH78ewLOqp_Y z(d3>?MjpLnTCiG-1w!9gJ4QOa$t2^!g{B1Ng%!=FY_xFlfaXjKZNb#Tp&csgFZAo+ z=rrJ3#}LOAj-$+|2;!CCv5hQU`(JPiU~{)O2?e1&HTyYZsv;FDkSZ2nJ}wn$z<)K1Kz#H9Y2B9 zZ5mLhQS&PU*~Z5mpIaE4j{I5VchE#-O6%%um4zzRnhtV!k`vn!wwyW+@e$QC` zZ>neP%DW?6s9iC6({N_iH02nV2HaLP$LU`rxLRCw>4&{$gD`wns1quj6CIvJCM7(HBtATe9Lc3GC-99`3G(WuT?GaHKnZsVcl5%Z|NN#YvHr#rTrod zyxNrbmtO5I^v6%4AOb(Bkloj_J5AJ%jg;)z$sUt@th@?$HPfJzCaJkY)MKzPHFIL> zPsi5e-gK>eWTZTfm5&yA`woU6We39m8zo4*ou5Rpv`fKbH1rE(!q|Sh{$#Xqg#d|( zg`AaQ7ZYqJfSNO8J5qw@DboPxz^dyC-KrG;kQ90)$34I;d0@D<0Ps-YU^IN1_Bdf5 zMZ*eWO1R22XKrz>oFML=V^Vq?TSjBHJH_1@cK+%t>~%j=FH{|pt>T`#TfuL8$fnfU zr%}*eZgSPBN(yEnqHd~^icDqWi-2Q+AW-n7>)a<6fbm1IJ_wTWZ~tC*IIPF>GX0~7 z=deyO*R9h}v0~mE1Dvo`ty(Q|YAYh}DmEf#)mEiVl%RD()Gjh$4vjgJR02mnC3oh+ zB@$F~2*Jep1t&dYSFCton3f)5EOFJroMrGb>2<2oJ+wTla!+EA~(jX`89jZR2v5@LQ{80G4-V)gB?w%13|f_AW_L$vzS z;qU`IS;sk8w!2yu<3P#PqCH7`L}6}j;Wp~00Pt9}Tu1O@6fh&rYrr#1+XOtAQl0wy zvFJ;au=BZ@P#=sS#`N03H7y;u0ZI!)f*JV$uO5YtP~QOIcz_JoL5PB+i0Ll;SEA!x zEO*d0v>p<6ZBkk_BdBT0a;DcTSpr(lw)dkY?Q3ay4qO2~>L@L@@LB5Ohv;JE-63n? zp1z#Yn8^f)q{4N`b;8vWWOlUFqFfD&RsRg47m3xh(D0}DHwx;N=+ESv{kd?Ac1*yJ zP+r+fW7h*xp@9@>y@$NM9cvnYDT9;C^n&u(z&0!g!j$9qa%<>rJynqeK>tQNwWYm3 zRgO@?e1%wspe@P*zd%_yWZFj$rOwuV4|!v@+EfR!<;N&mcd&uHL|uof_tLr}^lM$% zEoy@r;iEsUtWTnZ@_W34s;MnPYp&?2GP^i%{m z5^0Zx2}**AO;O*Aep9TP2Oz$F@NrOYQCA_f{HFS@(i~R)99A=&*g^@fFbaEICtk)H zH|%$*UPMQKAm9;`{z=8iGV|0dr@dl``ZvV4W6H)=#8SR2K4e$wZT=rz#x#3BaI2q% zUR`&@rtD>u%Y)rm3#O{a)Pq>F&_Tf6sI07~o~lpCc7G8IU8^%KZXgMr@$>#W;n>1T zOBlOiq2j%=A?bp%qLpQ0%S_041}}rK+AuadOiKY!uJjM2&R&K(a6#fkU|HBdirAX| z_JgZgYi<};;`@~k+ zM4${xJ%90OzBTbEn=z#^_L{gWXI4Wl{;b-ZpvwEoyHE+J_~uNn>6LSlwB2h`@|~Nn z!kh(iuVO3JdyDvp2gE`aHY;ts(v7nc*g1b<3j@}Yw?;{)}iC0Ly%bSa3#ZOmrY8$Av6G8W?&KYL|tNi^;y{lOz|l! zh7r2S)tSShXQ@v0)mq`Enyl1O012s|P4zlAJ}6*ky-_`!c$&HyERTi*IR+euwnQ}v zMn`7of_kj$SbfjvF~|5L^AZnZ?;XW?qp)U-sxi7@USm0LJasLbn~W*$&=5wG4e8q1 zV`|*I(qJIOcKMcTh^@7d&>EXDGj#4o-0FK+5OnjcSV>0BZkioV37uEF)z20xSHfQF z?AldH@iq5_LmdHI3UD1yY^Xj#MDmQtqg_YqyGM^X7!U?4jjP$z>8DW*>Zv}1-KMoc zag|F}*&4(mkJH|U9*Db-``#ENAw1)JfLs26U3>9En2c7XF%3srbZX){Q5zGF_1pmQ zz(MUdXyFFkt*Bh$Y7q}u0(Tu%E=5;ZGuO3P152$(Lm~C(_aho=qZx5R?fqQxNEhUsfLy2`A5)a5+;9fSc z(b?+`Spy3O9SxnPwF41NsKx|}4Sp+-sc&@srT*&ZF&D^chOFvm1O+aIF=q7*<0pCG_uUB6~#|``uf)cmwKtFoJ zb|oB^qroTs6*z3_Je=x;MYgQiOMLSW36(P1)rRq_Ac-TfF)eE1#%6}rpp79k9BC$+ zUQ5j!Ua2#L=4UPp&EALg90w;#D3z=0fk8H_Zvfc{U zq_11`E$uK4H?W#eKgn)4A#~8hapR!{C}B#8^Feymfq9HJ?avfYXi(d<$0^ZT*+_NY zZ@@tw`3*sP19EgdSBD(E_Ctr6Z`7YNs7I6!jOqpTFKYAUi%+X>UHlcgU`L$|>YMfF z4LH0mI>_T9IW($0>U)NyxW2+9NL@hT@Wk3zNg%hR%WG+BJrGHpTDV77% zmZH6XR4&r|CI6%ac)IGQj+%ofqTY+CK_eQZcYANHtyvA&8k^a5Ox%5_{h{&)Lv!SnoWe6E*g)1`uZybyl~X}XQ*SQf4{R4*}YkSaJ2-goD^r&PQa(S z>ijVehpV2Tg3NSHzL2h0$|L<%&N_;jp#pcTK+yC=`^PYx{wP&&vhx{b|D)6phnh2$ zp22blEjiL{PLB~TlGLBc9-hknst6oTs0H~9X+?URv)ri0IpHbQDCW+Ox2cEeNZm7J zyiSl<<3V?`__~lrE!5`m`?nJwge9}YniZ&1t5`vEmGeWQ16SY)HaLv24LPiT?5;4Z zlTs(3Yr8kfI7QtkgwDEJ{K9|3)W-VvR}ml-QQgi`>J$5M7Q@X-KV9|?@KPmRAhU}? z2pJgHDk=z6{f^*JG$&BS*nngzq?JyaZ7%cx8X^!$u)EmY3V0{LBL3)6n0dfi0&~KB zoe8Yr`j+z{v>C* z<{8Yl04mp?q@B@ z)nSyIIxG|SGHXyK@%{+vjq|RX**Rb}Z5MzIeXr7J396oMp2<9rx*Sf-I}s$>)$RM+Kn{#+0>*4R9#Y@(#|Lajuq8&UjGd~~I*F+< zDz9Sk*(9J<2EU4NG7aUn_WyuFU_oO6Z)|82yK46wu*^;Xr!9cBv4z?3Q$&6r z&FSr)(TrYf>1wg6f&|B?apXr5)K!NC{zB+okg}i}OLDKph5Ior^a(wgC^0N;bH0Q8 z)GEdguk{YBeiOY;Tj*VAKuY^>VT;2UBxp+&+9l*5WLcc}B;LbYBtF?NrU4co@`jy! zWg{68X0G*Zkppas1&8A>X4{So%#$iO{iD*5*g+Nu)rgQ*MYm4F;U{PSrK!ksk$eo? zmdz8Vy#UXEcwx<3$J?R>r_x{{-2h*N(BJ%mlZeO4KQ@qrw~ijV^T`(7Cv0 znZO?fKP;FDwdeS`#7kgAs%NP7Ouu$b;6vzRkP|be1Ej?D8~#iTU#z+U>5Nc+u5a8! zwY8r|(cU*~pjn1dAH=A4UvCF`hiVhPq!Adf9&43XuQyM8m55a#J(p;LDnANu<+xXf zHR+$h7Mu?m61%426{~Uq8(&Kz{?$(sPa_)HTQ(x_Br!7ZFx}N2Z85?~{8j!+=%(5y zOw6-AVWvlBdbfO*Z{lCoSuPLh$L>b70lOich^Rl*{thISCTk~iqJncL6F(+<*z+_x zu8C>onOIV{NmQ@PrgBNB7^+PJzP?Ff%+}NnrERo{$1JLXv;Le(37K@zAzu!fNpsi- zX9UXAIBLETB~cq+adTycGahKMiSEMDgo5+_vv?UBHYYTe>3sWN$Oj0|eL5YA(yN?| zQkPaG)SovhA!By>XP#K)lA)qa^Y=sFOyZ#_SB83rMA|iHRV6?nxa?3ne3FAabO29! z$1X1S0R$KK;=Gf4iEb!L(>?+=wMoH&N1b;F_Mu|+okRpQy4|fOEV>V&aGRr_+S*-b zfgk~cw_&F!h{{|H4HE2tBxyKC@8bX?@nguYeM~Q*4G1LkapLY=UOjgFeByB&o(M{} zSb@XK7ZcQ1b3(h6Zo9lxxx|B)zxX^RjTmFZ@=XaD0$Ib2h(h2kCW=`EW*LE)Ou8*# z+l4(~Qe`G;W8}_&cet^A1?gw^U^$n#I8@92Qp8a@x3444C&crN3~3UOHfL3XbF?aY zO}ZPkpgavQa~gYbhvi9v zGpEI3bb7rG?}+4`mWYH~NWz8O&oSgBf5fv+Uxq|uuFouBT|tLzjOVEt>ipFLYzmDuEg@7v1!Ng^U)j z3eIEa=Ie@6pw}^P8nJ5^l=qFaFZv|lzN#`qxRW|ndJM8vYlRzY??7MGhazvpj$*#M zUU@(2`02#g)K`@&V#Uq0OVy%v+-m#rHVj>eKB&BE3AKrPa4=$5&f2d7wtd0~{2ZW) zXbcV~(woF;3exJ07Eu6kiE(#O+Z+BD$iYaS;TF^wFKJc7vS=Nx{GM%cTc5PKu# zEaJ7HU#t2!hA}m|l?EL8-dwR75oAvDKvrS*MyiazO1HtgQt38&@0la#1$Wcpby1`y z!-@6wdg$d2LZBY3KW$Xnq8R&j(Dsi%x|1Gk--i$(?fSHlj2I;nx(&9H;#|6bBNSTm zhCU7U(&MbYeEBEnQxN8sYySaKw5*aU(?>(`QyB1|4J*~&FyL;ZSoHC zWgt!$m44h~bcZgwl~eZ57X^0#Mf&lIpC-Piru(rdSU?MAydE9eQkj-J-zbRH4*`?p zUuo`a;6c+tz_+i(SUMXl$hK2`1{97~HB^(KGjAP^D@LMWsj>#7UUd)e1qzWOE> zD0oSPbSDLI{bmzwI%v<$CWxX_Y+J4lTZOs1u8S($gR28+2i|O=eK}op=EJmj?`Y)4 z+n#(16shkX|0r6+dlG|W4G1Ejy0X9JdmZOAodCSrIYj7Pr)}!?B z@<(dSsG@)EOlZ#0{THViSWy>kij;6VqMkm;9wNorBjeb0r3uAX|y4loXCk! z92|47W~tMNSK(dYjq5Cmjhxqx7grJ1i=Kl$3VKyvy^cIKf_zv%Eqx0dJGwht*E4b%{PG#IG4{*RynKl9d4=mxU|F};28r`8?5>Sg z4mp(e0$-0vI%OX%oj`an_k@OS? zw+P=bD=03J*A_Z96l^Fd+eG-Tx7D#Z5{e7Zb)>`lH+c&@iB?X^=gLaBvI?%Gm@APa zE_o7Hn9q&%I2>a=pj`iI+!V*65=U9yhWsMWx(G5)X~CKzsi+`-jFnp)smb&9CvUB{ zFp{-$7{!LX;(W*YqGF7SFrzO|ftOn=gCSgzr-aL1?^s$=Rs_OlEzfdz@`{VRn{>81 zq`ac_1^LO=elYi!V90C0#q}j?{~j=xb;pwIh0C}#+?oyf+`?IlIca@KY3U}eFt041 zhID12=^4M@s^bJV~7svDJaA*hWu^p&yg_JbK6)?Vv-{}D+{oI1kaawNDMiT7gK?u zJLWE0>TpdeWVo+o&>v(NlD(lMzW|e7!O6wzic2br9b><23@IzOv;_0#@D%+J-;so9LO5vz4knsOj=c5j zOTZT*d8|CYKkJJfrvOx+UQ8wkXH&R+2mmY zIcX#Kvc4pbzK!X)24v-2lhV?rFo@KR4lpJ=EyZ;$Pim98k*26L&jab)bUo#`rVEZ+ z9Tf%NEyJ7^7C1_Z*KcylXx zBZIqZ(NU4dfxjC&yrIz&nN3*|?2inF5sQ-?vvQYG3PYNrk89T4JC-;Kejpc>ZXmYO z9OxXo)(Yabw!~3U1hw`S=6S8$iUM%a<7IuX&qG2VY*DeJL@slzL6L_>&PqMd-Ymw8 z(z25KiSo5zj3?5>Q&=QnDvLH0d3AQWa^QSl<_^yeJUYJUjn{-32Ad&-f z3o5=1_%-`R_Qc~YgP3?rN*wF+%3ubd)+8lXZb3v=n9H7Q@ zFvCk=tez4WD$-UiXC}RM$NdQU(+ zk=G^Q8ZVX==iR@a4Zq}mZytJ&_!KCSl}m9=n3y_g^6hEqdH1i$FOd2b%$()U%Ff|* zYi-TC=DJ`-``lz%9tnq+#G-3GU1R(ShbhI^9st4$Gk2^b5dD_uux5Ju+L5z-Hg zjfN)kzWf5unzEu&cuOECSpNm;`!)J9Z5ye7tR_>vlT6aMj?Ok6x?1fI_{!ji;S>Wz3yJSYAd@lWsL&^+MHanOtH4*oe`Ue95H)e2-nXe91-i*E{-()aUz;^m^^_CH+#->PY#QbjylX_f>!e z85~6?tsLH-oq$9F{=e~M<&GINAEVHT2=>6s=Rd_BY^ zOX|2ZQ}Uz3Gfc@lrlXpxv zC5O$KrtQh$_-+CBL767(WRrc^dF};bOpXnCj&GhRcz$>j*Kk{83Ua=~rPHjf0J^W;*pytH6PHb!N z$KPTaSMy!RhYXGQ9W9==dJ7q<~!*N zZM*wLKJ;v-InLyJ!Qd6${^1>hx;(}|=o3L*6kBuesFesiZ6kctW9@evv>$QWKD^qW z6W7pb#yOH~(H`WaN4i4oFB%)PGQ^P@YKO<0YL>?^q_WtY!#PclE^^eyk22NVYu{lr z&3U-7uFY&U+f8at?2bXEIW;-MD!0Th%$8l1TShL-lD}8EW%%4B@^>n?44FSej%&_| zAG5GIXJj^R!?Wf#=L}gg9|(b1!&gch@S`$|VkL3+TfPrwNb{%0+fAN3kliv273M*v z^kz?HUAy_=*QKuaCB9qg8fQ02e5-$p-M`2o)xVE--QNWGqBse^AH=^V)t`!%jFZm@ z_!*rJp~3`+sD_nzFT6pj?4`G`DYhypJuzi#;|GnF7E5DJ$YyC@7StLMN6A0?GW{0O zr{g3w+m76)l7B@vGA8^l6C{5W@`5xT4^gT2*c!m74QW>`!BZ(HRJvbUyHE^khS!JnHf#^aUlw{P zxDmN7a|`$t{QbO_|1SIdkgs4*FMpY%l8Q+FyL=K-x__jm%>O;!_oP?9Z@g}-zp<`= z&Vefj1w32rE}6e%lLwned1HSVO2>0XaxGtR^>fBw0r7RkR_-NZg88WVYi%fbHrUWV znXlQaYv$yghs_Ziy4uWa=qhuc4P9ksHZ;eq+t9;i*w8{Zzdahj?;dH7xb77z0XWG^quQA^q6i#?=>?U3Z%@2=9`%f zy~j*8bb-0ghUS{dhAuMykK51$Gi+$(7W*^H#Og`m<{bO7XPR^3xRmCc*eDLxzy0`C z?cX`=QyyU2&xuS;W9c6go!fG5@oy0hY&1VN&OcD;8ChmeuP-yGcxUt3xpOc63J^h# z|AL9mHTN^oi_Bj%(YfZoZ=#dTFwrUI{wCV&FBd@3IQ+C$uf0qfCn=kSuy@!vc!E^| z-8Y-1`j27pFNKCFy|HCk1QCO89YxEt#!3EFcFN-`X%h%`fdNHc3v3PCLfL4&vsm&6 z5g!2p)c2xjfKe-PH;hyA4IE28|Mkv-zPJ0I=`1qL$vc*snX_1FjyQ{@7z}e3E0JK% zVxGC5vxqTun(s4z-dWsd{wildFMq*Vykz=z&f-4vb!QQz-&|wA2KSAe1)SX1IE#~T zAe{&PN&S zhB!k7KiL>(xCKwL=d@R&>qcMm?S0XImJf>O67>Om{%*i|MflwVNhrrs-hux+7T@J? zd>-tp@>cGOvBsPg_43#430CX=EE8MYYQMfGh@w3~6!rvB5r0-^POh9jJ&K#>DPfLn z|24<9Uw3T(9&v2bqiAywMUL&K%&}!gMK%Xfk)qP7a;*cXA-$E1ewnzESw5>Mg$BtzOy@ z?>Bo5p_s^$;Fc)m0{6$E7k`Csbn1(MuiZZ(O!A-U61T%8zNovzV4q8TvCkz2`&{BP z{axY;xWre!;1XZ?N|$JdU4cs+0#W=n`=?j>xkUT5A4vU1F7f+c>k_A6Ed-aCVXhfB z0|SIhoTZm!p=7rCK!W*Oy2S0|5^uN$^LhMw_&1f$V4olHkFuxA4`$CtBl!$|=Cza# z*>|Vb*P;4KzxnejA7>bAa2X!u=Nnyy+wt6Fyu-K&A0qUBm7nYz^#A?-awylM&+~uR zyWX|l^v(G;J?6c3u_~!`!$A2#540r_Lz9-GX%5}T!eTce+t8#}J zufJY+R1oIn2tw|9lkn(xf&UAFk%JL%e}=w{c;{A|1!1rteEoufUjJKv{|e8yGX7o= zqE`w+{cN+a21RHf1El?5`@8A;wY7z}09_vb{~N;V1)=SxCEt5!@sGZD-@Mg;15fz- z68KJ#NB96C7jk5iwPPj^18J>6ay-69M&3U3mxPQAQk-VTJRo~K^k zOhU0m7>@{I%=uGmZ~9FhFuYXnGz&NVCYyqf@?Z`Hmm_#otuP|fSfLFuf{;w&@#6az zzn^`dSEWxz3DALmvq}FiD=#hQ0GB+L{ose+|Iv>^H!Z07!6hmG{`@xw{>_1ZbKu_` z_%{ds|ILB-gm=WTrGjw3V8y6=$=@$?`y=|s)xHS+of=pB;s(Ac-T2F&^hfdUXMZ9j z(}e4dLJ}jdAXF4aCH9$nR#j!Wq!yoh3}#BhF)~0TWzIY?KjgsUQOA-}F+Va7wg=wo z68&9KkB{nS@K~@0j~~8vYdigt-*)L&y1B&KEqR$^HX(^o7~fG;W(!AYs0)_u1i z#7Z4xVIaQLkxKwRHIhd;6&-<^6-O<+YIF?5o%LB*M1)X=#z1MwDb&I507Cj8ythq)RToc(I8Y;=n#v1wT zJ(5`3oH*K2F3HDSl5%gZ#6pfdiTNCpB=%9Ve3B$@%>{435-{g)D^NG3)L{)@C8@I< z*~o+p0Lx8*aTdM?D4m5L-iHtn+}$Dg_1h4;~_!VL^d_WuK}OEYG@2Nnz025 zAg_wZV<*veC+_jF?{QbV=eqB0p`s;rmWo9)?o%PCDEe#2rUsmnV#&MO zi0WmG!b?(S&s%6*2m=d_al@{2qbV7%4&=u0er{}s zIZrU2!tFlA^0%u{ikdYGWJoNYd^VSa1H2+Zl6-2&fzYFlY@fOq?SV4vT##vYK{))Z z6E&3>O3Upl&89a}470PuGm`u$#9mw(;oT0|%e?A6j=(~}{U&0-rd}`WxQJq^SSS;0 z{38%RQY7{%IGIUAt66V6LUA8$&gFSeAYn=sVw72qfTV;V32MfhUni43c0z0T9)WJt z8u2Z${UA#F1)2kGI2P>%c(r%|N&pJ)Y=Rv32cuDlkK&zTA`y>FT9D@m?L@2ZOhr}b zNOFFO}W)aO+8u`&o4$^B^b3>gD20&?JZv8L--x^U0(#aX4bYh?UC-u8BbZIT}Ig8kQplBUoL@ z5l{R+L8!&8;27$-0O;dIlp+^z0hkcZ)E)prK&MrAsisBRgl#W%ORZY zh*wrRNJ)|IEFj(Kf=VoP1n~4Z=HWSuYtvsj>H&+-wT@@>z$=b5df;`(YkJ@Qr#O#OoX087>!UcYkK(*Oiu3v?&eJId zgNPB(XD#kZcSYfL_pAypJ6#S1BC&IuX!Z+fhA>*bKNh`M^*LNVW!^kVnU*K1>yjdp zn?AR>ndVN;Lfv((78(x1f1xWzb{wsB?L1O&K1XihZb_K|J-FWoRcQ6GoumrY;-7L@ z>KAGSFhVip6>j&lZb`{HbcIm}Bx`{h8UrXMxs%U1+BjKUXM{w(PXWs;U`gDGzqgPICl|YtBmrv1(=|ARYt&y^8@CyRkVR|H1}N8G zQDTqJArVE?Dt+v{tiOuKAA;EbfcNR*^9bt%#^zF=XpuHzY^1;X7JOAz`dADchN!PY zoMd`vlGJoOT~eNNbmCjgpWq;ow?nQWsCfDu1$fTlod7Bg;rnyCQlLgZV# z6KJFFp)$ohV1XC{3&apuAcnvKF?8X{vE*?qc^nI*Psal3dj{wreMB3CkA{r1We~G- z@Ki|bE1#Ot^kZ;XwH#Fdr)IU_i;o^ca$?$32!mtEXC-3uz`^6o<>)uX3jy>5@&U^u zI+ju$%L>B6;@`^52iT*?s}Hbs)q;Q_u0@I@#g$*8jQZQ5h!P0sgWUyvjQtu^tHoa< zTVd4CP5>*$m5{@##mWH5^ZWsMeC(XKd9qKPZ_p|sD;N$eK6WUPDE!hDbdD<;{db+zcP4KfLi4pF4q!ot|QR+wn(`Vk~)qMCCBIMLqaeGk=76KXdi@IhnSv%_zbl{5l$)cdCW3D1thM# zT!*@zL!HpJa40ciMs&4-W+kPeQk&CnfL3Yc~uO z8U|*9E@t`i9MmV70`-&70_!-k;zKkPaK-W-a-g<{dBlEgGO+uc3327)0E|S%mCGnY z|`E5RDwDw8>{FML_NCDN$ zsC>2f5xh`&BM9)a4zULH12h?9uf80&@ z)n!&mx!up2ysS-PyP%BX585dH#~uGoav73+N+s;KOEH+H+rPnb1Hg!dp2DQwq0U!e z;5iMA6~uri!9+8Yoi>leVQ?1Mquk@j^E&s}-s;Ogw~>ZO*jrM=IX!e7(*sGI)&YCU zYuHcY5p3;`ee5`8Kb?s-*^&~i>wycZhYA@`U82Ox-X}`@td%JF5|r?vhReY$*rQ4i z0&zl{4PJR0lE35C&xq8aO?QIR%W}MI+s6MwtS`UE=j`S!-ax7EBNZ(k3Dc{X;e{5r zlQjkFar7q2QV6NvuibJd#nrl`jY7dk*B5X6y#eKsDKUi})9F!07VBuzn|NPUufMNF zuS;rVgO#YI)clNS9mPk=0fh3T)jFY_wVco{ zyg=xpDtxh1k{YsEK`Yb&mHaT3jG@}=36b zAVd(BNx*{2lsc{jWAZ3)6Fsibmcer7%!OE7onr3Kcy>}b#0gz6PR!u->SuWW{4Z6z zhGVNyf?~Ptv_U9UuDKmA3>@j6NS7G7HVt{5#rxiZLT5GysXB(S5=u^7*?~zp3fh9S zO|Olmz5ucuT0XH+E&h;~59?53V}1n?El6Z2i(r9He2$~TY-mw|_A*L<(vSRn5M`VA zy3Qm$AA)s#L1wuZL1ato#b6S% zEWj7x!vv)ULG1w`#e@xADC0QCI5GKms^fm`T1={mAS(z`EZ;*SvmC+`Fuz3;96l0dZr7|H%w)lAD zCo_&&UceVhv7Mt*EbH*)l^@R)LUVkohsgQ^u%UW)(Tg-DYy(nVc5SCb96<=VS0dHR zUY!IX@UtxiczI(#cHu?kc-fEhc*5@`ynL_`R7=lRDkp{!E*Aa?Okw&)$E8Wv^)Q6r z+(blW7&%L_Wd1erIk+99{1~WgrjTkG&1ouri@sR#@AwPd!%_=)tvc0k%ivEW_4Qq# zUCI$<-K^s)?aPo+Mj2iMaU{W0kpa$?D+q{MS)I6b2~hCHE-s@WEGjnc0pvz2TTmhJ z08I;7O4Ht)M(N{bVu+NKanq>;a0i)EoGN|-VXxfP12S_6NVPPa;SF>djjH$~?53&;}!p}X0U0xcG$u3VryLuJBo$TuTlV0aeuUN8Ia%MWj zCy${F*rR^MlP%@Hk6EE)*yVFJiSiyQ9HxplAM>B$XV;_1{13d&Zl5@cH zg#8a3(o9Cp%ixWVeIYIS9OK=me$_k(HL9Y#%5!;>Kn195yc6w;-aw3a63P_P=3|Eo zqwZu38S=?h0d}T(__0zT1aNkraC~qone?(hEdegb$UOZOr24T)J^xad z!=FGN-*+n{_C>i@eJ%MoW={XuL%kYTQOqH0i34Hd3ANhbH>0Z|>z~d&%aTEwS(#iTPiXl%=r$2G3A4tGF(2^5u#Gf@ zE|XMGRAQdhc(>vGOk%0e(ClN|B_;eC=!{2slb`W6oe-tTWB#-U{=7NR<-bC}>nw$f z-&Z=h_(_T`!ED66MW{zXs>NY53Jr&;KBiHd)9DeHx}lD+W{c$-LDbBkN?KjT)b45_3|sidos$qVrXiz=c% z#gDGkK&3Vupr^#KhOL(FkN)eBGDf^|II--r}RK7cixcZoObF!}iu&l;52s4TIIn+{)An@v;woe~TgYXCKg z5IKzxITCa9=245|i{Nl#XCYCn-DmPd{e~v(hi)|B<&x905nec@Vk25EYcX>3rKJE8 zA!dne%=h~yGC4UU&4FLEurK~l>L+;7tG?t_nseM&~! zG|u?&u+ycEEMv&zPNH{diFbfP-s|3pj_DHl zH|yr<<|=!?@N=!(1%@meSn@}_jLx1wjQ3=$Id34*i~=ZS}Etz%5B)D>h0DDn0y~=0H>VXsr+31`>~U^tYjo?l)2^Sb6?8sj#X3HIp2T_~?9NV@4<&Z36J%i)z8UUG zkb6Sg0s0|ZUe+42)Wi@eDJ8H>VC5}X?PX?%_6q_?Mrm1tdDhX|<2Qw_@hccbK%!0; zCzO2z+O#DpVxAz3@?%{IE?7?}*2}SV5>+Y+h7U(&>|Uz zC)y$H%LkSdz$!?tmz{)q!g{w4_NOvQQlIGnek@~KH6KTVHDR^*GLVje?Ftx`voCQ6 zC}Y;aK$BRegO-P_@;MVZD~bo{IgXLh_Je)h9OtF2HdRF74WLzK#W1kYcj=&@$O)!8ra`Du|=%yh{d>c$aRA&??_ElQPDxzonl zuiTN|hP3o{u8X<*CZ&xb#AI|ym?fFrN~T%d;bxg;mPy+PVCeMR6OL28Y*<@S{j+?k zAFIHg36i=ZM^eL?ZpA#zeY4qqvw7sr<`KK1%sdQB_-5E80+5C~C3VbpOuapYr{5&; zEoI$>yU%=qTC=Exot!@PMyT`(0o=2(9Zk&^*r7RwcF0Zk6jSLNnQoKE>P@yn73Ux> z6Mf8va5lnrG`78IhtVrv2p}pm{9@s5r8G-$n@TgSVw;=c#VL_{GsA}==v2u*4!6Xn zS?~8;ZHP^?op|q$EH=%)debKtV$(A1<7d^yre(M6#?Tu}1Hl4(Vm{R|0*d)-^!igi z=b=zOMq*mVUo`_Q*bLn#AH03t?Tx;y9B4ox{0X(`3uxZNZYqzQYFLm#=5y#kP(5j+ z4bre4kyZ~Dm?RN)5OfEoh9q0u5NU*s28Bj2g4}sKT47RnKQ|yZSph}1$^w9#Hr*Z~ zr+E1SYQKpq`Kx%*JUF}#0Sw~uIV>LdudETSP+^?ZOcaW0v4`^tagA znv1=&1q1fZzEuz3l6D!KcnP5A# zuwtYE@dTfR1WiP|!r=*1QjB2oB{Z}MF8F^vUGxH_=AJIOwmUTYbjdg|RHl}6 zYy0^a5SpsW0=TBN^Uv_D_(U6OP5NgZK5h8?tNuBvvXTmzO9fP>3fR8bC?w30)1fd3 zy}{GPJe@Na3W4(E2b?v`)3N++s_nCs=}Kf$Dmv6vw6x4Bx*84$-O1!{XcKdO8{f-p z$e?Y^@>UzF(g`G-`$|PuS#lylan5T)hEY3UH9Ch-6jCu8s2EzUet?)t?G=!7_nhEQHy8!AbkO;LmakU|Eh+^9mBCY#<%h^J=dR!% z>x@E`mc$SV%rb8=A$(Qv^|y>dF!xnR$i(GS&4AcC4qLIQ{dx5ha$!_m@Ff=Dx!{!t z6pvN0%e}+H=}Pta?eXpC#d5DbJiex3x!G`M_kkTv@_3J)5OhbvQ{AXq}L@j zZf=F>q}BH>4%=MQR*kIh4TeujiLdH=9}cH&Y@))hqT~Mpr;jPIVue~g?PmI7NApHGZv{n2Sg!*C<{`%e} z;Q-Joro!E-|A?2h$cMyLzuW^z`JLRxQQ|A@=BA@&wkN$Md{Ffq$!~Ld-g<11x7CoF z=x%iw_DK zy2c@jC#qCz?ITb};@LXH6AkYoLOY01>x@;N*BVWUGi1{~yR`ssrn{XZq zKRzIVf2kqe@E2E*b){^8nFpKSyx1*X-V9Ni< z>DNh&5{Wb+s$cQC5XxvZjZ0V?D-N?y)#}6I=HV-MhpweI9|41=Byqe(8D2xcjTLR; z=G~O=HKssvi!t%pGHVQ1<&8ojlhBKksRgV_X zdI$-0@V-#S4A$)Is57#UTg@W`bwSVFb9s-Ek6BeuCKQuB8MY(ttmcBxV-sDrb%rcP^m8*6GhU{7y@8;;;VJoQI}utlPLfNrTI2onlDXm zG9u@$zMQCHVYI%;D1=O|#2Jo^N7cwhQ+V8IJr1n$+iDa$Ny^|FERUzjP)^vb)R(ME zXE4(}J93!__oX20>HNc3p7=)1AxcM3etw+W`VT?v}Uy49I8yxV@+uF=WYn| zP)7Z^abYXsIHpK4e8U#%8=$NHy9MDZR!uiR=IhTc4-E#)7BZ0%>9WUa+(PrM!hL`f zHxHK2&a1P?@v6jS@>v&!ZcSL_vrh0YUf?`iJ6L>mzu_G!w;f}x1$o#AP+~l@k97IT!0c!nZJD=Vyq7+bMd8QIWF z2iQW{fk0VMd>domgXl}>6Y#pk4}(@Yn$3ZgsvI^#sopDYxI5F(VydU`6ROoLc6@=+@T$Ti5>R2ybcg8r>D7p5;1RL}l^HiP4~Ewq;N&(V~##D<)ncFf_K zr%frbGS9nY3Sh%exLqR%d?mwesD`P8I%2za2wg_;w3`Uf4t?WnR{UFQjjY)%x8x=2 zm7$o#wB%bR<7^O5+lU`tcjJ_dXjkBT|#S##WZuFDd-Yv8gur7w|$sJ;~Tqng9`CwqOL8gS6{np}>n?czcjC1SxayuOK6Fm$+VMN9W@% zXFJ&4-dd7@0mX*@VHX-p>}0WAl+8)mu0pk}6)#g24OBTp%wv5P3A&1nn?SC10loz! z!FeZW|jTw+UNCjJhrHp-G1Mn>B?;?qW8 zk!KVc(4dKHKuo#zpKi1sMEQa>oXOiu2JPbda=WwrF%u~MM$J>l_gF31LvCQPrXy+4 zxlISt482XA>6kL)H?ba6InBjN8_p-bf^})zyatx(-wmAxY?Fu?Fk{zMO3d6qVOMcI zm>2#c(IG!}BRZEdHIKZoh7Mu|y@r)!B81myDqwpnCLpUkUF~f~^N>bQms>tNBz!`hae%A2 z`p1Tdp_$Czsm?Yu4hk$B%w+S zxp|bGbtwMMY1q$lZ?cAsTDdPYUY(on{3vWu?--hRMxC3jhjS7u)wx$7JVd?YfP6eR zz7$#+qeOfm-t|LW>eS8w3K6_hJek@Xm>$GDHWOL`GRO7q_Dxxvjl%Z$he*rf~jfviX+}HEmcVCp- zuIC<5_GHA|HD{rj%n+ zlBG-C-;2q|5CY4RG5I_~m;}6xYW4}xr6_(46s_`R0M@t4&3M^jGFI}1dZI$!flxGg z2B=6jjvr4(Yhv;R1TVtLWf8IlD+c3gCTn7Q#8*BV*_0S5HznmgN#^fh)t@X1cT8w# zr7p!iD8=8gX#0c!CZ6S0mC2vJ z%jb_606WVd-1$wIjT(9a+9z0RRXiPwq7#(*HXWpJyR)U%mfyjebaei%K7e)r0Cg6F zi=f)hR@hkBni8tyK_eN`9=QB%?c{n@SoI zoP@?#OQr?1e|)8PE^DxqN0q^5LDYZS7&axGiTR%TNYb>z3d{FC)~&6A7G`JjKavmJ zE}y+UJSyl1svvEw3a+Bi?l&NYm!U5#+BKn}nc7Ky7trb?_H&^yuNs^g=Oo>E!y3_Z*x?MvE8t=1 zU=^RBec=|s^k-z#(UH>fYt<#jro$uU6`u%U>*R0;q$Au>xLfYIP5em&{M&T*0t`Tp zAyQfKNzAhsQNkks-fX3z5zVCh^eH@@y-NozvtwhQ%~{d4^gGKePEY63JcT`jw8DLc zreS-Wy~}czngKDwS>3g4*iwtr-&s4@xqs>9iD9gjeVFv@l~?Q?9{ye7?!;xw%+8&d zMC@GTK{3xf2P8LyJ7JCv#iWD$C~$BjcVomCJ)ek?baYl!+v(}hmjDJZk~0jg$?erK8o3|N-By=DM&5s*(X{VF`=}*`mndb? zJ`6O}Zm`&bzeVc8+;VLU*11`2E_=km9?3(qu#y{rGx$5oyok~UTA8F?Fx7wqVM@V5 zSP2V-vSd4&m=8VZ6WI%`0k!%>x#mI6R?is>ytak*g+jTu7WL~>F)4LWZH3c8PMX9g zqi7RaY_VefT0UV;9F>zlT*eL67q_7C=FMCa_u(YMS19=Jo#-(cB>^1KuxG6 zbG14!N{&7#cb+$NKz!7aTQu4h&6>eIb%H(rQ|FnwL2|1}K78JJrZ$VX^d3-XPn_gv zX_3(l5i2VT9z-;nO6%5BP~f!z1u4{aXu%3Qry@Mua4P>y{8p4fF1+b@Ut~to?9&Cq zP(C*}Ol`6-Lpw|)!bR0_IR2Z(u*)J*HM}u2LUG+#gE@3f%!54~Wo4CtWWb!bF0jx= z=G-U{5%X-M(X0Obp{)8XcwcA~U=tkLmPy>apiI}(1A#db)V?3c47d!FdUP3by1|VqBAst_x-Ej z&lT4f4Pz@hrXV(anY^M)5F7Uc$W+}GzY}af?ddRtW~tMS%>OR+-;DC|vf!{NXyg8* z6;^RW(May^Ugh7r=iu}!d)4VC=5I6jX}B3rk;yY38e)apS7nNgnO65?e_QxVLtA1b z$~No*jAd1Nqt&HOH=u+hMlOGs)8Ae@B%F2ouEfMc|w=RcajMQXGmtC%2Z)3<7^3NNAzUFx%hI7`$~1!MV%Ba z)NpJu@1hY>3rm+NoI8@U zWoa7giId=}Pmr<2n&C~9J4Lxi438Aon~Di*I32S#gWO_Dm`miSs4g?HH=Y50vbF>a z7+G)TB9OmJd7CKSbE0wAp2LOEXV zu0|l8s~_H`AvaVH4HdL`sy;b!36x$kusmjV>>*@neZY!ql0Kx6dUDBIGlPdH{m3yC z20i^1eSC}$Z8S^;!lkAt(gbvp3 z3M)Uyvl?ma9Po>qVXy7eD+Z-hZV18mn>bu}T75VvZl02aC-X*Du@{g5?e#t|rD8Aq zn`r|3Fd^1IjPpE$TBjrh_Q90IcC7#8p}cbKRlPv0EZ{6pJ?f4Ug~Ss`{|-<8Nq;&H z^E{eLkKYTC0mv;JWbr@{S|uP9@gg1MyBx&Z58{kjLMf2QX>sKU9m)l$O6}@CC^16o zyfMqlK4d5GiSnj$Wakr{M(-o-Hb^+T!5D?OZF>voRi30itGv)j&pV2gxi06&VKY3RBS1s>Of0k9 z8XU78mAmsOF)3Gh@=Fd+!JiY-$EaBdZ7`!OzZhI|W(jNU$|H@^i%ld>|iQf4(( zWWv6&UyPOY!Si9I5kmrtvFBHURqC&w!LwY8!+``5DBP~TL0Vm@ayWO@PR-u|l?doM z%O-l2vFGcNIFqT5;#FCdthy1lp~54}D$BKh0Ezyka0tULpiKM?3!887vLaMgK>J)T zYk+9**7w0ARhF2Qxn_AqW+B@B*I;U}8vO+AJ|4C2Z}$z9Fc%2}+Wj^tl)%FAkn0ue ztF%`%)L|+-keg$kW@HtV5=Y@~=4oXWJD6uZtJoCtv{MgMEB3Mu?I2_rHKB&{XBy7V z1Ov5cK!G@TlWfU?;3w3;xrn;RH010g`-WEDrkR!5=5j3y?Tu?m22>;r4-r!*pv#v9{|gvUqc^7Dt5W;$2)cWO!s`$pi%dlb0ffkAt>>XT z5Td_WWFek(PAL|703kZ96pN6vMUNvRTaSCVKkl(qoLcb&c(RkkfYYIx(`%ULzeqfy z=tLQC@?@HDX34Y8l{i7tZsJoSyOs$8iDl?soL}9rlP~3$e9TAF))m?Eh5j}s&uJoy zw{d>Avj;t!xA1KjGv*#Rn)DW~USF>50B)4E5M9kGNAC-iYcJ?ARfbdL)P6s{v~aSh z;UU51flS4ptzg-((#|TnW1cUGiE>XG+Ug`p7R{CuS$sD{ezS82$jQJObC8Ca0qyi2 z2H3KhYN@3gEU;_YC{FQoD-~bzJqe44&s>6SLxJQi$(w^WBfEA81KdCZpUciuDET*} zewB$dY(P_EAEdZ)0VaGv!Z1t;S}RbZ`Y+MPoVxE(0^}t#kSM%bWOctpaTx6)xYbVJPT4|8afqZ7f86_8gV9X|b(Pv}D2G=kRE9yV zQd^^cZ=&Hx?lISy)ma7S0Zp3&ptY6&i#E6~kHWucp(OYMrEA??DQsfoM<^V=TsfB6 zkUWNP_(}O~P6Nyl_#bDgsb(OqQpMJ#_w)6q0N1PIdZ~cwM-`G=(&R%uY)lctF^daN z`csO#5W+D(OwxY|67(i$I>ejcdb2=rXaa=jkBxC4#ESFq1ncqKu@o+&x#P<#gTL?3 zE%V$3NTs-#WdcGx_rys&UlE?9ML`8ZFNOibxm$o%K+|mI@5eB2D^VXAUsWFbTR-M} z!u(_=+KuAa`fL)%|IEQN_GB)e9P5(~gf`TYNZ4VFwPrS4$U!;bSColFePNPKBp$G0 z;sJwmC%=1C?@OihktN~z5(yE@nuKS}Vg*fGP*z!)>Ukm%wBa+@xDk9J(drkfTR88z zP-UTQ6wiOWWT(o&%E`n#a541!A^jqF1Y=oW!z|_nF2R%jl!@mNQj2Z|19tT@AnzbG zOu=`|0>y!~2+t*Iq znf#k&%;t5y2T#hu#>_)V?@%o3KAslDvm1PnV^-5dsG*scM}WSm4whL6<FYJ^h=u5mSU6jK+2o|LXa$L5Xw>VDV)8>nZp4HM}3;v_s34$6K~ zgfLF6;rT15;-oG&Fypy;V|(Hg$RxtxWDQQGvT{(?G`R(etp$XMkuxxQF15jO;aLbq zkxcHs`%yaCm0`Pqwu9lQ6dVU9Lz&`wBNX=FMNwN#veb0CaQl>mhWnKU!M}|olI&x? z!W8p#0vsFN8jXLk=QlONopNT+5%#cIS<$IJ^@t0|*mTV2A2zZTU4{!=2zg`Eo+Hi+ zbs03#8`=by#B+#Li*8{nK4BN&hcWm&U2?Nc?im*TL*eep*#9sV)*0=806oJ%kD)`6 z&Z`d^*^=`$Y}k~m?k_ZYqp6z%LE^H#D47%QO(Cjrf#{6MT&WI0&($4IDd~ zj;4$2pR*I9MZ0Z=_Q{gD)*@@Rguc6h8@o5+B#iQKCOemYDvZrQ));_cbIabnG%#qJbez2IE2x0de`cm=JT2t@W_ zcN#hXj^!loa8|c38_en2%dCmdE7g*u_-d=k4G*uU6Qc31;&~U7Ftje5tAG<_f1B_bomJZ(f97`T*noN;Qw?a9?`;SuGg zJFPQ=L}(ua-UM&hf~Z;|;$%nuR(6nsl(CAp2!dv35_!zUO$RQk&B2mKxl-{KrD}T} zd~}IK5%JLNSooi2#h!5##46r}TeL7~XdU(;szSrQp?g?wSpZ9Y;dY20wu8(J-bF37 z^<%1jL1LuS(-s;D3%)H7e1#JJ$P;K6OX4z}-tsc-`zTRa5KW}hV=N^7a>g4BCBH;1 zhE{rs8Yw>eUnn^rCIOh}K2o4QI38-GytFnyfQiLS)w4cOg_5n>U7XcW;^FMmp0|zM zl?|WJ7m4?lSti%I>e|0OtGNeAbuVwsvlfgLP{NA!YDod}tVy^63$x{xdBB~io%o2i zGuD`Xw5$@ymd)gaS0%%1c-j9vPmV@DgoOQ6dUz=NqL0$0dlEa6p0$c+t3lG&|ZJ zjg00$47#l3Cn7~*Pi>mJ9n|T=TO^lDX(tZ&;Cv4&vBydLrh_)pvs_uws9}-;4CJQSv+&*!kSC7Kiro+?59IMPS0L!uQh=hgE8?; z8Qdp(kwd|r?KU}DgUYvmQ}XToSudlZwY^eH=!HR6-clC4i`Ni!nUNNfOc>8EW_ZJ~ ztwe1#`u!8|oBIF&9JGg#w|os`m2ZqD9q=+BV;lqlxBvo#4bl`TML>C*@~U^H#CHKn z5W3VGl*Uo5?(IhvoA9)nR1(!>9uH({p96aZ>_N|L@h zn`*=GP^IEO*sdY|7eZzn<=OqsGL`NFQ(U<^laNt;W-n0oxxxP0ha$w+O8rFBEpWel z<59ea#+Whn&;)dLheOqJ$^rF*eaDErzpq6q+~SqmH5?sDD4p1OP_1|k+HEaLMOqe@ zd!&WCNGHpoiO7V?pud$NIR{OrciC-83l*pSeGQ)MZ}cR7S^r8awbj-_1ZPa^^yg;$ss zb*I~uDb~WatEZR?^*x>xImLYQ6zk1XZ2IO+_!X3yR^=`n+)3}a+HJn_qI^Ng93<{wnSY%$lTS;0;&OoWn^$gg;qVz4}eXH%OIYc~|B(kFYK5SD-$^0`2GCHB6We`YFu!7R2hJg3OL zmhk6&4Ceb4Xp=lYr{l8nb2=^?Kd0le^K&|`Ogg8dTVXXWv$BQQzT62n7x^*}N#}D$1z&+w1P`ID zf?X8i9`Fh9LPoz4m+M@q>O>)kClBWJ}S>uj9iQL5~&#tFt2 zb|!u&7V^G1!2K0nwuGy7_TYd~o`kbaC=7=<594~Yu;5yW)rp6kE8tp%+{EXtuH$H5pX{k-o0*S&V1)Y`=iQNAgL>b{`Q5K`RyMb6f zV)v<8Mo=%mpIh44>Sen;jV)60JvR&Sp z2grP*eAtfb(pa}!Zlk+29IvyE4>fw9wuPXuA5D~! z??}!LNu1izS~`ZG4FpEq&v%TLOjhDdH?9n&v&}BL#zP9-$}f23_q+1zUB&!gIqCt~ zce$&W|B7P`|JE-`rTZ?U_?Fa_j!yojbF#n(=`VHU;z+bL8_{^%3Md&V+1do?C!E+M z3UGzw>5X{fMkc8{emPJ0e@WU82a<+;SQ6{O0nCLk<*17ihg<1(F6~~5!F7lOImvIZ zo<&#B{@><*<%)S*77i(gp} z0Oe%vvdg(&%++`nH~irEJhZAH?dg;v?fS75{pdOSpzlC0t|ir4z*wL}c`b<((7rgb zLcyU3;>-$y9Hj?p0^N{{SD_Q-AR)&XpuX zjEfCKPw(BRpnlhQL(By;uIX?Z&fH_;J?k-CkeWJ;-ux)`+;?LGRg}(5vnl5jUtr%o z&e3Niu&ZMe-+7lkRK5*rp?XaL}IrjKZM)X#z>000D~0Yg5QoU z_%>&2oz)#P*Hey$X7bWWauZI7^G*0WTFUvlHC^9$PFsday}s`rsB9|=wj9Zl!VGBM!v->`C5)Jsgf<7}OIgv|5#TQX8mbV$>-$$T+h>MPL1FExc z5NHX|#dI&jW^&(!6X7pi4>NHi3_amZE>yd518e*(q;fF2MI1nn{R<%NXMHFZ@Kh4d z0Vrrc2}j}5QB3DRSX>$aq|NF>F`lPlxpY8k{FXixU!#dYMNj^>N!5nw=uh!9n(ll< zgZ35j@k;)ar>0$$8vhWfFr)YITS2*iX_sTj``_84e>Z-0;G&ENq09e|cIMyB^#y)b z;J;v>>Gx@z_ck3H33EO9E_Pv}$9U-=DRd6gA;lJi{c zjijveJ0z!u>shzKAi>o=beS&3PJTh_1zcr47gnHv`nB!f*WnFX!Z`1LS ztUKAZ{EB3&G#{UbM@r7)5RR{~8=qTCUh$4?i91k%r(jj_3u16_h zb#%GWnPhuHWFHsevY{hQ2h+7pXFzxdMA&O+WuJNtU;3P1iQF^Qub!w0aM^P}8B?;x zz<1DNj46KTTFz1zxP>kB60Xiyv%-jz7VVR8^$adSVwT~6hjn|;pXsibvzv3#zLEi> zHnrUyIDr8)9%RAAdAYdE6h`l&0v}rh(-pT~rmm=d5T``u;NE|o8t@zz&oWox_QKtT zr<0xK{C*CXoE#h;yoJ^&HEb0_eGbPZ#qvAM5Xibi?XSjN^w7JM;+0_nspS{r$F@Fg}ZewDX!Vr zXv4Xr7Oz641pTPMvj`w(BXaU{W{6ral1GIRrA(Uu8)qE(QKZRL*4nFK)k-E9G0jGa zRbdbGFh0EGH^I5hrcJ;e->L#}!?f}Ia{Y4>J2MlvJ=#e;xu?Q>ljLl#8;R?~F*b7= zP;>^$A)odLTzwDI&U7;_L)4z4niv*gWo-`TRyrBEKvsnXZQNI$D=Et`iWg4<_1e31 z@S-g_rzOAJ)%eAp`wKt`Ow@{Uc50^fU6ROc+9tfniOtDnTK-3SdI&MMh`P(U{Rn@M zX5(PXF};l8=uC@t<1pH#jc$Qi$~G;mBN-~L_v02Zk9AK1<~G+yeO4}YRyX^yq8vBr z~4BXtg9ki#|bV6^LWtAVa9E}nr*z`F?9B;Wee8wkP0~7f8fy_78<6yOp&nws zlJ1gRVT{Fq&gjBGQs{2;4@jnN~)8TVYP$NUMyQ#}sntn){ zzb{TdA%S`t#7HyhnYd0;)eb=5-Y#hqF|;4^@V=TyrcpXOxmm!Q%3PdE!7N!V{_a)4 z@_?j1FAPTJZeSn~??4bYfy|I}er)RI*iLKJn4A%X9Lsb9$@8hd`~Fa1IjdvA_?)UA z7`yVP6sZ`8fZ4GCWqc;eTkIdhd80KcX+-E*2b#8yu z+R!9izCmC#ESTZONNh%>x>4^*}k%ePhE=FUkS0N#Xi=OFyflL`7QCK zRKBiVYGBThcA-tu{4mPnd2}ycHrn9|S2?*U*uc z!e}WwBp*tX&!vUYk>4O{r~zy#%qC!VH=Q??s*6oVw|w6C_-L<;J>Nb@(G+FYTH6%n zTZ}ly+ywRSbr*f?*%t!Fj(T|gM4!!FAjWvaPGnTz9hci?uEN_&k`ms6uWmizSFyr-uYJY6&4=?5lNoJ-CXdaG-G zRr8anMK!oGqlO^^Lk5Nn3>nyCxlhf_dunRIQ#BKwdSDVqkGt9gK`&?t6*QX@Q}vQj z$i3v!wuY@l_Py+IUrm*3@12{v7p9U{Td!ywV;GP6;nE7K2w`J`Dz%-c;#_t`AE+`L zn`LUR!;!AZ0dwtG1xN2-Dlt0Ym9muR98>_iChTl>4sIbCt(T!M!{J7Ropc}846|BP z;C#PsWU|&iGZ4I=wq`xD5v`0xGZ;!E>AddDN~}AVY0LF!LoMv0zO^u{1D4O!DY-nk z#GYJY#)T9*mWkhBvEi)NyzKlvprbH)(eYOsjGqs*alCipijW@dj|lb~Px)W4jy*l- zEElZ-@;v&ljD4vO-#6fLngH&n+w>87d8@eI4n*XFK_!4ILtKA{VNU{w8OVehK)Jr6 zNXv&Gg6-^-Y94{zZ8+H+8pU=nKOM2w$~isDM>LvBaQj^1Am4Xm(}s3%?3W^Qz>@or zy<=%ap9iXd`ee5e;`=7Xa)ICQhh0i?A7NtT14OIl$)KPx>8$R=J!6O<%XC#qve9&B z{Ac*YA#Y?NMMGVFEn>(Bnny;^C~kEjmDWlr^-03F+?2>B6KLcnGJ%jvE6*@!7OTt2 z04gN|Xd<`rkrvX^0?4HoM4lx8-!85np0a)3Bz1&)t`dBQ+)p7Oi4l#%OX4#?QehO- z@;!a8lHg2P-zPX1Gp6C#Js4DQI{OS=nSdLvu#6qtfgJH)<6ADCg~QlFsH`gJ0vPto zMApH!!EJOvNBimcCwt=+MDp{SuOkqPyo)Dci$&V|Lwi#pG<>`jX@ybzS^_P@M>;2A z6WVqdICT~>YP@X!o+E}{mKo_nf(uqn_~ZDas1aw3PJmX00fg8(4%8{nZw2mD!XPBj z0U|+to~TI0>V^u=lwlB;-)=(!OqrL_{z`->F5FF~hbgiVVVuN%`z^e0c$B3)6^DxIXWmbdAUXhrVRjQ4Jt?RM`=CaWkd2`#{PAxbGwY7e2jZDQvVYVFp$9Rq zVD=Z#Zre+^dGR5-8!_lb#>6&7rIw3q#|Bg0Zt<&t09Fofw)DEA%CD*Y)bi7~5$B)v zMFuULuij%YD8nPWVZror3nnwaIWd&Ap83>y66Q-YH(!QhpNA{aq`rL|-Hn~)#!Fvw z!ffQV7QR?$VLkj!- zDeURQ(?`>cO&3g%sK;|?gY8Pa%knwQREBPJZ@npcO9Ls_Z4GUl6#GH zCGt^I3Uvp!TEs@OF;yG4ZMHI-}+ z--M1JB8s8{7Zf{i6G*2>2dN4OiiJP|1PQ?;G#f?5u2{gjN>Pey#je@MG#n}kGUci;DWZ-4LoFC}-*oH=u5=CmpIW+rS|Wu<}B>9ieLfVpzhKj4XiB4jaU z79ndfTfv33x2^;tbS z%;;h2$+?!^^y03{`jJ!q_u=FhKq*4^uMJM{qzvsKsh|)j^?+HXkv95j-MK@W{o(aa za30)@3UL~2kD+&EC{KjLve*F#ofMNISf!y|@*pXA%)AV{VczggD5}Thhu$*}!KnoQ zxpM+@VKlsFMr-?^{47|r^Vf&v3UA73gvGg;fxf}gsxukJe}N}6o>c+u=Hrx0K9rNq z7hrD(UK3@SUIy=nIhWBJIMg-*t?P<5jq0`iDc9kPBH?htWSF;QL0p738DCt5*Vs~k zvDuTgOm?(4+38F1nEA!y@^g6axHl~0P)@-%K78wwKgAbzwGK5Hz!Ep*1{9p~DJQd? z_l!KWa|2C&8Gu$fk9PE;yZrvxkvs zFiO%H28YQQ=+&!=_pCOItR-!R%Gwy9H^p^tcvb_?`fi3dah9StoTAtQ=^X)?4H!_G z?LRQ@GkRTay3Xuq`~`a9#N1-^hKIZd=smBqEy)+XULFPqf5V#Vz}mpWIk&?|TJV@f zcmr?C50(0%N-H4jm}&g!C>-V*RX@`bJ4S`m($Fb~o*TilK9D-0;{yNDwJRq{7dzBo z)bC=sKbaAv%s>a~0Xvoi3Y5UPQ!Nl{3j8!OORmf!Ur37{)rUee$ecOK94#HxM>^_) zOUdk&%4~QZtR6T`N=7~6ype3p6j$^hHtg{>B%q)P`U{~nM?QiRc*TJC><}oDiFGb& z!AQ&p^Th(-(-RAYp9qb+XpD(DV-89TgbndFCd3jjks_f?X94Wbu8~+2V5edNOoC-% zGLpIk?&TUa$3YrF#PBWX34o=pBcbrG%7DPSdJvW=630m-@;_q_ zI{>en(Y!#7F+Cv_JEDZ=Dl-w>J^{vF2}f2BT?l?uK*i20;V2+PmkR%e5`K_`!mJx! zutbfcVt17ALF6Mt3Vb=xd9H+eDB8RVRs8rU;e#~rk3+knlyHw$_=!q*t_J=m2o7XQ zcwQ^~NlN%Z4g3p$KVJzy)Cxbr!Nhth$+`LtjsLd-Dz+>;e}w6DFd;8)q}syg?b`11 zQTpnkxYI52VQ8ql#WUy*Oa}tDx5uMIsRBu+3=a_V6Gf?sxUWPi=F4#;P$?3=Kqy5> zNpg7_*U?dwmL+tMNE02EWDE^4FG+fe08f?3aY>pm6(@@ba1js_;%QQeToNxy;o^2Z zQ?d*(yA+uQzDy{`6GSP1CXtEcB1x(WO-)iN*wr?4OZH zuKo^*q(pM0A^>bBNYYaUWY>xl6EYoy2_gkMz_=mSk`Im2NJRw%|A-{al1usVa%eqS z%oo<{gSapPD2Yp?t;nMq4S%p6KUyD8%nS1dnQ{P|Bm(P%VITnUND$;u5iXVpgt#PK zo|Z1x>`;D6iX@&d7vgpTJPn3grfTF+G-7tp8g-u{kpPeiBM1pqYn()og*HV8Pk0P>Qef0&WAQj>+gLonF|0)839JeLYws@*gD3IZN zJcFN-E;PgfQsG7f8i=r!bVaEmxm17zAB#+dev>4oiexYb{1#evGV}v1ND>l|Ub^5i z(RiUG0q=|VPl6!@E6@+Q8B*^Y;xP}IObG3kq~ZyDAPb~WCzFi=damEZU335EIkfPN}E(wS${`X(K>Y}ASG3FnIWba zq?XQ9XQ7daLH2PV`UkoJ)&+Aw^5q~Ch%iN8JH$)UvQ_tFD4~RtGBZ-?B1VRjR?~@& zArwU!)##}zY%!ZEv#c=RKX3pz4kTf8qiFn3j6>fi%9BXLjs|}`jJ;a-ND*jhdfRX$ zNUfXxbDR~9Wkb9shuBVxIg!uH4;9KJ>C$*1_z?*%OOk-~AWe_}k55WZ9g8d*`b36L zImjs@A=uq?xl9D6QmQO&h_%>lHKD$!A$VN2TquKqXrm@T05Sg=Lzop$YPqskKrd1M z0W18}K5{%sVg7)tR7qwk9xoB60UI);oigx}Vx&X_J4?|HvI4Rxs0oT5f;tC~H3L_X zslu!@Fs-1|3bT*53Zv3X!J3Tjfk~g$5}+HCa&M zpIUq$YFCT@)}T$oNq?svZgq5k`Z_}-m8bJllsyvxqX+gin`8P3i2%Cfp1Of;2iwsUb_;Gc`2~3v6r-5Na znjub>r&(CALi3?_@s@c@JBFfd_0xYBp3tb;;p z5h~=VP}zX$BTi4@gDfWE0;wp2R9HHI{lFEg8Rz0&j{c6}xGQL`Bl$Z}fi5FK3Uo4p zk!PntP$44&STYmo|3Dmpm8d>ha$zbm5i;m|GWLP$!C;V*q@V<2BZMFV1$e5iYm0*) zYeD9#uN?@I(#ZV~Zv=!y;54U!b_8mhXJ}{y798L;G&DTaHv;nw4T%WHhWdnuMh^Az z3CDbV161=`94;g}PIPo55@bPmq7hY)5!Dz{$3Yn#)e5VT5krhZs;Y>-KuufBgVHqE z$*@Qn>VEJV86t=y(vaCB-H#y_>^T%027kWc0jUWRbc=iP;~_*rOkqP&0HW|>GDU)< ziFsEPzSPE3X`S4(Xeb}@QO>?#slt@E)7{3GB|IAskDS(`83=%82BU!%uW5%6B57` zDE*jB8CL=?qEwjGsJys>F+@QLR`b%@4nv8U+}6 z7!^PKl(Zy%9B6nFADB}4D_J(I<-kOaG+GMRD}yi^MXEm)6d~nBeUk!)%@BG%x)t-t z{eq8hME{UGCsU-8*O&!BuppNTh2ZxfenItspCkc-^t2QaIm=Uax1x%8gDEl zsYVHSun|%x;V%yIs^D+45(j;t!;NU)vM>B8 zMh$NM3zuhvN0?7Y1ZMLu)D3)_b_Kj)e}k*5%=c}N_x2@HuMj?MD?#P1^tqLk$$ccPes#6N&nB<7agvsAFVN?G6~8w zT5Cq>G-VpCIcw&lwP%!WYySbk*DhAjZEGI_Mu&QslR_e}VE<<=fiFK>5~76y@96&(JL2 z*1iVH@1iW<*8YZO`L^~sP`=wjMg48t5HG}3vAbB%MY^C9OsjBSiFj4Oi}@}n5D%wV>_`^*t6M%?3L^?_ImaX_FndJ_G$J-_Dyy@`w9Cw`#t+JTbrZLY0v4( zvEuaQ4CF95Zk!NKI46#i&ne_A<&?*{K7?-}nE?>+A`PsgQ;OD~s6 zE)^~tUCy~&ce(5G$feQcgUc6}Zm#EC6WlQOq3(I^_t6%d`r51*Un8Oe(TnIyxDbPg z2qKzDA<~Gc#0+93Q9^7Zb`fWZi^LT9VE@Lx5B>j^Z3=x{#@WgF!ZGD$a4&O5^S}N}_U5Wm08YWmaWw<&4V0 z%96^1l@}}PD;q1Zs;*Ud6}xIsRdiKsRaRAQ)zYexs$EqFtFBkoSAD9&s=HR>)$Hm) z)zQ_l)mhcK)k~{Os&`c%tiE1dU;U{XTi10RzK*?a(7Nb#8hwLqOUPerJbe-UDE$uI z#mU!ch|^4`#ZL7uzq@>PX?D?ZwQ#j_?eEHT^>&SQ&2XLPy3DoAb+hXZ*Hf++T<^L* za{cVu?5gi(=4Rp6(~a)NcJp%ccN^xG;Fji=>%Q21sr!2O&F)9tPrBcBuXlg%{>h!< z?B{IDd9-$ffv#4hwyqg9GMr{cn4*NfnPC)PmISLOa!D$!1JND< z_005!3I$?Gs(@xi^gs|pv(D;;2QP^CT^YKWumf_`r(+L`l zu}@JH%r5yrb&w}6QE?PZi zS<2_y{fngQX@{oms#&nDXK8QO@OrDQ%ik;t#jh`GUvhNsma)%Fcg%KUu*+*hHf8(I zct_k_H1DW?+n%qvj0T??+BwpM3t>i5Mz~Go?JAG8uYg zJYfyJYiXz5l`wCS`7kO)S06M&M@LUfi?Bop?X}IdJAG|8Yxg#f9WK|}Jvd>+4&-cH zbwiIBin2|$1Brk&euNLL)#y1BbToQ8W&`MS4u?h?;0&V05eNu-XD1fN-dRZF*n@>2 z?AZdgki`}{^99Z{1y4N@Pr04UHXQIW*q5KSa?X`dTIvqy7;Bd%9`?R}@?NL@wShgOR!4bt7QUGKq_TuI+p#WZ(ez}ek&DAFg_a=t72Zj(uw8A?|7~)%Fl^;v|z~PovX^?9?ompI^kwa_lLd%)}@@G(H5QCWAof) z%d@>FhE$5)MO@_?TR!YOC-Jul88Hj5@Q&N% za*qlkU$+C1uk}e`C=L1gmyePzK)Y3E5qS!=HfI7nQz%;;)kqhUYsh$IngorJ+T zgls&RFC8nCr={>=0~0MwllGEEFzGBhjZSxFfW4$M6-g(Q{GYJte`g!l>Zb&q@G(dZ zG+J|TdX8?okryRGP;Z{2_j2K+b~UmCMux`+`|wMSncEj%ZW>VXH8@~}M{c3Z?uhSC zYU_SEx~A)_9FJKehfhhO@15g!>eaYfo6zO6CN_J!&z(=N>FvKUefz6ZK~{q;CO^tw zZkd%CY_xgb2b0U@mutTaSUZG0s_E;VTUpdw&A%IVFTOHmmxbB09S0{2nsDE`Z=X|N zUJo1Hiw79ejYD_8_TOr&CUA^jTM;MWZiIe0fMaT>ojv=Kj;; z_4$(c&cmPA49LD_#7~?R^L_M&={b7}5<|yDceK^EwLL%kb;LOAd>A7-qe%Z%@|H5n z6_stw0NW@fI_erI1B1>KZ5=X?=&6QLkx~3~Xzb3M%<#eQ>{yl|rM)MZ;Ay!UHnUCh zWzj;T6II*D$`A|3(&5~Y7v@3wK1&mAZHN>K2$L3jp+jha+4#XQ`XmhXx<5JE^uX1S zRXrp1d0gA%DhOpr!x%|~6GKWuOM(jmm4*up+|P!Qw2E+YOaM#9D&qwr4)P7c4Kj@^ zBw-J~1moYckdE;h=JC&KkhfBEt$g^>EQY>kGjaC(#|)zl9g?CM{e0;eeI~x{=+Vcs z``~rrJhuOEv&eVPqMa+u+vTqtwITmz?i3H*`P(etYVCg4ZB+L+VTGT!Mo#tY+XLTM zvvEkLV+YqSDYEHNc+2El=Bgsuf*Ggx?HjsVC(QU>)T$ExOXJ64yBmW{x(qsbzI^cE z;7!XrTIxs4-*=*R_W;*`0oL?y$u^?U6(=WqI)7v8c9}gNA9Qf*a=Y|C=T2#re;8Hw zlo>I8ci8sJ9qaTC?3LfUZ8bml%FC|r9Xpwib-bG}XLHZTC#GJ1`TUSm{)S%-0nDfe%Q3R$LHpc@hE-oU|hfKQcC)x9ir_v1z+^)K0FAnySZUtX1J9d zopmB*sI;hH^BV>~*`le2mlrmyf^Ppu+04(L1%0|kmgb)xvEmc4G@?_5U$LFz$=;7V z7Izy-b$?v^a9WIuoBLirb7|xQJKHTcCOp;B?O*=Us?hfcW_;CR=EL@kK5<&(I#;~D z*r%jqI4kxOd-1ONth7&if(oWD{!qV>>hnr?ct`nUk$Jk_!WB&wwZo@G)ABnv5c!=S zLFi88E&E@vqJJ8}YfLIi@-7je=E|7fK#OM75?;Y11HyFml%pN3JwyiTbZ5d*T~M25 ztBv2?Uu2wn=W&1;ZRoYas>|CibsE}vRO7t;F|WT2JUp8*j!4ibZbXYFhLzan!agpX zwMoTrurBJ8H!?^E!6_U8=1@xHI{ax^lbIxlcT9>;aTEv>_~|Kf2eB+IOH(}|tk%w_ zV7-pl&oO@-lju5PwbiOGV{RKh<+T6IdD=7AqISLhu0g$nj((W;eA0=1jO6t_y^r&T zrOt4;VgBMXcIefDUrM|ASog~N?fb8x=Q0;^%D&_=4!VBp$GV^Q>)e;NE1!yzgFF4v zahX|mk3xRV(2nAF8Mht{|GZ+Y^`v9v^^%T>`-&qkH7?G6a;w|s`lJ=J2it#|96h6W z%-J4Yj_*ADbj0euXC6O&_3;0F)ti)%4G}quxA%K+u6u9q9UDv~sXYq3 z8hl4hJ{P-HI<8wp?W_%7E!-t*_S{S#9dhb3Z{dT>87H1cucA+~wHqx6K&s-!ymSuPV(q8%*Sz`L+yzmKKGUZ^i@|y=4^9{L`!_fUKz$t)J(g`4m^( zb}C8f08`L>%0TGbzTks;fz&HWPaSTkMQLLK8a(fq*T$+th25Xz_Uv%v%*Xf%uM<6{ zQ5t84>kZyuWQtRDhnsIKU3s>v8CY``!9Wu@nlpppKzDW;LFhpRxm3#glDyq(@^%n; zTmO-`s@1HZ4`GMGtafHrsa~Qqn6u&D;Xb%ecnH^%=E<`6WwLzjeSN&>G&^v&WIWbG z9gjtb#6tUUIbWQHhYO|XOlnDf`*RREj)N)oa8=}Jkk_A#9I2WzOU|rk{39)-6NG}( zerit1;|gBr@MeNyZ`UJT4yW8i5IiEsN(PJs+W4o_oR|zUU}Pwg&L~Mt{6{$LP4rT5 zYN_T_qff&W(|-bl@2{uP)t1J!nWnS2`0wA$mNb3I5iK4okLYk^ts#~_?d!{lNr3~$ z96R!ue>h{OTf%^t#?Ik=v}x8J-MbZ8o;NU?H<3>a-$HnsyosGLHNwm2TJSEm{#MUB zi`HM25mCMK%YBS5K5z2NJ9nU0EIm5b_ieOa0ez~KoS(R0OkTv63yXpl9y(evs*Z1# z+V^<3&jq=A@A1F+9_nM+E3u=ro6W3Efr6P~aa%@x&$M=Jj7nd>ZNm64F7a2*Des5d&U{=Z>63D}3iQ zVWMyMV@^pUrimkwb5O>X|3(aW<-@Qu^Bc-W#wFFcE-s9@c7A!+qr@;6UYHz*62U}Z zNkEBTfzSU}3{m>;|SsUv~;w>tX!6WVej zuLLoTqp5LT5s|l$$eZ8NKMq>p^a)p0ZB&Xm?N4h93k+}+NaAIVUSZ)at}96{CI+<> zrxMOqbleiWpb(x9;$tb;7}(K}z^4d{2TwT${G}Y=ij%6ygUT@n+_IG&AwyHWCo_f^ zKR8~$)ID#Umg_I&r8bhSFDlM9(e_`^c~Jewmng9XvGwq=gj31)nw~ah?K@Gm%I@Lk z+LvP^qVxw0$@lK~b$9rjv+rX&&dNADXpqN>+atR)kNiBk3u9@oVS)13o*hnZI*@Zb z=Phf}2=^Xumt_xLFcjOwHtEvjn4KrQQN4ZaqZ8*poF0!!0tt9amdk~gT5F5v5ARpI zttU-Cz0H@*Dg5;`hhb8WtC<*|)0OMtFnxuI;%iY}xpB zyT^jxKfXUOIexgE$#@4&R7Tmjb-J@mW}5HeSDKz#e!acl^4wz=&sAQ0J!wkgecm{O zd!yt_ZT0y#H-}kC_Px1}-Fr&YTeFD!QRtV|@TtoG*N=ClllfyMnbmn`Dh<|i_WpkS z%=P?j(sP#YcTJ;M<$moxvwsAqCg$czr^|TyPnOz0pIh(b(6L|BLC1(bHXl!} z54qWQ*OuyA#Wj_lWv4D!cm&rMeD1%z+%$o>yjM;Syca*AY1u5t?k8+E4d1@;wztcY zuyNN)FCB|~D7qVUsO~Ot@cY>(!C#FJj0%1BiBu?k}$^2*9LuhT-iFA zVWq$4CiB+iG4t=rX9RQvhjSB_D-LU{>uwommVGb%0|T8uz_2Z?q~^bD(#aKFf}vUC^j+fGIny$+l-?#i#@ z6<#{kJD<|gDSuLpZI|42Rs{#o)%4$a>;7ZU*pJ%{IG$S`?GAeJM@Y{1C&GuHZilb? zI(PZ5Sc4Jo4cgzj*UeCd-S*hU3rYO7z3#~aB3|0y75we)dNTWf9E*9Z_X$~+{inUR zn~8N`-jJI8>T73jw9tOM)@i}VFNUn?aoi^Z+Fj;^Z9R}Z?9%V0*LpXzSqrQmCwKU5 zy1^cu8UE|uuNzD}AH672;%PDCdd20U?x){vik%;xw%g;xn{!u3zryM!P1d(q{PqsM z@7_K02*)EKj#+CS%J}{jl`^@C2dE&JY$440Lq{wAZ3`gSGa~7j#$SF~{^3ETcWU&y@Jl6mhl#ucYw~J|yxspu=>50TAUKyzPJ^7ieK_`n7sJQi z$%o*yxow9+c3g3w8J42q5lboVh0g10O0td)M%BS?A8(cuwp~qB(?1%Re!BCB764lb zfb$nz^;}b%LK{f*Ck&MYP(%xJMYOd#S9#NYoFeyR*n5=A)F?}(^(A_@ENYN5*AhcQ zAC=cKe;8Y;y4NekTk%V3-mIOor+)C6v8y8NVB^d8HQWElsa{al&8ll{yN$gsY!8ok zdBoz=-HmZyt&L`lIKFb>q?&7Q9yht|;Oyzu2@0XU}mD&d8GKL%F_zsFQZ(rE8W^?hz?zx){ zM+CU99`@qHfcn@V&kI_C5wD(m&#yRGy6*A*3amY5%ab7 zuHI9syM^Id$@X93Krg=Nl5@JG2rCo(M$4x*f#$s-HE+>>H)v2ScC``KXfAf;Q|Lsu zmgNpu?K1vhLF1@3(N5O@nd{yt}B&hFK2BSVOj`~1E| z8)-^DtW2QQw2@n_ZR*YptTv2j+{=v#*FDBNJjJp{;o!&5r-gpp9NMp9daqU6s+?As zUOdaGO0G?9e`fF3wM&W;4(kn^I%C05OJ24?Vi(zU>$T;9+a@?!%(C06cZ2YpGX6yJ zOoy#oBXa-9n;Op6Z?F;1_8GiE@cqrSCxfSMT{C{?)+osxkLKL63E|($c3j;PwAJ=@ zLYKhN{l3`+t$ef+7F_ literal 0 HcmV?d00001 diff --git a/roles/netbootxyz/tasks/generate_disks.yml b/roles/netbootxyz/tasks/generate_disks.yml index 0deff438..db843f42 100644 --- a/roles/netbootxyz/tasks/generate_disks.yml +++ b/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 diff --git a/roles/netbootxyz/templates/disks/ipxe-dhcp.j2 b/roles/netbootxyz/templates/disks/ipxe-dhcp.j2 deleted file mode 100644 index 1f12fd1e..00000000 --- a/roles/netbootxyz/templates/disks/ipxe-dhcp.j2 +++ /dev/null @@ -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 diff --git a/roles/netbootxyz/templates/disks/ipxe-static.j2 b/roles/netbootxyz/templates/disks/ipxe-static.j2 deleted file mode 100644 index 7bce2a43..00000000 --- a/roles/netbootxyz/templates/disks/ipxe-static.j2 +++ /dev/null @@ -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 diff --git a/roles/netbootxyz/templates/menu/boot.ipxe.j2 b/roles/netbootxyz/templates/menu/boot.ipxe.j2 index 46f9114c..e3bae2b0 100644 --- a/roles/netbootxyz/templates/menu/boot.ipxe.j2 +++ b/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 diff --git a/roles/netbootxyz/templates/menu/coreos.ipxe.j2 b/roles/netbootxyz/templates/menu/coreos.ipxe.j2 new file mode 100644 index 00000000..f4da5142 --- /dev/null +++ b/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 diff --git a/roles/netbootxyz/templates/menu/flatcar.ipxe.j2 b/roles/netbootxyz/templates/menu/flatcar.ipxe.j2 new file mode 100644 index 00000000..f3dfd1ef --- /dev/null +++ b/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 diff --git a/roles/netbootxyz/templates/menu/freebsd.ipxe.j2 b/roles/netbootxyz/templates/menu/freebsd.ipxe.j2 new file mode 100644 index 00000000..80fd8cae --- /dev/null +++ b/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 netmask 255.255.255.0 +echo route delete default; route add default +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 diff --git a/roles/netbootxyz/templates/menu/freedos.ipxe.j2 b/roles/netbootxyz/templates/menu/freedos.ipxe.j2 new file mode 100644 index 00000000..e94ba9d8 --- /dev/null +++ b/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 diff --git a/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 b/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 new file mode 100644 index 00000000..297af6dc --- /dev/null +++ b/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 diff --git a/roles/netbootxyz/templates/menu/kali.ipxe.j2 b/roles/netbootxyz/templates/menu/kali.ipxe.j2 new file mode 100644 index 00000000..4d17c2b8 --- /dev/null +++ b/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 diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index c665147a..26e13ee1 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/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 || diff --git a/roles/netbootxyz/templates/menu/nixos.ipxe.j2 b/roles/netbootxyz/templates/menu/nixos.ipxe.j2 new file mode 100644 index 00000000..78d57b2d --- /dev/null +++ b/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 diff --git a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 index 1510779f..0ad7f757 100644 --- a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 +++ b/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 %} diff --git a/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 b/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 new file mode 100644 index 00000000..1ef0e30e --- /dev/null +++ b/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 diff --git a/user_overrides.yml b/user_overrides.yml index f69555b1..3d03cf23 100644 --- a/user_overrides.yml +++ b/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: From 03cb89824abf3c01d0c294e9c0409b15ac6a0c41 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 04:28:11 +0000 Subject: [PATCH 004/169] Version bump for :master new tag 18.04.3-51dd7e49 --- endpoints.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 395e2558..bc69fc27 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,10 +1,15 @@ endpoints: ubuntu-19.10-live-kernel: path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ - files: [initrd, vmlinuz] + files: + - initrd + - vmlinuz ubuntu-18.04-live-kernel: path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-dc9800c9-1.1/ - files: [initrd, vmlinuz] + files: + - initrd + - vmlinuz ubuntu-18.04-default-squash: - path: /ubuntu-squash/releases/download/18.04.3-7dfb37b3-1.1/ - files: [filesystem.squashfs] + path: /ubuntu-squash/releases/download/18.04.3-51dd7e49/ + files: + - filesystem.squashfs From 690c4db5de055edb22a4f2bdd26dfcbff5862890 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 04:57:23 +0000 Subject: [PATCH 005/169] Version bump for netbootxyz/ubuntu-squash:master new tag 18.04.3-990e20c5 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index bc69fc27..13e91d65 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -10,6 +10,6 @@ endpoints: - initrd - vmlinuz ubuntu-18.04-default-squash: - path: /ubuntu-squash/releases/download/18.04.3-51dd7e49/ + path: /ubuntu-squash/releases/download/18.04.3-990e20c5/ files: - filesystem.squashfs From 5e1cc96f57568f937bebaf8baf9dc4ece44e7c32 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 15:49:10 +0000 Subject: [PATCH 006/169] Version bump for netbootxyz/ubuntu-core-18.04:master new tag 4.15.0.20.23-81ae0834 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 13e91d65..7d0be9f1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -5,7 +5,7 @@ endpoints: - initrd - vmlinuz ubuntu-18.04-live-kernel: - path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-dc9800c9-1.1/ + path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-81ae0834/ files: - initrd - vmlinuz From 99fb5e1f6f290d8d461b31bc3ab94fabd9a431ab Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 17:16:59 +0000 Subject: [PATCH 007/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2-04fe0fb9 --- endpoints.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 7d0be9f1..50ebd215 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -13,3 +13,8 @@ endpoints: path: /ubuntu-squash/releases/download/18.04.3-990e20c5/ files: - filesystem.squashfs + debian-10-live-kernel: + path: /debian-core-10/releases/download/4.19.67-2-04fe0fb9/ + files: + - initrd + - vmlinuz From 7ccf9e2e15efc8b9e1bfc02d7a5b875cdfc68a98 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 17:32:16 +0000 Subject: [PATCH 008/169] Version bump for netbootxyz/debian-core-9:master new tag 4.9.189-3-152f39d8 --- endpoints.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 50ebd215..79ef921c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -18,3 +18,8 @@ endpoints: files: - initrd - vmlinuz + debian-9-live-kernel: + path: /debian-core-9/releases/download/4.9.189-3-152f39d8/ + files: + - initrd + - vmlinuz From 269413e69ae46f78db835ecacf99d0a67493b4db Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 19:14:41 +0000 Subject: [PATCH 009/169] Version bump for netbootxyz/ubuntu-core-19.10:master new tag 5.3.0.18.21-d5298da0 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 79ef921c..3e59a061 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,6 +1,6 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-d5298da0/ files: - initrd - vmlinuz From 627e0bff5152d09e8df4a6fc04291530c6e9648e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 9 Nov 2019 19:22:03 +0000 Subject: [PATCH 010/169] Version bump for netbootxyz/ubuntu-squash:master new tag 18.04.3-5b9d4326 --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 3e59a061..1ed3465d 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,6 +1,6 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-d5298da0/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ files: - initrd - vmlinuz @@ -10,7 +10,7 @@ endpoints: - initrd - vmlinuz ubuntu-18.04-default-squash: - path: /ubuntu-squash/releases/download/18.04.3-990e20c5/ + path: /ubuntu-squash/releases/download/18.04.3-5b9d4326/ files: - filesystem.squashfs debian-10-live-kernel: From deef01aeb34c461d8708226a023bbf3809ac79c4 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 04:24:05 +0000 Subject: [PATCH 011/169] Version bump for netbootxyz/manjaro-core-18.x:master new tag 5.3.8-79f86aee --- endpoints.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 1ed3465d..adfca9c8 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -23,3 +23,8 @@ endpoints: files: - initrd - vmlinuz + manjaro-18.x-live-kernel: + path: /manjaro-core-18.x/releases/download/5.3.8-79f86aee/ + files: + - initrd + - vmlinuz From e42bf366436af822329b77e03559bdef5cf6250e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 04:35:38 +0000 Subject: [PATCH 012/169] Version bump for netbootxyz/manjaro-core-18.x:master new tag 5.3.8-d0e4054f --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index adfca9c8..4f8a9833 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -24,7 +24,7 @@ endpoints: - initrd - vmlinuz manjaro-18.x-live-kernel: - path: /manjaro-core-18.x/releases/download/5.3.8-79f86aee/ + path: /manjaro-core-18.x/releases/download/5.3.8-d0e4054f/ files: - initrd - vmlinuz From 5c9dcdb2c532a364c25ff2c5a66c5a81c1aeb7c7 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 9 Nov 2019 21:10:48 -0800 Subject: [PATCH 013/169] adding tftp option to boot menu by default to support local templates from tftp server --- roles/netbootxyz/templates/disks/ipxe-bootloader.j2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 index 208c1b05..1552cec0 100644 --- a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 +++ b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 @@ -5,6 +5,7 @@ set boldoff ${esc:string}[22m set fg_gre ${esc:string}[32m set fg_cya ${esc:string}[36m set fg_whi ${esc:string}[37m +set TFTP_ERR Local TFTP failed... attempting remote HTTPS set HTTPS_ERR HTTPS appears to have failed... attempting HTTP set HTTP_ERR HTTP has failed, localbooting... set boot_domain {{ boot_domain }} @@ -46,6 +47,7 @@ echo Attempting chainload of ${boot_domain}... goto menu || goto failsafe :menu +chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} set conn_type https chain --autofree https://${boot_domain}/menu.ipxe || echo ${HTTPS_ERR} sleep 5 From 6fb4fa3a9ae746eff401dc50d2a50a21acd5f143 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 10 Nov 2019 09:18:16 -0800 Subject: [PATCH 014/169] isolate the tftp boot into a sub menu and only run it if DHCP succeeds with server name being set and the filename being ours --- roles/netbootxyz/templates/disks/ipxe-bootloader.j2 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 index 1552cec0..7cfa5eb1 100644 --- a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 +++ b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 @@ -19,6 +19,8 @@ prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe me :dhcp echo dhcp || goto netconfig +isset ${next-server} && iseq ${filename} netboot.xyz.kpxe && goto tftpmenu +isset ${next-server} && iseq ${filename} netboot.xyz.efi && goto tftpmenu goto menu :failsafe @@ -46,8 +48,10 @@ ifopen net${net} echo Attempting chainload of ${boot_domain}... goto menu || goto failsafe +:tftpmenu +chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} && goto menu + :menu -chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} set conn_type https chain --autofree https://${boot_domain}/menu.ipxe || echo ${HTTPS_ERR} sleep 5 From fe57e9866481cc892df9fc3cccc3e2acbb9b22f8 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sun, 10 Nov 2019 17:31:00 +0000 Subject: [PATCH 015/169] Adding more changes --- TODO.md | 2 +- roles/netbootxyz/defaults/main.yml | 24 ++- roles/netbootxyz/files/ipxe/disks/netboot.xyz | 67 +++++++++ .../files/ipxe/disks/netboot.xyz-gce | 68 +++++++++ .../files/ipxe/disks/netboot.xyz-packet | 69 +++++++++ roles/netbootxyz/files/ipxe/local/colour.h | 28 ++++ roles/netbootxyz/files/ipxe/local/crypto.h | 1 + roles/netbootxyz/files/ipxe/local/general.h | 11 ++ .../netbootxyz/files/ipxe/local/general.h.efi | 10 ++ roles/netbootxyz/files/ipxe/local/nap.h.efi | 4 + roles/netbootxyz/files/ipxe/local/usb.h.efi | 2 + roles/netbootxyz/tasks/generate_disks.yml | 139 +----------------- roles/netbootxyz/tasks/generate_disks_arm.yml | 0 .../netbootxyz/tasks/generate_disks_base.yml | 66 +++++++++ roles/netbootxyz/tasks/generate_disks_efi.yml | 44 ++++++ .../tasks/generate_disks_legacy.yml | 36 +++++ roles/netbootxyz/tasks/generate_menus.yml | 8 +- .../templates/disks/ipxe-bootloader.j2 | 8 +- .../menu/{boot.ipxe.j2 => boot.cfg.j2} | 10 +- roles/netbootxyz/templates/menu/bsd.ipxe.j2 | 4 +- .../netbootxyz/templates/menu/gentoo.ipxe.j2 | 32 ++++ roles/netbootxyz/templates/menu/index.html | 7 - roles/netbootxyz/templates/menu/index.html.j2 | 11 ++ roles/netbootxyz/templates/menu/linux.ipxe.j2 | 2 +- roles/netbootxyz/templates/menu/live.ipxe.j2 | 2 +- .../templates/menu/liveubuntu-default.ipxe.j2 | 23 ++- .../templates/menu/liveubuntu.ipxe.j2 | 26 ---- .../netbootxyz/templates/menu/mageia.ipxe.j2 | 44 ++++++ roles/netbootxyz/templates/menu/menu.ipxe.j2 | 2 +- roles/netbootxyz/templates/menu/rhel.ipxe.j2 | 52 +++++++ .../netbootxyz/templates/menu/windows.ipxe.j2 | 59 ++++++++ roles/netbootxyz/vars/ubuntu.yml | 5 + user_overrides.yml | 6 +- 33 files changed, 683 insertions(+), 189 deletions(-) create mode 100644 roles/netbootxyz/files/ipxe/disks/netboot.xyz create mode 100644 roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce create mode 100644 roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet create mode 100644 roles/netbootxyz/files/ipxe/local/colour.h create mode 100644 roles/netbootxyz/files/ipxe/local/crypto.h create mode 100644 roles/netbootxyz/files/ipxe/local/general.h create mode 100644 roles/netbootxyz/files/ipxe/local/general.h.efi create mode 100644 roles/netbootxyz/files/ipxe/local/nap.h.efi create mode 100644 roles/netbootxyz/files/ipxe/local/usb.h.efi create mode 100644 roles/netbootxyz/tasks/generate_disks_arm.yml create mode 100644 roles/netbootxyz/tasks/generate_disks_base.yml create mode 100644 roles/netbootxyz/tasks/generate_disks_efi.yml create mode 100644 roles/netbootxyz/tasks/generate_disks_legacy.yml rename roles/netbootxyz/templates/menu/{boot.ipxe.j2 => boot.cfg.j2} (90%) create mode 100644 roles/netbootxyz/templates/menu/gentoo.ipxe.j2 delete mode 100644 roles/netbootxyz/templates/menu/index.html create mode 100644 roles/netbootxyz/templates/menu/index.html.j2 delete mode 100644 roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/mageia.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/rhel.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/windows.ipxe.j2 diff --git a/TODO.md b/TODO.md index 3b8ab047..036513b4 100644 --- a/TODO.md +++ b/TODO.md @@ -9,4 +9,4 @@ * More host OS support * Docker images * package cacher -* port netboot.xyz to this in staging env to validate and test \ No newline at end of file +* port netboot.xyz to this in staging env to validate and test diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index 25a60a75..fe40a2f0 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -1,17 +1,27 @@ --- +### site configuration ### site_name: netboot.xyz boot_domain: boot.netboot.xyz 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_branch: master ipxe_source_dir: /usr/src/ipxe -netbootxyz_repo: https://github.com/netbootxyz/netboot.xyz.git -netbootxyz_branch: master +live_endpoint: "https://github.com/netbootxyz" netbootxyz_root: /var/www/html +bootloader_tftp_enabled: false +bootloader_https_enabled: true +bootloader_http_enabled: true + +### release values ### releases: alpinelinux: name: "Alpine Linux" @@ -126,6 +136,7 @@ releases: code_name: "edge" freebsd: name: "FreeBSD" + enabled: false menu: "bsd" versions: - name: "FreeBSD 12.0" @@ -157,14 +168,16 @@ releases: gentoo: name: "Gentoo" mirror: "" + enabled: false menu: "linux" versions: - - name: "TBA" - code_name: "TBA" + - name: "Minimal CD 20160204 (amd64)" + code_name: "20160204" ipfire: name: "IPFire" mirror: "downloads.ipfire.org" menu: "linux" + enabled: true versions: - name: "2.21 Core 126" code_name: "2.21-core126" @@ -301,6 +314,7 @@ releases: name: "Scientific Linux" mirror: "ftp1.scientificlinux.org" base_dir: "" + enabled: true menu: "linux" versions: - name: "7.7" @@ -315,6 +329,7 @@ releases: name: "Slackware" mirror: "mirror.rackspace.com" base_dir: "slackware" + enabled: true menu: "linux" versions: - name: "Current" @@ -326,6 +341,7 @@ releases: tinycore: name: "Tiny Core Linux" mirror: "tinycorelinux.net" + enabled: true menu: "linux" versions: - name: "Core [ISO]" diff --git a/roles/netbootxyz/files/ipxe/disks/netboot.xyz b/roles/netbootxyz/files/ipxe/disks/netboot.xyz new file mode 100644 index 00000000..fb3d1254 --- /dev/null +++ b/roles/netbootxyz/files/ipxe/disks/netboot.xyz @@ -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 diff --git a/roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce b/roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce new file mode 100644 index 00000000..76de70c3 --- /dev/null +++ b/roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce @@ -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 diff --git a/roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet b/roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet new file mode 100644 index 00000000..18553acf --- /dev/null +++ b/roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet @@ -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 diff --git a/roles/netbootxyz/files/ipxe/local/colour.h b/roles/netbootxyz/files/ipxe/local/colour.h new file mode 100644 index 00000000..66b14004 --- /dev/null +++ b/roles/netbootxyz/files/ipxe/local/colour.h @@ -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 diff --git a/roles/netbootxyz/files/ipxe/local/crypto.h b/roles/netbootxyz/files/ipxe/local/crypto.h new file mode 100644 index 00000000..13bb0faf --- /dev/null +++ b/roles/netbootxyz/files/ipxe/local/crypto.h @@ -0,0 +1 @@ +#undef OCSP_CHECK diff --git a/roles/netbootxyz/files/ipxe/local/general.h b/roles/netbootxyz/files/ipxe/local/general.h new file mode 100644 index 00000000..cee59bd4 --- /dev/null +++ b/roles/netbootxyz/files/ipxe/local/general.h @@ -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 */ diff --git a/roles/netbootxyz/files/ipxe/local/general.h.efi b/roles/netbootxyz/files/ipxe/local/general.h.efi new file mode 100644 index 00000000..2df7410a --- /dev/null +++ b/roles/netbootxyz/files/ipxe/local/general.h.efi @@ -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 */ diff --git a/roles/netbootxyz/files/ipxe/local/nap.h.efi b/roles/netbootxyz/files/ipxe/local/nap.h.efi new file mode 100644 index 00000000..1e345eb0 --- /dev/null +++ b/roles/netbootxyz/files/ipxe/local/nap.h.efi @@ -0,0 +1,4 @@ +/* nap.h */ +#undef NAP_EFIX86 +#undef NAP_EFIARM +#define NAP_NULL diff --git a/roles/netbootxyz/files/ipxe/local/usb.h.efi b/roles/netbootxyz/files/ipxe/local/usb.h.efi new file mode 100644 index 00000000..be2ccaef --- /dev/null +++ b/roles/netbootxyz/files/ipxe/local/usb.h.efi @@ -0,0 +1,2 @@ +/* usb.h */ +#define USB_EFI diff --git a/roles/netbootxyz/tasks/generate_disks.yml b/roles/netbootxyz/tasks/generate_disks.yml index db843f42..44736b3a 100644 --- a/roles/netbootxyz/tasks/generate_disks.yml +++ b/roles/netbootxyz/tasks/generate_disks.yml @@ -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 - setup: + - include: generate_disks_base.yml - - 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" + - include: generate_disks_legacy.yml + when: + - generate_disks_legacy | default(true) | bool - - name: Install required packages - package: - name: "{{ item }}" - 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" } + - include: generate_disks_efi.yml + when: + - generate_disks_efi | default(true) | bool diff --git a/roles/netbootxyz/tasks/generate_disks_arm.yml b/roles/netbootxyz/tasks/generate_disks_arm.yml new file mode 100644 index 00000000..e69de29b diff --git a/roles/netbootxyz/tasks/generate_disks_base.yml b/roles/netbootxyz/tasks/generate_disks_base.yml new file mode 100644 index 00000000..3d2bfc4b --- /dev/null +++ b/roles/netbootxyz/tasks/generate_disks_base.yml @@ -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 \ No newline at end of file diff --git a/roles/netbootxyz/tasks/generate_disks_efi.yml b/roles/netbootxyz/tasks/generate_disks_efi.yml new file mode 100644 index 00000000..ea6cdb7b --- /dev/null +++ b/roles/netbootxyz/tasks/generate_disks_efi.yml @@ -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" } diff --git a/roles/netbootxyz/tasks/generate_disks_legacy.yml b/roles/netbootxyz/tasks/generate_disks_legacy.yml new file mode 100644 index 00000000..70bcced4 --- /dev/null +++ b/roles/netbootxyz/tasks/generate_disks_legacy.yml @@ -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 diff --git a/roles/netbootxyz/tasks/generate_menus.yml b/roles/netbootxyz/tasks/generate_menus.yml index 28c1da27..f4601153 100644 --- a/roles/netbootxyz/tasks/generate_menus.yml +++ b/roles/netbootxyz/tasks/generate_menus.yml @@ -1,11 +1,11 @@ --- - name: Combine overrides with defaults set_fact: - _my_releases: "{{ releases|combine(release_overrides, recursive=True) }}" + _releases: "{{ releases|combine(release_overrides, recursive=True) }}" - name: Set releases with user overrides set_fact: - releases: "{{ _my_releases }}" + releases: "{{ _releases }}" - name: Generate directories file: @@ -16,6 +16,10 @@ debug: var: releases + - name: Dump endpoint vars for debugging + debug: + var: endpoints + - name: Generate netboot.xyz source files templates template: src: "{{ item.src }}" diff --git a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 index 7cfa5eb1..816c5c79 100644 --- a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 +++ b/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 @@ -19,8 +19,8 @@ prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe me :dhcp echo dhcp || goto netconfig -isset ${next-server} && iseq ${filename} netboot.xyz.kpxe && goto tftpmenu -isset ${next-server} && iseq ${filename} netboot.xyz.efi && goto tftpmenu +isset ${next-server} && iseq ${filename} {{ site_name }}.kpxe && goto tftpmenu || +isset ${next-server} && iseq ${filename} {{ site_name }}.efi && goto tftpmenu || goto menu :failsafe @@ -52,11 +52,15 @@ goto menu || goto failsafe chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} && goto menu :menu +{% if bootloader_https_enabled | bool %} set conn_type https chain --autofree https://${boot_domain}/menu.ipxe || echo ${HTTPS_ERR} sleep 5 +{% endif %} +{% if bootloader_http_enabled | bool %} set conn_type http chain --autofree http://${boot_domain}/menu.ipxe || echo ${HTTP_ERR} +{% endif %} goto localboot :localboot diff --git a/roles/netbootxyz/templates/menu/boot.ipxe.j2 b/roles/netbootxyz/templates/menu/boot.cfg.j2 similarity index 90% rename from roles/netbootxyz/templates/menu/boot.ipxe.j2 rename to roles/netbootxyz/templates/menu/boot.cfg.j2 index e3bae2b0..49514ee2 100644 --- a/roles/netbootxyz/templates/menu/boot.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/boot.cfg.j2 @@ -8,22 +8,22 @@ set site_name {{ site_name }} set boot_domain {{ boot_domain }} # set location of memdisk -set memdisk http://${boot_domain}/memdisk +set memdisk {{ memdisk_location }} # signature check enabled? -set sigs_enabled true +set sigs_enabled {{ sigs_enabled | default(false) | bool }} # 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 sigs http://${boot_domain}/sigs/ +set sigs {{ sigs_location }} # set location of latest iPXE set ipxe_disk netboot.xyz-undionly.kpxe # set location of custom netboot.xyz live assets -set live_endpoint https://github.com/netbootxyz +set live_endpoint {{ live_endpoint }} ############################## # netboot-xyz hosted endpoints diff --git a/roles/netbootxyz/templates/menu/bsd.ipxe.j2 b/roles/netbootxyz/templates/menu/bsd.ipxe.j2 index ac5a5af0..3fcaa8cc 100644 --- a/roles/netbootxyz/templates/menu/bsd.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/bsd.ipxe.j2 @@ -9,7 +9,7 @@ iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} # BSD based 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 %} item {{ key }} ${space} {{ value.name }} {% endif %} @@ -38,4 +38,4 @@ exit 0 :changebits iseq ${arch} x86_64 && set arch i386 || set arch x86_64 -goto bsd_menu \ No newline at end of file +goto bsd_menu diff --git a/roles/netbootxyz/templates/menu/gentoo.ipxe.j2 b/roles/netbootxyz/templates/menu/gentoo.ipxe.j2 new file mode 100644 index 00000000..fcc245b7 --- /dev/null +++ b/roles/netbootxyz/templates/menu/gentoo.ipxe.j2 @@ -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 diff --git a/roles/netbootxyz/templates/menu/index.html b/roles/netbootxyz/templates/menu/index.html deleted file mode 100644 index a62f838c..00000000 --- a/roles/netbootxyz/templates/menu/index.html +++ /dev/null @@ -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... diff --git a/roles/netbootxyz/templates/menu/index.html.j2 b/roles/netbootxyz/templates/menu/index.html.j2 new file mode 100644 index 00000000..36efcf75 --- /dev/null +++ b/roles/netbootxyz/templates/menu/index.html.j2 @@ -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 %} \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/linux.ipxe.j2 b/roles/netbootxyz/templates/menu/linux.ipxe.j2 index d05212d1..094d2d52 100644 --- a/roles/netbootxyz/templates/menu/linux.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/linux.ipxe.j2 @@ -6,7 +6,7 @@ goto ${menu} || menu Linux Installers - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} 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 %} item {{ key }} ${space} {{ value.name }} {% endif %} diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index f3e4010f..e9d8be3e 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -6,7 +6,7 @@ goto ${menu} || menu Live Boot Distributions - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Live Boot Distributions -item liveubuntu ${space} Ubuntu Live +item live-ubuntu ${space} Ubuntu Live choose menu || goto live_exit echo ${cls} goto ${menu} || diff --git a/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 b/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 index cd4bea59..1546c526 100644 --- a/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 @@ -6,17 +6,32 @@ goto ${menu} || menu Live Ubuntu Default (Unity) - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} 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 echo ${cls} goto ${menu} || iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu -:bionic-18.04-default -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 -initrd ${live_endpoint}${ubuntu-18.04-live-kernel}initrd +{% for key, value in endpoints.items() | sort %} +{% if value.os == "ubuntu" and 'squash' in key %} +{% 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 +{% endif %} +{% endfor %} +{% endif %} +{% endfor %} + :change_menu chain ${menu}.ipxe || goto error goto live_menu diff --git a/roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 deleted file mode 100644 index 5739d0dd..00000000 --- a/roles/netbootxyz/templates/menu/liveubuntu.ipxe.j2 +++ /dev/null @@ -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 - diff --git a/roles/netbootxyz/templates/menu/mageia.ipxe.j2 b/roles/netbootxyz/templates/menu/mageia.ipxe.j2 new file mode 100644 index 00000000..0c40d1cf --- /dev/null +++ b/roles/netbootxyz/templates/menu/mageia.ipxe.j2 @@ -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 diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index 26e13ee1..ce6c25fd 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -1,7 +1,7 @@ #!ipxe :start -chain --autofree boot.ipxe || +chain --autofree boot.cfg || iseq ${cls} serial && goto ignore_cls || set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J" set cls ${cls:string} diff --git a/roles/netbootxyz/templates/menu/rhel.ipxe.j2 b/roles/netbootxyz/templates/menu/rhel.ipxe.j2 new file mode 100644 index 00000000..03acdca8 --- /dev/null +++ b/roles/netbootxyz/templates/menu/rhel.ipxe.j2 @@ -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 diff --git a/roles/netbootxyz/templates/menu/windows.ipxe.j2 b/roles/netbootxyz/templates/menu/windows.ipxe.j2 new file mode 100644 index 00000000..d97145ed --- /dev/null +++ b/roles/netbootxyz/templates/menu/windows.ipxe.j2 @@ -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 diff --git a/roles/netbootxyz/vars/ubuntu.yml b/roles/netbootxyz/vars/ubuntu.yml index 70c4e02a..ea1af5fe 100644 --- a/roles/netbootxyz/vars/ubuntu.yml +++ b/roles/netbootxyz/vars/ubuntu.yml @@ -1,8 +1,13 @@ --- netbootxyz_packages: - apache2 + - binutils-dev + - binutils-aarch64-linux-gnu + - gcc-aarch64-linux-gnu - build-essential - genisoimage - git + - isolinux - liblzma-dev - syslinux + - syslinux-common \ No newline at end of file diff --git a/user_overrides.yml b/user_overrides.yml index 3d03cf23..6c052f02 100644 --- a/user_overrides.yml +++ b/user_overrides.yml @@ -2,7 +2,7 @@ # overrides defaults in netbootxyz role generate_menus: true -generate_disks: false +generate_disks: true # set desired site name #site_name: mysitename.com @@ -13,6 +13,10 @@ generate_disks: false # set boot version #boot_version: 1.00 +#bootloader_tftp_enabled: false +#bootloader_https_enabled: true +#bootloader_http_enabled: true + # set overrides from standard netboot.xyz defaults release_overrides: alpinelinux: From 1b9f16867a40210cf5e8873fca7a04df6bb1b658 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:31:06 +0000 Subject: [PATCH 016/169] Version bump for netbootxyz/ubuntu-core-18.04:master new tag 4.15.0.20.23-f27a244c --- endpoints.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 4f8a9833..ecb35f2e 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -5,10 +5,12 @@ endpoints: - initrd - vmlinuz ubuntu-18.04-live-kernel: - path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-81ae0834/ + path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-f27a244c/ files: - initrd - vmlinuz + os: ubuntu + version: 18.04 ubuntu-18.04-default-squash: path: /ubuntu-squash/releases/download/18.04.3-5b9d4326/ files: From 17a87c809a85b537dfdf94ce0fcaec3cfecccfb3 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:32:07 +0000 Subject: [PATCH 017/169] Version bump for netbootxyz/ubuntu-core-19.10:master new tag 5.3.0.18.21-83679d1e --- endpoints.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index ecb35f2e..9a501e16 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,16 +1,16 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ - files: - - initrd - - vmlinuz - ubuntu-18.04-live-kernel: - path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-f27a244c/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-83679d1e/ files: - initrd - vmlinuz os: ubuntu - version: 18.04 + version: 19.1 + ubuntu-18.04-live-kernel: + path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-81ae0834/ + files: + - initrd + - vmlinuz ubuntu-18.04-default-squash: path: /ubuntu-squash/releases/download/18.04.3-5b9d4326/ files: From 573832b7818d909ccdcea1d9b1b753f1185e3d68 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:34:42 +0000 Subject: [PATCH 018/169] Version bump for netbootxyz/manjaro-core-18.x:master new tag 5.3.8-8ec3175f --- endpoints.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 9a501e16..898b0b91 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,11 +1,9 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-83679d1e/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ files: - initrd - vmlinuz - os: ubuntu - version: 19.1 ubuntu-18.04-live-kernel: path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-81ae0834/ files: @@ -26,7 +24,9 @@ endpoints: - initrd - vmlinuz manjaro-18.x-live-kernel: - path: /manjaro-core-18.x/releases/download/5.3.8-d0e4054f/ + path: /manjaro-core-18.x/releases/download/5.3.8-8ec3175f/ files: - initrd - vmlinuz + os: manjaro + version: 18.x From 7b300a0b15b12e69a8c1fa102fe01ebc02fd96be Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:35:11 +0000 Subject: [PATCH 019/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2-cb2c17ba --- endpoints.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 898b0b91..c092ab82 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -14,19 +14,19 @@ endpoints: files: - filesystem.squashfs debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-04fe0fb9/ + path: /debian-core-10/releases/download/4.19.67-2-cb2c17ba/ files: - initrd - vmlinuz + os: debian + version: 10 debian-9-live-kernel: path: /debian-core-9/releases/download/4.9.189-3-152f39d8/ files: - initrd - vmlinuz manjaro-18.x-live-kernel: - path: /manjaro-core-18.x/releases/download/5.3.8-8ec3175f/ + path: /manjaro-core-18.x/releases/download/5.3.8-d0e4054f/ files: - initrd - vmlinuz - os: manjaro - version: 18.x From 412be8a16bec17b66926fa1268bb40808324242a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:35:58 +0000 Subject: [PATCH 020/169] Version bump for netbootxyz/debian-core-9:master new tag 4.9.189-3-44deb8e4 --- endpoints.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index c092ab82..9696c81c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -14,19 +14,21 @@ endpoints: files: - filesystem.squashfs debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-cb2c17ba/ + path: /debian-core-10/releases/download/4.19.67-2-04fe0fb9/ + files: + - initrd + - vmlinuz + debian-9-live-kernel: + path: /debian-core-9/releases/download/4.9.189-3-44deb8e4/ files: - initrd - vmlinuz os: debian - version: 10 - debian-9-live-kernel: - path: /debian-core-9/releases/download/4.9.189-3-152f39d8/ - files: - - initrd - - vmlinuz + version: 9 manjaro-18.x-live-kernel: - path: /manjaro-core-18.x/releases/download/5.3.8-d0e4054f/ + path: /manjaro-core-18.x/releases/download/5.3.8-8ec3175f/ files: - initrd - vmlinuz + os: manjaro + version: 18.x From 77d02928b248854976acded1ad1f9f75ba309900 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:47:09 +0000 Subject: [PATCH 021/169] Version bump for netbootxyz/ubuntu-core-19.10:master new tag 5.3.0.18.21-3809eacb --- endpoints.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 9696c81c..91980f65 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,9 +1,11 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-3809eacb/ files: - initrd - vmlinuz + os: ubuntu + version: '19.10' ubuntu-18.04-live-kernel: path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-81ae0834/ files: From 7dd945b222bc8dbabc10b1dd176ee4fd042fa976 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 18:51:19 +0000 Subject: [PATCH 022/169] Version bump for netbootxyz/ubuntu-core-18.04:master new tag 4.15.0.20.23-fe234d14 --- endpoints.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 91980f65..9d432e74 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,16 +1,16 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-3809eacb/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ + files: + - initrd + - vmlinuz + ubuntu-18.04-live-kernel: + path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-fe234d14/ files: - initrd - vmlinuz os: ubuntu - version: '19.10' - ubuntu-18.04-live-kernel: - path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-81ae0834/ - files: - - initrd - - vmlinuz + version: '18.04' ubuntu-18.04-default-squash: path: /ubuntu-squash/releases/download/18.04.3-5b9d4326/ files: From 70cf9ff19df307e91bb587302d37c2f8b3c4c54c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 19:04:19 +0000 Subject: [PATCH 023/169] Version bump for netbootxyz/ubuntu-squash:master new tag 18.04.3-dd5a3b1d --- endpoints.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 9d432e74..8aaf5652 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -12,9 +12,12 @@ endpoints: os: ubuntu version: '18.04' ubuntu-18.04-default-squash: - path: /ubuntu-squash/releases/download/18.04.3-5b9d4326/ + path: /ubuntu-squash/releases/download/18.04.3-dd5a3b1d/ files: - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: core debian-10-live-kernel: path: /debian-core-10/releases/download/4.19.67-2-04fe0fb9/ files: From 5b033b4640ddbe8da8cb43a9bbbc99cf961e7d77 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 20:07:27 +0000 Subject: [PATCH 024/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2-76176a24 --- endpoints.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 8aaf5652..810ee8e4 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -19,10 +19,12 @@ endpoints: version: '18.04' flavor: core debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-04fe0fb9/ + path: /debian-core-10/releases/download/4.19.67-2-76176a24/ files: - initrd - vmlinuz + os: debian + version: '10' debian-9-live-kernel: path: /debian-core-9/releases/download/4.9.189-3-44deb8e4/ files: From edccba50f4b517a5c24d22a74a4906c128528db2 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 10 Nov 2019 12:10:25 -0800 Subject: [PATCH 025/169] manual bump for 19.10 to deal with build changes --- endpoints.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 810ee8e4..fcab3b2d 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -4,6 +4,8 @@ endpoints: files: - initrd - vmlinuz + os: ubuntu + version: '19.10' ubuntu-18.04-live-kernel: path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-fe234d14/ files: From eabb50e24db747519e0b6fbb0592c3d1d5af483f Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 10 Nov 2019 12:19:57 -0800 Subject: [PATCH 026/169] adding basic docker builder --- Dockerfile-build | 31 +++++++++++++++++++++++++++++++ README.md | 21 ++++++++++++++++++++- docker-build-root/dumper.sh | 20 ++++++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 Dockerfile-build create mode 100755 docker-build-root/dumper.sh diff --git a/Dockerfile-build b/Dockerfile-build new file mode 100644 index 00000000..b66c0b96 --- /dev/null +++ b/Dockerfile-build @@ -0,0 +1,31 @@ +FROM ubuntu:bionic as builder + +RUN \ + echo "**** install deps ****" && \ + apt-get update && \ + apt-get install -y \ + ansible \ + apache2 \ + build-essential \ + genisoimage \ + git \ + liblzma-dev \ + python-minimal \ + python-yaml \ + syslinux + +# repo for build +COPY . /ansible + +RUN \ + echo "**** running ansible ****" && \ + cd /ansible && \ + ansible-playbook -i inventory/all netbootxyz.yml + +# runtime stage +FROM alpine:3.10 + +COPY --from=builder /var/www/html/ /mnt/ +COPY docker-root/ / + +ENTRYPOINT [ "/dumper.sh" ] diff --git a/README.md b/README.md index cb936632..80d497f4 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,32 @@ The source files are now templates in order to make things a bit easier to gener This is a seperate repo for now but will more than likely roll into the existing repo. +# Building locally + +## With Ansible + To generate, run: ``` ansible-playbook -i inventory/all netbootxyz.yml ``` -It'll handle source generation as well as ipxe disk generation with the users settings. The disk generation was worked on a while back so it needs work to catch it up to the existing state of netboot.xyz. +The build output will be located in /var/www/html on Debian OSs. + +## With Docker + +``` +docker build -t localbuild -f Dockerfile-build . +docker run --rm -it -v $(pwd):/buildout localbuild +``` + +The build output will be in the generated folder `buildout` + +## Local Overides + +Ansible will handle source generation as well as ipxe disk generation with your settings. The disk generation was worked on a while back so it needs work to catch it up to the existing state of netboot.xyz. If you want to override the defaults, you can put overrides in user_overrides.yml. See file for examples. +Also note many user customizations are located in the boot.cfg file for the IPXE menus. A high level of customization can be achieved using our stock build output and hosting this along with the menus locally. + diff --git a/docker-build-root/dumper.sh b/docker-build-root/dumper.sh new file mode 100755 index 00000000..1018bd54 --- /dev/null +++ b/docker-build-root/dumper.sh @@ -0,0 +1,20 @@ +#! /bin/sh + +# check for dump dir +if [ -d /buildout ]; then + # if there are no files in that directory use 777 perms as root + if [ `find /buildout -prune -empty 2>/dev/null` ]; then + /bin/mkdir -p /buildout/buildout + /bin/cp -r /mnt/* /buildout/buildout/ + /bin/chmod 777 -R /buildout/buildout + # match the ownership of the first file we see + else + PERMS=`/usr/bin/find /buildout/* -print -quit |xargs stat -c "%u:%g"` + /bin/mkdir -p /buildout/buildout + /bin/cp -r /mnt/* /buildout/buildout/ + /bin/chown $PERMS -R /buildout/buildout + fi +else + /bin/echo "/buildout not found exiting" + exit 1 +fi From b9795a53b2af992bb9344970fa4d52514da45447 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 10 Nov 2019 12:22:16 -0800 Subject: [PATCH 027/169] typo --- Dockerfile-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile-build b/Dockerfile-build index b66c0b96..fd786c27 100644 --- a/Dockerfile-build +++ b/Dockerfile-build @@ -26,6 +26,6 @@ RUN \ FROM alpine:3.10 COPY --from=builder /var/www/html/ /mnt/ -COPY docker-root/ / +COPY docker-build-root/ / ENTRYPOINT [ "/dumper.sh" ] From a5833c2b9fa218d6e137844fdfcc1bcb374fc9f4 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 20:45:34 +0000 Subject: [PATCH 028/169] Version bump for netbootxyz/debian-squash:master new tag 10.1.0-40d0678e --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index fcab3b2d..099268cd 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -41,3 +41,10 @@ endpoints: - vmlinuz os: manjaro version: 18.x + 'debian-10-default-squash:': + path: /debian-squash/releases/download/10.1.0-40d0678e/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: core From f392c31340e0b3ae646d87b026f493ef328c9dae Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 20:46:25 +0000 Subject: [PATCH 029/169] Version bump for netbootxyz/debian-squash:master new tag 10.1.0-36e1d734 --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 099268cd..39d6696a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -48,3 +48,10 @@ endpoints: os: debian version: '10' flavor: core + debian-10-default-squash: + path: /debian-squash/releases/download/10.1.0-36e1d734/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: core From 690658e23b9ba3bfe2687583692a4c5dba88bd41 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 20:51:36 +0000 Subject: [PATCH 030/169] Version bump for netbootxyz/ubuntu-squash:master new tag 18.04.3-b9bffe60 --- endpoints.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 39d6696a..11ffabea 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -14,12 +14,13 @@ endpoints: os: ubuntu version: '18.04' ubuntu-18.04-default-squash: - path: /ubuntu-squash/releases/download/18.04.3-dd5a3b1d/ + path: /ubuntu-squash/releases/download/18.04.3-b9bffe60/ files: - filesystem.squashfs os: ubuntu version: '18.04' flavor: core + kernel: ubuntu-18.04-live-kernel debian-10-live-kernel: path: /debian-core-10/releases/download/4.19.67-2-76176a24/ files: From 8724cfcb1770acdcc739266ca88a0f6f42579206 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 20:58:47 +0000 Subject: [PATCH 031/169] Version bump for netbootxyz/debian-squash:master new tag 10.1.0-600c59c0 --- endpoints.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 11ffabea..2c0b3cdb 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -50,9 +50,10 @@ endpoints: version: '10' flavor: core debian-10-default-squash: - path: /debian-squash/releases/download/10.1.0-36e1d734/ + path: /debian-squash/releases/download/10.1.0-600c59c0/ files: - filesystem.squashfs os: debian version: '10' flavor: core + kernel: debian-10-live-kernel From 267f8761de8ee684e288d1a17f2fbf62d0ed489b Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 10 Nov 2019 13:06:06 -0800 Subject: [PATCH 032/169] manually rip out typo --- endpoints.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 2c0b3cdb..db4417bd 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -42,13 +42,6 @@ endpoints: - vmlinuz os: manjaro version: 18.x - 'debian-10-default-squash:': - path: /debian-squash/releases/download/10.1.0-40d0678e/ - files: - - filesystem.squashfs - os: debian - version: '10' - flavor: core debian-10-default-squash: path: /debian-squash/releases/download/10.1.0-600c59c0/ files: From c12eee4b0c25990a0c0b5621e16bd9ff588f6566 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 10 Nov 2019 21:16:06 +0000 Subject: [PATCH 033/169] Version bump for netbootxyz/manjaro-squash:master new tag 18.1.0-f48d62ba --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index db4417bd..1f7be795 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -50,3 +50,12 @@ endpoints: version: '10' flavor: core kernel: debian-10-live-kernel + manjaro-18.1.0-default-squash: + path: /manjaro-squash/releases/download/18.1.0-f48d62ba/ + files: + - livefs.sfs + - rootfs.sfs + os: manjaro + version: 18.1.0 + flavor: architect + kernel: manjaro-18.x-live-kernel From a7927586dc2f5a5c34b3a6bb57c3a9a51e3085e0 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sun, 10 Nov 2019 22:22:41 +0000 Subject: [PATCH 034/169] Add Live OS menus for Debian, Ubuntu, Manjaro --- .../templates/menu/live-debian.ipxe.j2 | 42 +++++++++++++++++++ .../templates/menu/live-manjaro.ipxe.j2 | 42 +++++++++++++++++++ ...tu-default.ipxe.j2 => live-ubuntu.ipxe.j2} | 2 +- roles/netbootxyz/templates/menu/live.ipxe.j2 | 2 + 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 roles/netbootxyz/templates/menu/live-debian.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 rename roles/netbootxyz/templates/menu/{liveubuntu-default.ipxe.j2 => live-ubuntu.ipxe.j2} (99%) diff --git a/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 b/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 new file mode 100644 index 00000000..3a819223 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 @@ -0,0 +1,42 @@ +#!ipxe + +goto ${menu} || + +:live_menu +menu Live Debian Default - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap Live Debian +{% for key, value in endpoints.items() | sort %} +{% if value.os == "debian" and 'squash' in key %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +choose menu || goto live_exit +echo ${cls} +goto ${menu} || +iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "debian" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +imgfree +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=live fetch=${fetch_url} initrd=initrd +initrd ${live_endpoint}{{ value.path }}initrd +boot +{% endif %} +{% endfor %} +{% endif %} +{% endfor %} + +:change_menu +chain ${menu}.ipxe || goto error +goto live_menu + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 b/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 new file mode 100644 index 00000000..5d0a22ab --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 @@ -0,0 +1,42 @@ +#!ipxe + +goto ${menu} || + +:live_menu +menu Manjaro Live - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap Manjaro Live +{% for key, value in endpoints.items() | sort %} +{% if value.os == "manjaro" and 'squash' in key %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +choose menu || goto live_exit +echo ${cls} +goto ${menu} || +iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "manjaro" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +imgfree +set fetch_url ${live_endpoint}{{ value.path }} +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +kernel ${live_endpoint}{{ value.path }}vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} initrd=initrd +initrd ${live_endpoint}{{ value.path }}initrd +boot +{% endif %} +{% endfor %} +{% endif %} +{% endfor %} + +:change_menu +chain ${menu}.ipxe || goto error +goto live_menu + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 similarity index 99% rename from roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 rename to roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 index 1546c526..a78febd0 100644 --- a/roles/netbootxyz/templates/menu/liveubuntu-default.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 @@ -20,13 +20,13 @@ iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu {% if value.os == "ubuntu" and 'squash' in key %} {% set kernel_name = value.kernel %} :{{ key }} +imgfree 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 - {% endif %} {% endfor %} {% endif %} diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index e9d8be3e..5ac29380 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -6,6 +6,8 @@ goto ${menu} || menu Live Boot Distributions - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Live Boot Distributions +item live-debian ${space} Debian Live +item live-manjaro ${space} Manjaro Live item live-ubuntu ${space} Ubuntu Live choose menu || goto live_exit echo ${cls} From 06dda7a55f3c6736c8a97a2cc8995f040d7ea801 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 02:51:56 +0000 Subject: [PATCH 035/169] Version bump for netbootxyz/manjaro-core-18.x:master new tag 5.3.8-5c2c1182 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 1f7be795..7561224a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -36,7 +36,7 @@ endpoints: os: debian version: 9 manjaro-18.x-live-kernel: - path: /manjaro-core-18.x/releases/download/5.3.8-8ec3175f/ + path: /manjaro-core-18.x/releases/download/5.3.8-5c2c1182/ files: - initrd - vmlinuz From 0b485b89005092265d0fd52b6709d9d4bc47c55c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 13:47:04 +0000 Subject: [PATCH 036/169] Version bump for netbootxyz/ubuntu-squash:xubuntu-18.04 new tag 18.04.3-d9bd73c3 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 7561224a..4888cd09 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -59,3 +59,11 @@ endpoints: version: 18.1.0 flavor: architect kernel: manjaro-18.x-live-kernel + ubuntu-18.04-xfce-squash: + path: /ubuntu-squash/releases/download/18.04.3-d9bd73c3/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: xfce + kernel: ubuntu-18.04-live-kernel From a603011f8a427323eaf6ea46a249747bd249703c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 18:15:57 +0000 Subject: [PATCH 037/169] Version bump for netbootxyz/manjaro-core-18.x:master new tag 5.3.8-25c643fa --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 4888cd09..d2097545 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -36,7 +36,7 @@ endpoints: os: debian version: 9 manjaro-18.x-live-kernel: - path: /manjaro-core-18.x/releases/download/5.3.8-5c2c1182/ + path: /manjaro-core-18.x/releases/download/5.3.8-25c643fa/ files: - initrd - vmlinuz From a2faceaec7e535d067d63948144e9f1d2917041f Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 23:03:24 +0000 Subject: [PATCH 038/169] Version bump for netbootxyz/ubuntu-squash:kubuntu-18.04 new tag 18.04.3-33e8e2f8 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index d2097545..418c44e7 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -67,3 +67,11 @@ endpoints: version: '18.04' flavor: xfce kernel: ubuntu-18.04-live-kernel + ubuntu-18.04-KDE-squash: + path: /ubuntu-squash/releases/download/18.04.3-33e8e2f8/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: KDE + kernel: ubuntu-18.04-live-kernel From c7605bb49ebbb1006e770910a69e2ee5c8612eba Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 23:10:55 +0000 Subject: [PATCH 039/169] Version bump for netbootxyz/ubuntu-squash:lubuntu-18.04 new tag 18.04.3-2f9cd5be --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 418c44e7..afd56fa5 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -75,3 +75,11 @@ endpoints: version: '18.04' flavor: KDE kernel: ubuntu-18.04-live-kernel + ubuntu-18.04-LXDE-squash: + path: /ubuntu-squash/releases/download/18.04.3-2f9cd5be/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: LXDE + kernel: ubuntu-18.04-live-kernel From 2e5710ccbcfd1f2ab8990ceb9fce5705c82868fc Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 23:23:34 +0000 Subject: [PATCH 040/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-budgie-18.04 new tag 18.04.3-fbf44fff --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index afd56fa5..fddfd63e 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -83,3 +83,11 @@ endpoints: version: '18.04' flavor: LXDE kernel: ubuntu-18.04-live-kernel + ubuntu-18.04-Budgie-squash: + path: /ubuntu-squash/releases/download/18.04.3-fbf44fff/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: Budgie + kernel: ubuntu-18.04-live-kernel From bc5a73c625811d53b90de2fef065d2557947ce67 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 23:34:18 +0000 Subject: [PATCH 041/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-mate-18.04 new tag 18.04.3-c629718a --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index fddfd63e..e81a7cb6 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -91,3 +91,11 @@ endpoints: version: '18.04' flavor: Budgie kernel: ubuntu-18.04-live-kernel + ubuntu-18.04-MATE-squash: + path: /ubuntu-squash/releases/download/18.04.3-c629718a/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: MATE + kernel: ubuntu-18.04-live-kernel From 0b18e8ddd4b9480d03a8735b4de6512642b7ac28 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 23:38:07 +0000 Subject: [PATCH 042/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-server-18.04 new tag 18.04.3-ade0b2cc --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index e81a7cb6..f3d0dee9 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -99,3 +99,11 @@ endpoints: version: '18.04' flavor: MATE kernel: ubuntu-18.04-live-kernel + ubuntu-18.04-server-squash: + path: /ubuntu-squash/releases/download/18.04.3-ade0b2cc/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: server + kernel: ubuntu-18.04-live-kernel From 41728c7dc923eb5286c84159191c219a19063c45 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 11 Nov 2019 23:48:44 +0000 Subject: [PATCH 043/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-kylin-18.04 new tag 18.04.3-8c2102eb --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index f3d0dee9..045f19a3 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -107,3 +107,11 @@ endpoints: version: '18.04' flavor: server kernel: ubuntu-18.04-live-kernel + ubuntu-18.04-kylin-squash: + path: /ubuntu-squash/releases/download/18.04.3-8c2102eb/ + files: + - filesystem.squashfs + os: ubuntu + version: '18.04' + flavor: kylin + kernel: ubuntu-18.04-live-kernel From 883d838ffb017e0aead6386d6849da82d58d59fc Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 08:35:52 +0000 Subject: [PATCH 044/169] Version bump for netbootxyz/ubuntu-squash:xubuntu-19.10 new tag 862cad91-9437400f --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 045f19a3..6956aca2 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -115,3 +115,11 @@ endpoints: version: '18.04' flavor: kylin kernel: ubuntu-18.04-live-kernel + ubuntu-19.10-xfce-squash: + path: /ubuntu-squash/releases/download/862cad91-9437400f/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: xfce + kernel: ubuntu-19.10-live-kernel From 9a5aaf77668ff106bc0f308172c31121acfea292 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 08:56:39 +0000 Subject: [PATCH 045/169] Version bump for netbootxyz/ubuntu-squash:kubuntu-19.10 new tag 9854741e-b243fefb --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 6956aca2..c877ffe1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -123,3 +123,11 @@ endpoints: version: '19.10' flavor: xfce kernel: ubuntu-19.10-live-kernel + ubuntu-19.10-KDE-squash: + path: /ubuntu-squash/releases/download/9854741e-b243fefb/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: KDE + kernel: ubuntu-19.10-live-kernel From 6d011430ea216ec25a1f13a3e494e31f44822982 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 09:02:57 +0000 Subject: [PATCH 046/169] Version bump for netbootxyz/ubuntu-squash:lubuntu-19.10 new tag 8b8b0336-f53591b5 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index c877ffe1..a9d7b987 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -131,3 +131,11 @@ endpoints: version: '19.10' flavor: KDE kernel: ubuntu-19.10-live-kernel + ubuntu-19.10-LXDE-squash: + path: /ubuntu-squash/releases/download/8b8b0336-f53591b5/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: LXDE + kernel: ubuntu-19.10-live-kernel From a7a4d652cc49d39cdc09c2c62b438f8e8d003ced Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 09:12:03 +0000 Subject: [PATCH 047/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-mate-19.10 new tag b8a2a185-48069fc4 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index a9d7b987..a57ff07c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -139,3 +139,11 @@ endpoints: version: '19.10' flavor: LXDE kernel: ubuntu-19.10-live-kernel + ubuntu-19.10-MATE-squash: + path: /ubuntu-squash/releases/download/b8a2a185-48069fc4/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: MATE + kernel: ubuntu-19.10-live-kernel From 2f609c925931583c06f330994e60232d5ec79297 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 09:17:35 +0000 Subject: [PATCH 048/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-budgie-19.10 new tag 945f7f4b-bda09025 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index a57ff07c..b4ccfd33 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -147,3 +147,11 @@ endpoints: version: '19.10' flavor: MATE kernel: ubuntu-19.10-live-kernel + ubuntu-19.10-Budgie-squash: + path: /ubuntu-squash/releases/download/945f7f4b-bda09025/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: Budgie + kernel: ubuntu-18.04-live-kernel From 3e426d826dfb9dd2af86e039ae52a64417929d44 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 09:35:09 +0000 Subject: [PATCH 049/169] Version bump for netbootxyz/debian-squash:xfce-10 new tag 10.1.0-a0eae41d --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index b4ccfd33..4065b0f1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -155,3 +155,11 @@ endpoints: version: '19.10' flavor: Budgie kernel: ubuntu-18.04-live-kernel + debian-10-xfce-squash: + path: /debian-squash/releases/download/10.1.0-a0eae41d/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: xfce + kernel: debian-10-live-kernel From 8a9dabae93714abb7e5ceac725885b7e4257d671 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 11:05:19 +0000 Subject: [PATCH 050/169] Version bump for netbootxyz/debian-squash:gnome-10 new tag 10.1.0-787d3b4a --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 4065b0f1..a270080c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -163,3 +163,11 @@ endpoints: version: '10' flavor: xfce kernel: debian-10-live-kernel + debian-10-gnome-squash: + path: /debian-squash/releases/download/10.1.0-787d3b4a/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: gnome + kernel: debian-10-live-kernel From 797a11049c17d77d7f4c7cbb209e13bcd82a7629 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 11:16:37 +0000 Subject: [PATCH 051/169] Version bump for netbootxyz/debian-squash:cinnamon-10 new tag 10.1.0-51162b7a --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index a270080c..ecd88ac5 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -171,3 +171,11 @@ endpoints: version: '10' flavor: gnome kernel: debian-10-live-kernel + debian-10-cinnamon-squash: + path: /debian-squash/releases/download/10.1.0-51162b7a/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: cinnamon + kernel: debian-10-live-kernel From 28397fd0d6129ccc75dd63ee6911895dc94c13e5 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 11:29:48 +0000 Subject: [PATCH 052/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-kylin-19.10 new tag e7831484-1d80183a --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index ecd88ac5..9fb0958a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -179,3 +179,11 @@ endpoints: version: '10' flavor: cinnamon kernel: debian-10-live-kernel + ubuntu-19.10-kylin-squash: + path: /ubuntu-squash/releases/download/e7831484-1d80183a/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: kylin + kernel: ubuntu-19.10-live-kernel From d47485c52b7abde268bf67f288a59edc56e71ad5 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 11:40:27 +0000 Subject: [PATCH 053/169] Version bump for netbootxyz/debian-squash:kde-10 new tag 10.1.0-88a7a1a3 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 9fb0958a..4d01476f 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -187,3 +187,11 @@ endpoints: version: '19.10' flavor: kylin kernel: ubuntu-19.10-live-kernel + debian-10-kde-squash: + path: /debian-squash/releases/download/10.1.0-88a7a1a3/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: kde + kernel: debian-10-live-kernel From dc2d34b975719733752f7c21a11c0def52c944b5 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 11:51:31 +0000 Subject: [PATCH 054/169] Version bump for netbootxyz/debian-squash:lxde-10 new tag 10.1.0-30a4aa90 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 4d01476f..6f4332c3 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -195,3 +195,11 @@ endpoints: version: '10' flavor: kde kernel: debian-10-live-kernel + debian-10-lxde-squash: + path: /debian-squash/releases/download/10.1.0-30a4aa90/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: lxde + kernel: debian-10-live-kernel From 2e34c6d91dd622faa29fe0a755167b1fe6c4e517 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 12:00:51 +0000 Subject: [PATCH 055/169] Version bump for netbootxyz/debian-squash:lxqt-10 new tag 10.1.0-39d7e341 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 6f4332c3..660ad2c0 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -203,3 +203,11 @@ endpoints: version: '10' flavor: lxde kernel: debian-10-live-kernel + debian-10-lxqt-squash: + path: /debian-squash/releases/download/10.1.0-39d7e341/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: lxqt + kernel: debian-10-live-kernel From 9a6c2ce72240fd3534d8aab29b691dd2efeb0342 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Nov 2019 12:10:44 +0000 Subject: [PATCH 056/169] Version bump for netbootxyz/debian-squash:mate-10 new tag 10.1.0-466ca031 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 660ad2c0..b69139f8 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -211,3 +211,11 @@ endpoints: version: '10' flavor: lxqt kernel: debian-10-live-kernel + debian-10-mate-squash: + path: /debian-squash/releases/download/10.1.0-466ca031/ + files: + - filesystem.squashfs + os: debian + version: '10' + flavor: mate + kernel: debian-10-live-kernel From 7ce0c9b3e42715ffcd9c8cc2743307f7e402461d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 15 Nov 2019 08:48:46 +0000 Subject: [PATCH 057/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2-955de981 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index b69139f8..910cfd3a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -22,7 +22,7 @@ endpoints: flavor: core kernel: ubuntu-18.04-live-kernel debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-76176a24/ + path: /debian-core-10/releases/download/4.19.67-2-955de981/ files: - initrd - vmlinuz From 149e7ce53709bd5a102ea942a081086b59bc922d Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Fri, 15 Nov 2019 13:28:03 +0000 Subject: [PATCH 058/169] Adds dynamic live debian and ubuntu menus Still requires the versions to be set but we can probably get those automatically generated too at some point Makes boot timeout configurable Adds configurable NTP to ensure time is correct when using HTTPS --- roles/netbootxyz/defaults/main.yml | 8 +++- roles/netbootxyz/templates/menu/boot.cfg.j2 | 8 ---- .../templates/menu/live-debian.ipxe.j2 | 47 +++++++++++++------ .../templates/menu/live-ubuntu.ipxe.j2 | 47 +++++++++++++------ roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 - roles/netbootxyz/templates/menu/menu.ipxe.j2 | 3 +- 6 files changed, 73 insertions(+), 41 deletions(-) diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index fe40a2f0..df5b6fa4 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -4,7 +4,9 @@ site_name: netboot.xyz boot_domain: boot.netboot.xyz boot_version: 1.04 +boot_timeout: 300000 +time_server: "0.pool.ntp.org" sigs_enabled: false img_sigs_enabled: false sigs_location: "http://${boot_domain}/sigs/" @@ -81,6 +83,8 @@ releases: menu: "linux" versions: stable: + - name: "10.0 (buster)" + code_name: "buster" - name: "9.0 (stretch)" code_name: "stretch" - name: "8.0 (jessie)" @@ -88,8 +92,8 @@ releases: - name: "7.0 (jessie)" code_name: "wheezy" testing: - - name: "buster (testing)" - code_name: "buster" + - name: "bullseye (testing)" + code_name: "bullseye" - name: "sid (unstable)" code_name: "sid" devuan: diff --git a/roles/netbootxyz/templates/menu/boot.cfg.j2 b/roles/netbootxyz/templates/menu/boot.cfg.j2 index 49514ee2..6cce00e1 100644 --- a/roles/netbootxyz/templates/menu/boot.cfg.j2 +++ b/roles/netbootxyz/templates/menu/boot.cfg.j2 @@ -25,14 +25,6 @@ set ipxe_disk netboot.xyz-undionly.kpxe # set location of custom netboot.xyz live assets set live_endpoint {{ live_endpoint }} -############################## -# netboot-xyz hosted endpoints -############################## - -{% for key, value in endpoints.iteritems() %} -set {{ key }} {{ value['path'] }} -{% endfor %} - ################################################# # determine architectures and enable menu options ################################################# diff --git a/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 b/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 index 3a819223..35c403f3 100644 --- a/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-debian.ipxe.j2 @@ -3,40 +3,57 @@ goto ${menu} || :live_menu -menu Live Debian Default - Current Arch [ ${arch} ] +set os Debian Live +menu ${os} - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap Live Debian +item --gap ${os} Versions +item buster ${space} ${os} 10 (buster) +choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors +goto ${live_version} + +:stretch {% for key, value in endpoints.items() | sort %} -{% if value.os == "debian" and 'squash' in key %} +{% if value.os == "debian" and 'squash' in key and value.version == "9" %} item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} {% endif %} {% endfor %} -choose menu || goto live_exit +goto flavor_select + +:buster +{% for key, value in endpoints.items() | sort %} +{% if value.os == "debian" and 'squash' in key and value.version == "10" %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu echo ${cls} -goto ${menu} || -iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu +goto ${flavor} || {% for key, value in endpoints.items() | sort %} {% if value.os == "debian" and 'squash' in key %} {% set kernel_name = value.kernel %} :{{ key }} -imgfree -set fetch_url ${live_endpoint}{{ value.path }}filesystem.squashfs +set squash_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=live fetch=${fetch_url} initrd=initrd -initrd ${live_endpoint}{{ value.path }}initrd -boot +set kernel_url ${live_endpoint}{{ value.path }} +goto boot {% endif %} {% endfor %} {% endif %} {% endfor %} -:change_menu -chain ${menu}.ipxe || goto error -goto live_menu +:boot +imgfree +kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot :live_exit clear menu exit 0 - diff --git a/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 index a78febd0..b9bc2505 100644 --- a/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 @@ -3,38 +3,57 @@ goto ${menu} || :live_menu -menu Live Ubuntu Default (Unity) - Current Arch [ ${arch} ] +set os Ubuntu Live +menu ${os} - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap Live Ubuntu Default (Unity) +item --gap ${os} Versions +item bionic ${space} ${os} 18.04 +item eoan ${space} ${os} 19.10 +choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors +goto ${live_version} + +:bionic {% for key, value in endpoints.items() | sort %} -{% if value.os == "ubuntu" and 'squash' in key %} +{% if value.os == "ubuntu" and 'squash' in key and value.version == "18.04" %} item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} {% endif %} {% endfor %} -choose menu || goto live_exit +goto flavor_select + +:eoan +{% for key, value in endpoints.items() | sort %} +{% if value.os == "ubuntu" and 'squash' in key and value.version == "19.10" %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu echo ${cls} -goto ${menu} || -iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu +goto ${flavor} || {% for key, value in endpoints.items() | sort %} {% if value.os == "ubuntu" and 'squash' in key %} {% set kernel_name = value.kernel %} :{{ key }} -imgfree -set fetch_url ${live_endpoint}{{ value.path }}filesystem.squashfs +set squash_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 +set kernel_url ${live_endpoint}{{ value.path }} +goto boot {% endif %} {% endfor %} {% endif %} {% endfor %} -:change_menu -chain ${menu}.ipxe || goto error -goto live_menu +:boot +imgfree +kernel ${kernel_url}vmlinuz boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot :live_exit clear menu diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index 5ac29380..31f2ed16 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -7,7 +7,6 @@ menu Live Boot Distributions - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Live Boot Distributions item live-debian ${space} Debian Live -item live-manjaro ${space} Manjaro Live item live-ubuntu ${space} Ubuntu Live choose menu || goto live_exit echo ${cls} diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index ce6c25fd..6d7ade8a 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -2,6 +2,7 @@ :start chain --autofree boot.cfg || +ntp {{ time_server }} iseq ${cls} serial && goto ignore_cls || set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J" set cls ${cls:string} @@ -57,7 +58,7 @@ item sig_check ${space} netboot.xyz [ enabled: ${sigs_enabled} ] item img_sigs_check ${space} Images [ enabled: ${img_sigs_enabled} ] isset ${github_user} && item --gap Custom Menu: || isset ${github_user} && item nbxyz-custom ${space} ${github_user}'s Custom Menu || -isset ${menu} && set timeout 0 || set timeout 300000 +isset ${menu} && set timeout 0 || set timeout {{ boot_timeout }} choose --timeout ${timeout} --default ${menu} menu || goto local echo ${cls} goto ${menu} || From 73305a39a2fcce0a2599f2890de17c5ddf210af1 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 15 Nov 2019 21:40:43 +0000 Subject: [PATCH 059/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2-8b15cf48 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 910cfd3a..1535ef40 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -22,7 +22,7 @@ endpoints: flavor: core kernel: ubuntu-18.04-live-kernel debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-955de981/ + path: /debian-core-10/releases/download/4.19.67-2-8b15cf48/ files: - initrd - vmlinuz From 7aa40334e008b713451a8f79f0f2570667cd0b31 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 15 Nov 2019 21:46:00 +0000 Subject: [PATCH 060/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2-4acbfed0 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 1535ef40..903d3c57 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -22,7 +22,7 @@ endpoints: flavor: core kernel: ubuntu-18.04-live-kernel debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-8b15cf48/ + path: /debian-core-10/releases/download/4.19.67-2-4acbfed0/ files: - initrd - vmlinuz From 6af26d509e27f0c47c57225000a3fab4a22c5bb6 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 16 Nov 2019 07:56:14 +0000 Subject: [PATCH 061/169] Version bump for netbootxyz/ubuntu-core-18.04:master new tag 4.15.0.20.23-91c3d317 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 903d3c57..498691bd 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -7,7 +7,7 @@ endpoints: os: ubuntu version: '19.10' ubuntu-18.04-live-kernel: - path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-fe234d14/ + path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ files: - initrd - vmlinuz From 2e52623fa2ed192ed1a216f6542a1c9e93fb4e8e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 16 Nov 2019 08:23:32 +0000 Subject: [PATCH 062/169] Version bump for netbootxyz/ubuntu-core-19.10:master new tag 5.3.0.18.21-aa695b8a --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 498691bd..84c0335a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -1,6 +1,6 @@ endpoints: ubuntu-19.10-live-kernel: - path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-60558c66-1.1/ + path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ files: - initrd - vmlinuz From 9721fe8421643c38abe7166908c8e6dd3aa95240 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sat, 16 Nov 2019 08:41:33 +0000 Subject: [PATCH 063/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-default-19.10 new tag ee829212-6e8d29dd --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 84c0335a..f4fbb6d2 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -219,3 +219,11 @@ endpoints: version: '10' flavor: mate kernel: debian-10-live-kernel + ubuntu-19.10-default-squash: + path: /ubuntu-squash/releases/download/ee829212-6e8d29dd/ + files: + - filesystem.squashfs + os: ubuntu + version: '19.10' + flavor: core + kernel: ubuntu-19.10-live-kernel From 0cefff109a1f57762d17c7a4723002e9b7a11072 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 16 Nov 2019 00:58:22 -0800 Subject: [PATCH 064/169] manually deleting the ubuntu server live entry, it did not build properly and publish and the LiveCDs for the server work differently --- endpoints.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index f4fbb6d2..dcc519ba 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -99,14 +99,6 @@ endpoints: version: '18.04' flavor: MATE kernel: ubuntu-18.04-live-kernel - ubuntu-18.04-server-squash: - path: /ubuntu-squash/releases/download/18.04.3-ade0b2cc/ - files: - - filesystem.squashfs - os: ubuntu - version: '18.04' - flavor: server - kernel: ubuntu-18.04-live-kernel ubuntu-18.04-kylin-squash: path: /ubuntu-squash/releases/download/18.04.3-8c2102eb/ files: From 49f9a2d1a10083c29a2d5d4c595db2a69a120714 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 04:15:22 +0000 Subject: [PATCH 065/169] Version bump for netbootxyz/debian-squash:master new tag 10.2.0-600c59c0 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index dcc519ba..cdf126e5 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -43,7 +43,7 @@ endpoints: os: manjaro version: 18.x debian-10-default-squash: - path: /debian-squash/releases/download/10.1.0-600c59c0/ + path: /debian-squash/releases/download/10.2.0-600c59c0/ files: - filesystem.squashfs os: debian From 78f73baccc63ba8f78aef87516557f25c0e1bdc6 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 04:42:21 +0000 Subject: [PATCH 066/169] Version bump for netbootxyz/debian-squash:lxde-10 new tag 10.2.0-30a4aa90 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index cdf126e5..61c321f4 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -188,7 +188,7 @@ endpoints: flavor: kde kernel: debian-10-live-kernel debian-10-lxde-squash: - path: /debian-squash/releases/download/10.1.0-30a4aa90/ + path: /debian-squash/releases/download/10.2.0-30a4aa90/ files: - filesystem.squashfs os: debian From d46eca43d39409096c37d82cb332a28abc89f213 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 04:43:41 +0000 Subject: [PATCH 067/169] Version bump for netbootxyz/debian-squash:kde-10 new tag 10.2.0-88a7a1a3 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 61c321f4..53a5d1ce 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -180,7 +180,7 @@ endpoints: flavor: kylin kernel: ubuntu-19.10-live-kernel debian-10-kde-squash: - path: /debian-squash/releases/download/10.1.0-88a7a1a3/ + path: /debian-squash/releases/download/10.2.0-88a7a1a3/ files: - filesystem.squashfs os: debian From dbd9198750025c397e755880dd266a3b0dc3d4b2 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 04:56:48 +0000 Subject: [PATCH 068/169] Version bump for netbootxyz/debian-squash:mate-10 new tag 10.2.0-466ca031 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 53a5d1ce..14d0a60f 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -204,7 +204,7 @@ endpoints: flavor: lxqt kernel: debian-10-live-kernel debian-10-mate-squash: - path: /debian-squash/releases/download/10.1.0-466ca031/ + path: /debian-squash/releases/download/10.2.0-466ca031/ files: - filesystem.squashfs os: debian From 2ac76318b6c385a54e6bc06001c92d53cd4e07d7 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 05:00:23 +0000 Subject: [PATCH 069/169] Version bump for netbootxyz/debian-squash:xfce-10 new tag 10.2.0-a0eae41d --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 14d0a60f..b170ab1d 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -148,7 +148,7 @@ endpoints: flavor: Budgie kernel: ubuntu-18.04-live-kernel debian-10-xfce-squash: - path: /debian-squash/releases/download/10.1.0-a0eae41d/ + path: /debian-squash/releases/download/10.2.0-a0eae41d/ files: - filesystem.squashfs os: debian From 9c5b1bf0fb5cef882fb1d1424ba1edc4ac2e82d0 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 05:02:29 +0000 Subject: [PATCH 070/169] Version bump for netbootxyz/debian-squash:lxqt-10 new tag 10.2.0-39d7e341 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index b170ab1d..7c19e16b 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -196,7 +196,7 @@ endpoints: flavor: lxde kernel: debian-10-live-kernel debian-10-lxqt-squash: - path: /debian-squash/releases/download/10.1.0-39d7e341/ + path: /debian-squash/releases/download/10.2.0-39d7e341/ files: - filesystem.squashfs os: debian From f2dec1b645aedf013d0ed6e4ebd2f011fefa50ef Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 05:04:28 +0000 Subject: [PATCH 071/169] Version bump for netbootxyz/debian-core-10:master new tag 4.19.67-2+deb10u1-4acbfed0 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 7c19e16b..65ed3c48 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -22,7 +22,7 @@ endpoints: flavor: core kernel: ubuntu-18.04-live-kernel debian-10-live-kernel: - path: /debian-core-10/releases/download/4.19.67-2-4acbfed0/ + path: /debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ files: - initrd - vmlinuz From 46d585e14d301cff0c7f9e44c80c2912cbbccf2d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 05:17:58 +0000 Subject: [PATCH 072/169] Version bump for netbootxyz/debian-squash:gnome-10 new tag 10.2.0-787d3b4a --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 65ed3c48..fc358f0e 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -156,7 +156,7 @@ endpoints: flavor: xfce kernel: debian-10-live-kernel debian-10-gnome-squash: - path: /debian-squash/releases/download/10.1.0-787d3b4a/ + path: /debian-squash/releases/download/10.2.0-787d3b4a/ files: - filesystem.squashfs os: debian From 2821862bddf33389f11ef84f007c7fabbd59c775 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 17 Nov 2019 05:22:14 +0000 Subject: [PATCH 073/169] Version bump for netbootxyz/debian-squash:cinnamon-10 new tag 10.2.0-51162b7a --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index fc358f0e..df429399 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -164,7 +164,7 @@ endpoints: flavor: gnome kernel: debian-10-live-kernel debian-10-cinnamon-squash: - path: /debian-squash/releases/download/10.1.0-51162b7a/ + path: /debian-squash/releases/download/10.2.0-51162b7a/ files: - filesystem.squashfs os: debian From 214e34961f254ce4a9ce4c17c35aaad37c0fd550 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sun, 17 Nov 2019 19:49:25 +0000 Subject: [PATCH 074/169] Latest tuning, including utility menu generation Creates proper ansible role structure Creates utilities listing and allows for utility menu overrides Splits utilities into efi and pcbios (legacy) so options are hidden if they can't be used. Add package list for debian Split Ubuntu Live version loaders into seperate methods as versions can behave differently. --- Dockerfile-build | 2 +- README.md | 2 +- roles/netbootxyz/README.md | 39 ++++++++ roles/netbootxyz/defaults/main.yml | 68 ++++++++++++-- roles/netbootxyz/meta/main.yml | 15 ++++ roles/netbootxyz/tasks/generate_menus.yml | 10 ++- .../netbootxyz/templates/menu/fedora.ipxe.j2 | 2 +- .../templates/menu/live-ubuntu.ipxe.j2 | 12 ++- roles/netbootxyz/templates/menu/menu.ipxe.j2 | 2 +- .../templates/menu/utils-efi.ipxe.j2 | 90 +++++++++++++++++++ .../templates/menu/utils-pcbios.ipxe.j2 | 90 +++++++++++++++++++ roles/netbootxyz/tests/inventory | 1 + roles/netbootxyz/tests/test.yml | 5 ++ roles/netbootxyz/vars/debian.yml | 13 +++ netbootxyz.yml => site.yml | 0 user_overrides.yml | 16 ++-- 16 files changed, 344 insertions(+), 23 deletions(-) create mode 100644 roles/netbootxyz/README.md create mode 100644 roles/netbootxyz/meta/main.yml create mode 100644 roles/netbootxyz/templates/menu/utils-efi.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/utils-pcbios.ipxe.j2 create mode 100644 roles/netbootxyz/tests/inventory create mode 100644 roles/netbootxyz/tests/test.yml create mode 100644 roles/netbootxyz/vars/debian.yml rename netbootxyz.yml => site.yml (100%) diff --git a/Dockerfile-build b/Dockerfile-build index fd786c27..23d48682 100644 --- a/Dockerfile-build +++ b/Dockerfile-build @@ -20,7 +20,7 @@ COPY . /ansible RUN \ echo "**** running ansible ****" && \ cd /ansible && \ - ansible-playbook -i inventory/all netbootxyz.yml + ansible-playbook -i inventory/all site.yml # runtime stage FROM alpine:3.10 diff --git a/README.md b/README.md index 80d497f4..91a53426 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This is a seperate repo for now but will more than likely roll into the existing To generate, run: ``` -ansible-playbook -i inventory/all netbootxyz.yml +ansible-playbook -i inventory/all site.yml ``` The build output will be located in /var/www/html on Debian OSs. diff --git a/roles/netbootxyz/README.md b/roles/netbootxyz/README.md new file mode 100644 index 00000000..a36b7855 --- /dev/null +++ b/roles/netbootxyz/README.md @@ -0,0 +1,39 @@ +Ansible role: netbootxyz +======================== + +Uses Ansible to generate a self hosted environment of netboot.xyz for use anywhere + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +Apache + +Author Information +------------------ + +Website: https://netboot.xyz +Author: Antony Messerli \ No newline at end of file diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index df5b6fa4..e236b106 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -239,15 +239,6 @@ releases: code_name: "7.1" - name: "cauldron" code_name: "cauldron" - mirbsd: - name: "MirOS" - mirror: "https://www.mirbsd.org/" - base_dir: "MirOS" - enabled: true - menu: "bsd" - versions: - - name: "Latest (i386)" - code_name: "mirbsd" nixos: name: "NixOS" enabled: true @@ -370,3 +361,62 @@ releases: code_name: "bionic" - name: "16.04 LTS Xenial Xerus" code_name: "xenial" + +# utility values +utilities: + avg: + name: "AVG Rescue CD" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "160420a12074" + util_path: "http://download.avg.com/filedir/inst/avg_arl_cdi_all_120_160420a12074.iso" + breakin: + name: "Breakin" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "4.26.1-53" + util_path: "http://www.advancedclustering.com/wp-content/uploads/2017/02/bootimage-4.26.1-53.iso" + clonezilla: + name: "Clonezilla" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "2.6.2-15" + util_path: "http://master.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.6.2-15/clonezilla-live-2.6.2-15-amd64.iso" + dban: + name: "DBAN" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "2.3.0" + util_path: "http://master.dl.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso" + gparted: + name: "GParted" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "1.0.0-3" + util_path: "http://master.dl.sourceforge.net/project/gparted/gparted-live-stable/1.0.0-3/gparted-live-1.0.0-3-amd64.iso" + memtest: + name: "Memtest" + enabled: true + menu: "pcbios" + type: "memtest" + version: "5.01.0" + util_path: "https://boot.netboot.xyz/utils/memtest86-5.01.0" + supergrub: + name: "SuperGRUB" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "2.04s1" + util_path: "http://master.dl.sourceforge.net/project/supergrub2/2.04s1/super_grub2_disk_2.04s1/super_grub2_disk_hybrid_2.04s1.iso" + ubcd: + name: "Ultimate Boot CD (UBCD)" + enabled: true + menu: "pcbios" + type: "memdisk" + version: "538" + util_path: "http://mirror.sysadminguide.net/ubcd/ubcd538.iso" \ No newline at end of file diff --git a/roles/netbootxyz/meta/main.yml b/roles/netbootxyz/meta/main.yml new file mode 100644 index 00000000..37bf4bc3 --- /dev/null +++ b/roles/netbootxyz/meta/main.yml @@ -0,0 +1,15 @@ +galaxy_info: + author: Antony Messerli + description: Installs a self hosted version of netboot.xyz + license: Apache-2.0 + min_ansible_version: 2.7 + platforms: + - name: Ubuntu + versions: + - all + - name: Centos + versions: + - all + galaxy_tags: + - system +dependencies: [] diff --git a/roles/netbootxyz/tasks/generate_menus.yml b/roles/netbootxyz/tasks/generate_menus.yml index f4601153..f9109fb5 100644 --- a/roles/netbootxyz/tasks/generate_menus.yml +++ b/roles/netbootxyz/tasks/generate_menus.yml @@ -1,5 +1,5 @@ --- - - name: Combine overrides with defaults + - name: Combine overrides with release defaults set_fact: _releases: "{{ releases|combine(release_overrides, recursive=True) }}" @@ -7,6 +7,14 @@ set_fact: releases: "{{ _releases }}" + - name: Combine overrides with utilities defaults + set_fact: + _utilities: "{{ utilities|combine(utilities_overrides, recursive=True) }}" + + - name: Set utility with user overrides + set_fact: + utilities: "{{ _utilities }}" + - name: Generate directories file: path: "{{ netbootxyz_root }}" diff --git a/roles/netbootxyz/templates/menu/fedora.ipxe.j2 b/roles/netbootxyz/templates/menu/fedora.ipxe.j2 index 6578e603..1772d882 100644 --- a/roles/netbootxyz/templates/menu/fedora.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/fedora.ipxe.j2 @@ -16,7 +16,7 @@ set os Fedora menu Fedora - ${arch} - Image Sig Checks: [${img_sigs_enabled}] item --gap Latest Releases {% for item in releases.fedora.versions %} -item {{ item.name }} ${space} ${os} {{ item.name }} +item {{ item.code_name }} ${space} ${os} {{ item.name }} {% endfor %} iseq ${arch} x86_64 && item rawhide ${space} ${os} rawhide || isset ${osversion} || choose osversion || goto linux_menu diff --git a/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 index b9bc2505..e2044aa8 100644 --- a/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 @@ -43,15 +43,21 @@ set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs {% for key, value in endpoints.items() | sort %} {% if key == kernel_name %} set kernel_url ${live_endpoint}{{ value.path }} -goto boot {% endif %} {% endfor %} +goto {{ value.version }}-boot {% endif %} {% endfor %} -:boot +:18.04-boot imgfree -kernel ${kernel_url}vmlinuz boot=casper netboot=http fetch=${squash_url} initrd=initrd +kernel ${kernel_url}vmlinuz ip-dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:19.10-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd initrd ${kernel_url}initrd boot diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index 6d7ade8a..51dda817 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -48,7 +48,7 @@ iseq ${menu_freedos} 1 && item freedos ${space} FreeDOS || iseq ${menu_security} 1 && item security ${space} Security Related || iseq ${menu_windows} 1 && item windows ${space} Windows || item --gap Tools: -iseq ${menu_utils} 1 && item utils ${space} Utilities || +iseq ${menu_utils} 1 && item utils-${platform} ${space} Utilities || iseq ${arch} x86_64 && set bits 64 || set bits 32 item changebits ${space} Architecture: ${arch} (${bits}bit) item shell ${space} iPXE shell diff --git a/roles/netbootxyz/templates/menu/utils-efi.ipxe.j2 b/roles/netbootxyz/templates/menu/utils-efi.ipxe.j2 new file mode 100644 index 00000000..abb0f954 --- /dev/null +++ b/roles/netbootxyz/templates/menu/utils-efi.ipxe.j2 @@ -0,0 +1,90 @@ +#!ipxe + +menu Utilities - Image Sig Checks: [${img_sigs_enabled}] +item --gap Utilities: +{% for key, value in utilities.items() | sort(attribute='1.name') %} +{% if value.enabled | bool and value.menu == "efi" %} +item {{ key }} ${space} {{ value.name }} +{% endif %} +{% endfor %} +item --gap netboot.xyz tools: +item nbxyz-custom ${space} Set Github username [user: ${github_user}] +item testdistro ${space} Test Distribution ISO +item testpr ${space} Test forked netboot.xyz branch or hash +choose --default ${menu} menu || goto utils_exit +echo ${cls} +goto ${menu} || +chain ${menu}.ipxe || goto utils_exit +goto utils_exit + +{% for key, value in utilities.items() | sort %} +{% if value.enabled | bool and value.menu == "efi" %} +:{{ key }} +set util_path {{ value.util_path }} +set util_file {{ value.util_path | basename }} +set util_version {{ value.version }} +goto boot_{{ value.type }} +{% endif %} +{% endfor %} + +:boot_memdisk +imgfree +kernel ${memdisk} iso raw +initrd --name ${util_file} ${util_path} +echo +echo MD5sums: +md5sum memdisk ${util_file} +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify memdisk ${sigs}memdisk.sig || goto error +imgverify ${util_file} ${sigs}${menu}/${util_file}.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot +goto utils_exit + +:boot_memtest +chain https://${util_path} && goto main_menu || +goto utils_exit + +:nbxyz-custom +echo EXPERIMENTAL +echo +echo Make sure you have a fork of https://github.com/antonym/netboot.xyz-custom. +echo You can then customize your fork as needed and set up your own custom options. +echo Once your username is set, a custom option will appear on the main menu. +echo +echo -n Please enter your Github username: ${} && read github_user +goto utils_exit + +:testdistro +echo This option will allow you to test booting an ISO using memdisk. Please +echo specify the URL of the ISO you want to test and it will automatically +echo attempt to load the ISO using memdisk. +echo -n URL: ${} && read distro_iso +kernel ${memdisk} iso raw +initrd ${distro_iso} +boot +goto utils_exit + +:testpr +clear github_user +clear github_branch_or_hash +echo This will chainload into a testing branch of netboot.xyz. You'll need to enter +echo your Github username and the first part of the commit hash of the commit you want +echo to test or the branch name. This assumes you are testing from a forked netboot.xyz +echo repo. +echo +echo -n Specify Github username: ${} && read github_user +echo -n Specify Github branch name or commit hash ( i.e. my_feature or 30b7ca ): ${} && read github_branch_or_hash +echo +echo Attempting to chainload branch or hash: +chain --autofree https://raw.githubusercontent.com/${github_user}/netboot.xyz/${github_branch_or_hash}/src/menu.ipxe || echo Unable to find Github branch or hash... && sleep 5 && goto utils_exit +goto utils_exit + +:utils_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/utils-pcbios.ipxe.j2 b/roles/netbootxyz/templates/menu/utils-pcbios.ipxe.j2 new file mode 100644 index 00000000..5bb96c4c --- /dev/null +++ b/roles/netbootxyz/templates/menu/utils-pcbios.ipxe.j2 @@ -0,0 +1,90 @@ +#!ipxe + +menu Utilities - Image Sig Checks: [${img_sigs_enabled}] +item --gap Utilities: +{% for key, value in utilities.items() | sort(attribute='1.name') %} +{% if value.enabled | bool and value.menu == "pcbios" %} +item {{ key }} ${space} {{ value.name }} +{% endif %} +{% endfor %} +item --gap netboot.xyz tools: +item nbxyz-custom ${space} Set Github username [user: ${github_user}] +item testdistro ${space} Test Distribution ISO +item testpr ${space} Test forked netboot.xyz branch or hash +choose --default ${menu} menu || goto utils_exit +echo ${cls} +goto ${menu} || +chain ${menu}.ipxe || goto utils_exit +goto utils_exit + +{% for key, value in utilities.items() | sort %} +{% if value.enabled | bool and value.menu == "pcbios" %} +:{{ key }} +set util_path {{ value.util_path }} +set util_file {{ value.util_path | basename }} +set util_version {{ value.version }} +goto boot_{{ value.type }} +{% endif %} +{% endfor %} + +:boot_memdisk +imgfree +kernel ${memdisk} iso raw +initrd --name ${util_file} ${util_path} +echo +echo MD5sums: +md5sum memdisk ${util_file} +iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs +:verify_sigs +echo +echo Checking signatures... +imgverify memdisk ${sigs}memdisk.sig || goto error +imgverify ${util_file} ${sigs}${menu}/${util_file}.sig || goto error +echo Signatures verified! +echo +:skip_sigs +boot +goto utils_exit + +:boot_memtest +chain https://${util_path} && goto main_menu || +goto utils_exit + +:nbxyz-custom +echo EXPERIMENTAL +echo +echo Make sure you have a fork of https://github.com/antonym/netboot.xyz-custom. +echo You can then customize your fork as needed and set up your own custom options. +echo Once your username is set, a custom option will appear on the main menu. +echo +echo -n Please enter your Github username: ${} && read github_user +goto utils_exit + +:testdistro +echo This option will allow you to test booting an ISO using memdisk. Please +echo specify the URL of the ISO you want to test and it will automatically +echo attempt to load the ISO using memdisk. +echo -n URL: ${} && read distro_iso +kernel ${memdisk} iso raw +initrd ${distro_iso} +boot +goto utils_exit + +:testpr +clear github_user +clear github_branch_or_hash +echo This will chainload into a testing branch of netboot.xyz. You'll need to enter +echo your Github username and the first part of the commit hash of the commit you want +echo to test or the branch name. This assumes you are testing from a forked netboot.xyz +echo repo. +echo +echo -n Specify Github username: ${} && read github_user +echo -n Specify Github branch name or commit hash ( i.e. my_feature or 30b7ca ): ${} && read github_branch_or_hash +echo +echo Attempting to chainload branch or hash: +chain --autofree https://raw.githubusercontent.com/${github_user}/netboot.xyz/${github_branch_or_hash}/src/menu.ipxe || echo Unable to find Github branch or hash... && sleep 5 && goto utils_exit +goto utils_exit + +:utils_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/tests/inventory b/roles/netbootxyz/tests/inventory new file mode 100644 index 00000000..2fbb50c4 --- /dev/null +++ b/roles/netbootxyz/tests/inventory @@ -0,0 +1 @@ +localhost diff --git a/roles/netbootxyz/tests/test.yml b/roles/netbootxyz/tests/test.yml new file mode 100644 index 00000000..a16cd5c1 --- /dev/null +++ b/roles/netbootxyz/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - netbootxyz diff --git a/roles/netbootxyz/vars/debian.yml b/roles/netbootxyz/vars/debian.yml new file mode 100644 index 00000000..ea1af5fe --- /dev/null +++ b/roles/netbootxyz/vars/debian.yml @@ -0,0 +1,13 @@ +--- +netbootxyz_packages: + - apache2 + - binutils-dev + - binutils-aarch64-linux-gnu + - gcc-aarch64-linux-gnu + - build-essential + - genisoimage + - git + - isolinux + - liblzma-dev + - syslinux + - syslinux-common \ No newline at end of file diff --git a/netbootxyz.yml b/site.yml similarity index 100% rename from netbootxyz.yml rename to site.yml diff --git a/user_overrides.yml b/user_overrides.yml index 6c052f02..86f4497b 100644 --- a/user_overrides.yml +++ b/user_overrides.yml @@ -17,9 +17,13 @@ generate_disks: true #bootloader_https_enabled: true #bootloader_http_enabled: true -# set overrides from standard netboot.xyz defaults -release_overrides: - alpinelinux: - name: "ALPINELINUX" - fedora: - mirror: "iad.mirror.rackspace.com" +# set release overrides from standard netboot.xyz defaults +#release_overrides: +# alpinelinux: +# name: "ALPINELINUX" +# fedora: +# mirror: "mirrors.kernel.org" + +# set utilities_overrides from standard netboot.xyz defaults +#utilities_overrides: + \ No newline at end of file From e4381a4daeed6987278b238985adb871453971ce Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 18 Nov 2019 05:34:31 +0000 Subject: [PATCH 075/169] Version bump for netbootxyz/ubuntu-squash:master new tag 18.04.3-9e60a38f --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index df429399..70398eea 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -14,12 +14,12 @@ endpoints: os: ubuntu version: '18.04' ubuntu-18.04-default-squash: - path: /ubuntu-squash/releases/download/18.04.3-b9bffe60/ + path: /ubuntu-squash/releases/download/18.04.3-9e60a38f/ files: - filesystem.squashfs os: ubuntu version: '18.04' - flavor: core + flavor: Unity kernel: ubuntu-18.04-live-kernel debian-10-live-kernel: path: /debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ From f9a2a0cda39b5ca80c5514a8ecb1f22b26db086f Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Mon, 18 Nov 2019 05:34:35 +0000 Subject: [PATCH 076/169] Fixing some ansible-lint issues --- roles/netbootxyz/meta/main.yml | 2 +- roles/netbootxyz/tasks/generate_disks_base.yml | 4 ++-- roles/netbootxyz/tasks/generate_disks_efi.yml | 4 ++++ .../netbootxyz/tasks/generate_disks_legacy.yml | 2 ++ roles/netbootxyz/tasks/generate_menus.yml | 18 ++++++++---------- user_overrides.yml | 5 +++-- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/roles/netbootxyz/meta/main.yml b/roles/netbootxyz/meta/main.yml index 37bf4bc3..4524dfdc 100644 --- a/roles/netbootxyz/meta/main.yml +++ b/roles/netbootxyz/meta/main.yml @@ -10,6 +10,6 @@ galaxy_info: - name: Centos versions: - all - galaxy_tags: + galaxy_tags: - system dependencies: [] diff --git a/roles/netbootxyz/tasks/generate_disks_base.yml b/roles/netbootxyz/tasks/generate_disks_base.yml index 3d2bfc4b..7c39d141 100644 --- a/roles/netbootxyz/tasks/generate_disks_base.yml +++ b/roles/netbootxyz/tasks/generate_disks_base.yml @@ -30,7 +30,7 @@ - name: Install required packages package: name: "{{ item }}" - state: latest + state: present with_items: "{{ netbootxyz_packages }}" - name: Check out latest iPXE sources @@ -63,4 +63,4 @@ - src/config/local/entropy.h - src/config/local/crypto.h - src/config/local/usb.h - - src/config/local/settings.h \ No newline at end of file + - src/config/local/settings.h diff --git a/roles/netbootxyz/tasks/generate_disks_efi.yml b/roles/netbootxyz/tasks/generate_disks_efi.yml index ea6cdb7b..67b78f5b 100644 --- a/roles/netbootxyz/tasks/generate_disks_efi.yml +++ b/roles/netbootxyz/tasks/generate_disks_efi.yml @@ -20,6 +20,8 @@ - make EMBED=ipxe-bootloader bin-x86_64-efi/ipxe.efi args: chdir: "{{ ipxe_source_dir }}/src" + tags: + - skip_ansible_lint - name: Generate iPXE EFI ISO Disk shell: "{{ item }}" @@ -33,6 +35,8 @@ args: chdir: "{{ ipxe_source_dir }}/src" warn: false + tags: + - skip_ansible_lint - name: Copy iPXE EFI builds to http directory copy: diff --git a/roles/netbootxyz/tasks/generate_disks_legacy.yml b/roles/netbootxyz/tasks/generate_disks_legacy.yml index 70bcced4..90312fb4 100644 --- a/roles/netbootxyz/tasks/generate_disks_legacy.yml +++ b/roles/netbootxyz/tasks/generate_disks_legacy.yml @@ -16,6 +16,8 @@ - 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" + tags: + - skip_ansible_lint - name: Copy iPXE files for Legacy BIOS to http directory copy: diff --git a/roles/netbootxyz/tasks/generate_menus.yml b/roles/netbootxyz/tasks/generate_menus.yml index f9109fb5..ce27f2fc 100644 --- a/roles/netbootxyz/tasks/generate_menus.yml +++ b/roles/netbootxyz/tasks/generate_menus.yml @@ -1,36 +1,34 @@ --- - name: Combine overrides with release defaults - set_fact: + set_fact: _releases: "{{ releases|combine(release_overrides, recursive=True) }}" + when: release_overrides is defined - name: Set releases with user overrides set_fact: releases: "{{ _releases }}" + when: release_overrides is defined - name: Combine overrides with utilities defaults - set_fact: + set_fact: _utilities: "{{ utilities|combine(utilities_overrides, recursive=True) }}" + when: utilities_overrides is defined - name: Set utility with user overrides set_fact: utilities: "{{ _utilities }}" + when: utilities_overrides is defined - name: Generate directories file: path: "{{ netbootxyz_root }}" state: directory - - name: Dump releases vars for debugging - debug: - var: releases - - - name: Dump endpoint vars for debugging - debug: - var: endpoints - - name: Generate netboot.xyz source files templates template: src: "{{ item.src }}" dest: "{{ netbootxyz_root }}/{{ item.path | regex_replace('.j2','') }}" with_filetree: "templates/menu/" when: item.state == "file" + tags: + - skip_ansible_lint diff --git a/user_overrides.yml b/user_overrides.yml index 86f4497b..105f4833 100644 --- a/user_overrides.yml +++ b/user_overrides.yml @@ -20,10 +20,11 @@ generate_disks: true # set release overrides from standard netboot.xyz defaults #release_overrides: # alpinelinux: -# name: "ALPINELINUX" +# name: "Alpine Linux" # fedora: # mirror: "mirrors.kernel.org" # set utilities_overrides from standard netboot.xyz defaults #utilities_overrides: - \ No newline at end of file +# supergrub: +# enabled: false From 2abd3a63cc727c1e36dd8015ca8d6cdef0d61465 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 18 Nov 2019 05:38:06 +0000 Subject: [PATCH 077/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-default-19.10 new tag ee829212-575f2ecf --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 70398eea..8237cf04 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -212,10 +212,10 @@ endpoints: flavor: mate kernel: debian-10-live-kernel ubuntu-19.10-default-squash: - path: /ubuntu-squash/releases/download/ee829212-6e8d29dd/ + path: /ubuntu-squash/releases/download/ee829212-575f2ecf/ files: - filesystem.squashfs os: ubuntu version: '19.10' - flavor: core + flavor: Unity kernel: ubuntu-19.10-live-kernel From bbcc2eaa9dfb209ba8cc34944d77486552b2a8de Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Mon, 18 Nov 2019 05:42:40 +0000 Subject: [PATCH 078/169] Shift sample inventory to be single file --- Dockerfile-build | 2 +- README.md | 2 +- inventory/all => inventory | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename inventory/all => inventory (100%) diff --git a/Dockerfile-build b/Dockerfile-build index 23d48682..4b40dbaf 100644 --- a/Dockerfile-build +++ b/Dockerfile-build @@ -20,7 +20,7 @@ COPY . /ansible RUN \ echo "**** running ansible ****" && \ cd /ansible && \ - ansible-playbook -i inventory/all site.yml + ansible-playbook -i inventory site.yml # runtime stage FROM alpine:3.10 diff --git a/README.md b/README.md index 91a53426..aa93db07 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This is a seperate repo for now but will more than likely roll into the existing To generate, run: ``` -ansible-playbook -i inventory/all site.yml +ansible-playbook -i inventory site.yml ``` The build output will be located in /var/www/html on Debian OSs. diff --git a/inventory/all b/inventory similarity index 100% rename from inventory/all rename to inventory From 991233ae6ad885811e0ade2086d57b7740566897 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 18 Nov 2019 21:47:59 +0000 Subject: [PATCH 079/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-budgie-19.10 new tag 945f7f4b-85bee8cf --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 8237cf04..416092f9 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -140,13 +140,13 @@ endpoints: flavor: MATE kernel: ubuntu-19.10-live-kernel ubuntu-19.10-Budgie-squash: - path: /ubuntu-squash/releases/download/945f7f4b-bda09025/ + path: /ubuntu-squash/releases/download/945f7f4b-85bee8cf/ files: - filesystem.squashfs os: ubuntu version: '19.10' flavor: Budgie - kernel: ubuntu-18.04-live-kernel + kernel: ubuntu-19.10-live-kernel debian-10-xfce-squash: path: /debian-squash/releases/download/10.2.0-a0eae41d/ files: From a01cda92ca2dd4f2c1d1efaecf50d72d0915e2c2 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 19 Nov 2019 00:16:50 +0000 Subject: [PATCH 080/169] Version bump for netbootxyz/ubuntu-squash:ubuntu-kylin-19.10 new tag e7831484-762c8439 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 416092f9..d7afc11e 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -172,7 +172,7 @@ endpoints: flavor: cinnamon kernel: debian-10-live-kernel ubuntu-19.10-kylin-squash: - path: /ubuntu-squash/releases/download/e7831484-1d80183a/ + path: /ubuntu-squash/releases/download/e7831484-762c8439/ files: - filesystem.squashfs os: ubuntu From 3d44646175ffee4e285492b815dd27b6b5d16ee5 Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 18 Nov 2019 18:28:31 -0800 Subject: [PATCH 081/169] testing de push logic in travis other logic still incomplete --- .travis.yml | 59 ++++++++++++++++++++++++++++++++++++++++++++ script/build_release | 28 +++++++++++++++++++++ script/index.html | 16 ++++++++++++ script/message | 36 +++++++++++++++++++++++++++ script/pre_install | 5 ++++ 5 files changed, 144 insertions(+) create mode 100644 .travis.yml create mode 100755 script/build_release create mode 100644 script/index.html create mode 100755 script/message create mode 100755 script/pre_install diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..4f699a18 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,59 @@ +sudo: true + +language: bash + +services: + - docker + +env: + global: + - DEBIAN_FRONTEND="noninteractive" + +jobs: + include: + - stage: development + if: branch = development AND tag IS blank AND type != pull_request + before_install: + - ./script/pre_install + script: + - ./script/build_release dev + after_failure: + - ./script/message failure + deploy: + - provider: s3 + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + bucket: $BUCKET_DEV + local_dir: s3out + upload-dir: $TRAVIS_COMMIT + region: us-west-2 + skip_cleanup: true + after_deploy: + - ./script/message dev-push + - stage: pull-request + if: type = pull_request + script: + - echo test + - stage: release-canidate + if: branch = development AND tag IS present AND type != pull_request + script: + - echo test + - stage: release + if: branch = master AND type != pull_request + script: + - echo test + deploy: + - provider: s3 + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + bucket: $BUCKET_LIVE + local_dir: s3out + skip_cleanup: true + - provider: releases + api_key: $GITHUB_TOKEN + file_glob: true + file: githubout/* + skip_cleanup: true + after_deploy: + - aws configure set preview.cloudfront true + - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "/*" diff --git a/script/build_release b/script/build_release new file mode 100755 index 00000000..af33e537 --- /dev/null +++ b/script/build_release @@ -0,0 +1,28 @@ +#!/bin/bash + +TYPE=$1 + +# Set boot domain +if [[ "${TYPE}" == "dev" ]]; then + BOOT_DOMAIN="${BUCKET_DEV}.s3-us-west-2.amazonaws.com/${TRAVIS_COMMIT}" +fi +sed -i \ + "/^#boot_domain/c\boot_domain: ${BOOT_DOMAIN}" \ + user_overrides.yml + +# Build release +docker build -t localbuild -f Dockerfile-build . +docker run --rm -it -v $(pwd):/buildout localbuild + +# Generate folder outputs +mkdir -p s3out +cp -r buildout/* s3out/ +cp script/index.html s3out/ +mkdir -p githubout +mv buildout/ipxe/* githubout/ +cd buildout +rm -Rf ipxe +tar -czf menus.tar.gz * +mv menus.tar.gz ../githubout +cd .. + diff --git a/script/index.html b/script/index.html new file mode 100644 index 00000000..f03dad40 --- /dev/null +++ b/script/index.html @@ -0,0 +1,16 @@ + + + + Netboot.xyz BootLoaders + + + netboot.xyz.iso + netboot.xyz-efi.iso + netboot.xyz.dsk + netboot.xyz.usb + netboot.xyz.lkrn + netboot.xyz.kpxe + netboot.xyz-undionly.kpxe + netboot.xyz.efi + + diff --git a/script/message b/script/message new file mode 100755 index 00000000..e3abeae8 --- /dev/null +++ b/script/message @@ -0,0 +1,36 @@ +#!/bin/bash + +TYPE=$1 + +if [ "${TYPE}" == "dev-push" ]; then + BOOT_URL="https://${BUCKET_DEV}.s3-us-west-2.amazonaws.com/${TRAVIS_COMMIT}/index.html" +fi + +# send status to discord +if [ "${TYPE}" == "failure" ]; then + curl -X POST --data \ + '{ + "avatar_url": "https://avatars.io/twitter/travisci", + "embeds": [ + { + "color": 16711680, + "description": "__**Failed to Build**__ \n**Build:** '${TRAVIS_BUILD_WEB_URL}'\n**External Version:** '${EXTERNAL_VERSION}'\n**Status:** Failure\n**Change:** https://github.com/netbootxyz/netboot.xyz/commit/'${TRAVIS_COMMIT}'\n" + } + ], + "username": "Travis CI" + }' \ + ${DISCORD_HOOK_URL} +else + curl -X POST --data \ + '{ + "avatar_url": "https://avatars.io/twitter/travisci", + "embeds": [ + { + "color": 1681177, + "description": "__**Boot Menu Published**__ \n**Files:** '${BOOT_URL}' \n**Build:** '${TRAVIS_BUILD_WEB_URL}'\n**External Version:** '${EXTERNAL_VERSION}'\n**Change:** https://github.com/netbootxyz/netboot.xyz/commit/'${TRAVIS_COMMIT}'\n" + } + ], + "username": "Travis CI" + }' \ + ${DISCORD_HOOK_URL} +fi diff --git a/script/pre_install b/script/pre_install new file mode 100755 index 00000000..d06455b6 --- /dev/null +++ b/script/pre_install @@ -0,0 +1,5 @@ +#!/bin/bash + +# Install aws cli + +pip install awscli tornado From ef6ec6babeaba6634b2e3a7c86fc101d2a46efed Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 18 Nov 2019 18:32:41 -0800 Subject: [PATCH 082/169] cloudfront is not needed for dev endpoint build --- .travis.yml | 4 ++-- script/pre_install | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4f699a18..07714fae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,8 +13,6 @@ jobs: include: - stage: development if: branch = development AND tag IS blank AND type != pull_request - before_install: - - ./script/pre_install script: - ./script/build_release dev after_failure: @@ -40,6 +38,8 @@ jobs: - echo test - stage: release if: branch = master AND type != pull_request + before_install: + - ./script/pre_install script: - echo test deploy: diff --git a/script/pre_install b/script/pre_install index d06455b6..67300dc4 100755 --- a/script/pre_install +++ b/script/pre_install @@ -2,4 +2,4 @@ # Install aws cli -pip install awscli tornado +pip install --user awscli tornado From 530dce11a27d79165da4bb6fc8eec506e126c239 Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 18 Nov 2019 18:45:16 -0800 Subject: [PATCH 083/169] need to permit branch --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 07714fae..3212a38a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,8 @@ jobs: upload-dir: $TRAVIS_COMMIT region: us-west-2 skip_cleanup: true + on: + branch: development after_deploy: - ./script/message dev-push - stage: pull-request From bc8bf983f500c54d177141cdf0d921e54bc99594 Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 18 Nov 2019 21:53:06 -0800 Subject: [PATCH 084/169] adding build logic pointed at netboot us-east buckets, semi loop tested --- .travis.yml | 76 ++++++++++++++++++++++++++++++++++++++------ script/build_release | 28 ++++++++++++++++ script/index.html | 16 +++++----- script/message | 11 +++++-- script/pre_install | 3 +- 5 files changed, 112 insertions(+), 22 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3212a38a..6a720694 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,38 +24,96 @@ jobs: bucket: $BUCKET_DEV local_dir: s3out upload-dir: $TRAVIS_COMMIT - region: us-west-2 skip_cleanup: true on: branch: development after_deploy: - ./script/message dev-push + + - stage: pull-request if: type = pull_request script: - - echo test + - ./script/build_release pr + + - stage: release-canidate if: branch = development AND tag IS present AND type != pull_request - script: - - echo test - - stage: release - if: branch = master AND type != pull_request before_install: - ./script/pre_install script: - - echo test + - ./script/build_release rc + after_failure: + - ./script/message failure deploy: - provider: s3 access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_LIVE - local_dir: s3out + local_dir: s3out-latest + upload-dir: rc skip_cleanup: true + on: + branch: development + - provider: s3 + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + bucket: $BUCKET_LIVE + local_dir: s3out + upload-dir: $TRAVIS_TAG + skip_cleanup: true + on: + branch: development + - provider: releases + api_key: $GITHUB_TOKEN + file_glob: true + file: githubout/* + prerelease: true + skip_cleanup: true + on: + branch: development + after_deploy: + - aws configure set preview.cloudfront true + - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "rc/*" "rc/ipxe/*" + - ./script/message rc-push + + - stage: release + if: branch = master AND type != pull_request + before_install: + - ./script/pre_install + script: + - ./script/build_release release + after_failure: + - ./script/message failure + before_deploy: + - export RELEASE_TAG=$(cat version.txt) + - git tag ${RELEASE_TAG} + deploy: + - provider: s3 + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + bucket: $BUCKET_LIVE + local_dir: s3out-latest + skip_cleanup: true + on: + branch: master + - provider: s3 + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + bucket: $BUCKET_LIVE + local_dir: s3out + upload-dir: $RELEASE_TAG + skip_cleanup: true + on: + branch: master - provider: releases api_key: $GITHUB_TOKEN file_glob: true file: githubout/* skip_cleanup: true + on: + branch: development after_deploy: - aws configure set preview.cloudfront true - - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "/*" + - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "/*" "/ipxe/*" + - ./script/message live-push diff --git a/script/build_release b/script/build_release index af33e537..fa798c41 100755 --- a/script/build_release +++ b/script/build_release @@ -5,6 +5,12 @@ TYPE=$1 # Set boot domain if [[ "${TYPE}" == "dev" ]]; then BOOT_DOMAIN="${BUCKET_DEV}.s3-us-west-2.amazonaws.com/${TRAVIS_COMMIT}" +elif [[ "${TYPE}" == "pr" ]]; then + BOOT_DOMAIN="test.com" +elif [[ "${TYPE}" == "rc" ]]; then + BOOT_DOMAIN="boot.netboot.xyz/${TRAVIS_TAG}" +elif [[ "${TYPE}" == "release" ]]; then + BOOT_DOMAIN="boot.netboot.xyz/$(cat verion.txt)" fi sed -i \ "/^#boot_domain/c\boot_domain: ${BOOT_DOMAIN}" \ @@ -26,3 +32,25 @@ tar -czf menus.tar.gz * mv menus.tar.gz ../githubout cd .. + +# Latest style endpoints for RC and Live +if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rc" ]]; then + rm -Rf buildout/ + if [[ "${TYPE}" == "release" ]]; then + sed -i \ + "/^boot_domain/c\boot_domain: boot.netboot.xyz" \ + user_overrides.yml + docker build -t localbuild -f Dockerfile-build . + docker run --rm -it -v $(pwd):/buildout localbuild + fi + if [[ "${TYPE}" == "rc" ]]; then + sed -i \ + "/^boot_domain/c\boot_domain: boot.netboot.xyz/rc" \ + user_overrides.yml + docker build -t localbuild -f Dockerfile-build . + docker run --rm -it -v $(pwd):/buildout localbuild + fi + mkdir -p s3out-latest + cp -r buildout/* s3out-latest/ + cp script/index.html s3out-latest/ +fi diff --git a/script/index.html b/script/index.html index f03dad40..3ed41024 100644 --- a/script/index.html +++ b/script/index.html @@ -4,13 +4,13 @@ Netboot.xyz BootLoaders - netboot.xyz.iso - netboot.xyz-efi.iso - netboot.xyz.dsk - netboot.xyz.usb - netboot.xyz.lkrn - netboot.xyz.kpxe - netboot.xyz-undionly.kpxe - netboot.xyz.efi + netboot.xyz.iso
+ netboot.xyz-efi.iso
+ netboot.xyz.dsk
+ netboot.xyz.usb
+ netboot.xyz.lkrn
+ netboot.xyz.kpxe
+ netboot.xyz-undionly.kpxe
+ netboot.xyz.efi
diff --git a/script/message b/script/message index e3abeae8..ff26d06a 100755 --- a/script/message +++ b/script/message @@ -3,9 +3,14 @@ TYPE=$1 if [ "${TYPE}" == "dev-push" ]; then - BOOT_URL="https://${BUCKET_DEV}.s3-us-west-2.amazonaws.com/${TRAVIS_COMMIT}/index.html" + BOOT_URL="https://${BUCKET_DEV}.s3-us-east-1.amazonaws.com/${TRAVIS_COMMIT}/index.html" +elif [ "${TYPE}" == "rc-push" ]; then + BOOT_URL="https://boot.netboot.xyz/${TRAVIS_TAG}/index.html" +elif [ "${TYPE}" == "live-push" ]; then + BOOT_URL="https://boot.netboot.xyz/$(cat version.txt)/index.html" fi + # send status to discord if [ "${TYPE}" == "failure" ]; then curl -X POST --data \ @@ -14,7 +19,7 @@ if [ "${TYPE}" == "failure" ]; then "embeds": [ { "color": 16711680, - "description": "__**Failed to Build**__ \n**Build:** '${TRAVIS_BUILD_WEB_URL}'\n**External Version:** '${EXTERNAL_VERSION}'\n**Status:** Failure\n**Change:** https://github.com/netbootxyz/netboot.xyz/commit/'${TRAVIS_COMMIT}'\n" + "description": "__**Failed to Build**__ \n**Build:** '${TRAVIS_BUILD_WEB_URL}'\n**Status:** Failure\n**Change:** https://github.com/netbootxyz/netboot.xyz/commit/'${TRAVIS_COMMIT}'\n" } ], "username": "Travis CI" @@ -27,7 +32,7 @@ else "embeds": [ { "color": 1681177, - "description": "__**Boot Menu Published**__ \n**Files:** '${BOOT_URL}' \n**Build:** '${TRAVIS_BUILD_WEB_URL}'\n**External Version:** '${EXTERNAL_VERSION}'\n**Change:** https://github.com/netbootxyz/netboot.xyz/commit/'${TRAVIS_COMMIT}'\n" + "description": "__**Boot Menu Published**__ \n**Files:** '${BOOT_URL}' \n**Build:** '${TRAVIS_BUILD_WEB_URL}'\n**Change:** https://github.com/netbootxyz/netboot.xyz/commit/'${TRAVIS_COMMIT}'\n" } ], "username": "Travis CI" diff --git a/script/pre_install b/script/pre_install index 67300dc4..9eb8deea 100755 --- a/script/pre_install +++ b/script/pre_install @@ -1,5 +1,4 @@ #!/bin/bash # Install aws cli - -pip install --user awscli tornado +sudo pip install awscli tornado From 8c0d988b4dd9454a5cbcbb4334199aac00d76f26 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sat, 23 Nov 2019 13:34:51 -0600 Subject: [PATCH 085/169] Tuning some settings --- .travis.yml | 2 +- script/build_release | 10 +++++----- script/message | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6a720694..e2a5f38d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ jobs: - ./script/build_release pr - - stage: release-canidate + - stage: release-candidate if: branch = development AND tag IS present AND type != pull_request before_install: - ./script/pre_install diff --git a/script/build_release b/script/build_release index fa798c41..0107c606 100755 --- a/script/build_release +++ b/script/build_release @@ -4,13 +4,13 @@ TYPE=$1 # Set boot domain if [[ "${TYPE}" == "dev" ]]; then - BOOT_DOMAIN="${BUCKET_DEV}.s3-us-west-2.amazonaws.com/${TRAVIS_COMMIT}" + BOOT_DOMAIN="${BUCKET_DEV}.s3-website-us-east-1.amazonaws.com/${TRAVIS_COMMIT}" elif [[ "${TYPE}" == "pr" ]]; then BOOT_DOMAIN="test.com" elif [[ "${TYPE}" == "rc" ]]; then - BOOT_DOMAIN="boot.netboot.xyz/${TRAVIS_TAG}" + BOOT_DOMAIN="staging.boot.netboot.xyz/${TRAVIS_TAG}" elif [[ "${TYPE}" == "release" ]]; then - BOOT_DOMAIN="boot.netboot.xyz/$(cat verion.txt)" + BOOT_DOMAIN="staging.boot.netboot.xyz/$(cat version.txt)" fi sed -i \ "/^#boot_domain/c\boot_domain: ${BOOT_DOMAIN}" \ @@ -38,14 +38,14 @@ if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rc" ]]; then rm -Rf buildout/ if [[ "${TYPE}" == "release" ]]; then sed -i \ - "/^boot_domain/c\boot_domain: boot.netboot.xyz" \ + "/^boot_domain/c\boot_domain: staging.boot.netboot.xyz" \ user_overrides.yml docker build -t localbuild -f Dockerfile-build . docker run --rm -it -v $(pwd):/buildout localbuild fi if [[ "${TYPE}" == "rc" ]]; then sed -i \ - "/^boot_domain/c\boot_domain: boot.netboot.xyz/rc" \ + "/^boot_domain/c\boot_domain: staging.boot.netboot.xyz/rc" \ user_overrides.yml docker build -t localbuild -f Dockerfile-build . docker run --rm -it -v $(pwd):/buildout localbuild diff --git a/script/message b/script/message index ff26d06a..5f04dab2 100755 --- a/script/message +++ b/script/message @@ -3,11 +3,11 @@ TYPE=$1 if [ "${TYPE}" == "dev-push" ]; then - BOOT_URL="https://${BUCKET_DEV}.s3-us-east-1.amazonaws.com/${TRAVIS_COMMIT}/index.html" + BOOT_URL="https://${BUCKET_DEV}.s3-website-us-east-1.amazonaws.com/${TRAVIS_COMMIT}/index.html" elif [ "${TYPE}" == "rc-push" ]; then - BOOT_URL="https://boot.netboot.xyz/${TRAVIS_TAG}/index.html" + BOOT_URL="https://staging.boot.netboot.xyz/${TRAVIS_TAG}/index.html" elif [ "${TYPE}" == "live-push" ]; then - BOOT_URL="https://boot.netboot.xyz/$(cat version.txt)/index.html" + BOOT_URL="https://staging.boot.netboot.xyz/$(cat version.txt)/index.html" fi From 6baa0c3e514c747d5d1d0cbb637ba6dbad09ff9d Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 24 Nov 2019 04:20:29 -0800 Subject: [PATCH 086/169] need to define content type now to send to discord --- script/message | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/message b/script/message index 5f04dab2..cdd2d705 100755 --- a/script/message +++ b/script/message @@ -13,7 +13,7 @@ fi # send status to discord if [ "${TYPE}" == "failure" ]; then - curl -X POST --data \ + curl -X POST -H "Content-Type: application/json" --data \ '{ "avatar_url": "https://avatars.io/twitter/travisci", "embeds": [ @@ -26,7 +26,7 @@ if [ "${TYPE}" == "failure" ]; then }' \ ${DISCORD_HOOK_URL} else - curl -X POST --data \ + curl -X POST -H "Content-Type: application/json" --data \ '{ "avatar_url": "https://avatars.io/twitter/travisci", "embeds": [ From beafc25f123b4b8b571f2389c3f011b558d1a0b1 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sun, 24 Nov 2019 19:25:04 +0000 Subject: [PATCH 087/169] Move http protocol to defaults from main templates --- roles/netbootxyz/defaults/main.yml | 29 ++++++++++--------- .../netbootxyz/tasks/generate_disks_base.yml | 4 +-- roles/netbootxyz/tasks/generate_disks_efi.yml | 2 +- .../tasks/generate_disks_legacy.yml | 2 +- .../netbootxyz/templates/menu/debian.ipxe.j2 | 4 +-- .../netbootxyz/templates/menu/devuan.ipxe.j2 | 4 +-- .../netbootxyz/templates/menu/fedora.ipxe.j2 | 8 ++--- .../netbootxyz/templates/menu/ipfire.ipxe.j2 | 4 +-- .../templates/menu/live-ubuntu.ipxe.j2 | 2 +- .../netbootxyz/templates/menu/openbsd.ipxe.j2 | 2 +- .../templates/menu/opensuse.ipxe.j2 | 9 +++--- .../templates/menu/rancheros.ipxe.j2 | 4 +-- .../templates/menu/scientific.ipxe.j2 | 6 ++-- .../templates/menu/slackware.ipxe.j2 | 4 +-- .../templates/menu/tinycore.ipxe.j2 | 2 +- .../netbootxyz/templates/menu/ubuntu.ipxe.j2 | 4 +-- 16 files changed, 46 insertions(+), 44 deletions(-) diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index e236b106..d631c1d0 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -19,6 +19,7 @@ ipxe_source_dir: /usr/src/ipxe live_endpoint: "https://github.com/netbootxyz" netbootxyz_root: /var/www/html +bootloader_filename: ipxe-bootloader bootloader_tftp_enabled: false bootloader_https_enabled: true bootloader_http_enabled: true @@ -76,8 +77,8 @@ releases: code_name: "beta" debian: name: "Debian" - mirror: "deb.debian.org" - archive_mirror: "archive.debian.org" + mirror: "http://deb.debian.org" + archive_mirror: "http://archive.debian.org" base_dir: "debian" enabled: true menu: "linux" @@ -98,7 +99,7 @@ releases: code_name: "sid" devuan: name: "Devuan" - mirror: "auto.mirror.devuan.org" + mirror: "http://auto.mirror.devuan.org" base_dir: "devuan" enabled: true menu: "linux" @@ -113,7 +114,7 @@ releases: code_name: "beowulf" fedora: name: "Fedora" - mirror: "mirrors.kernel.org" + mirror: "http://mirrors.kernel.org" base_dir: "fedora" enabled: true menu: "linux" @@ -179,7 +180,7 @@ releases: code_name: "20160204" ipfire: name: "IPFire" - mirror: "downloads.ipfire.org" + mirror: "https://downloads.ipfire.org" menu: "linux" enabled: true versions: @@ -252,7 +253,7 @@ releases: code_name: "unstable" openbsd: name: "OpenBSD" - mirror: "ftp.openbsd.org" + mirror: "http://ftp.openbsd.org" base_dir: "pub/OpenBSD" enabled: true menu: "bsd" @@ -274,8 +275,8 @@ releases: image_ver: "66" opensuse: name: "OpenSUSE" - mirror: "" - base_dir: "" + mirror: "http://download.opensuse.org" + base_dir: "distribution/leap" enabled: true menu: "linux" versions: @@ -298,7 +299,7 @@ releases: code_name: "stable" rancheros: name: "RancherOS" - mirror: "releases.rancher.com" + mirror: "http://releases.rancher.com" base_dir: "os/latest" enabled: true menu: "linux" @@ -307,7 +308,7 @@ releases: code_name: "latest" scientific: name: "Scientific Linux" - mirror: "ftp1.scientificlinux.org" + mirror: "http://ftp1.scientificlinux.org" base_dir: "" enabled: true menu: "linux" @@ -322,7 +323,7 @@ releases: code_name: "6.9" slackware: name: "Slackware" - mirror: "mirror.rackspace.com" + mirror: "http://mirror.rackspace.com" base_dir: "slackware" enabled: true menu: "linux" @@ -335,7 +336,7 @@ releases: code_name: "14.1" tinycore: name: "Tiny Core Linux" - mirror: "tinycorelinux.net" + mirror: "http://tinycorelinux.net" enabled: true menu: "linux" versions: @@ -347,8 +348,8 @@ releases: code_name: "CorePlus" ubuntu: name: "Ubuntu" - mirror: "archive.ubuntu.com" - archive_mirror: "old-releases.ubuntu.com" + mirror: "http://archive.ubuntu.com" + archive_mirror: "http://old-releases.ubuntu.com" base_dir: "ubuntu" enabled: true menu: "linux" diff --git a/roles/netbootxyz/tasks/generate_disks_base.yml b/roles/netbootxyz/tasks/generate_disks_base.yml index 7c39d141..427ed86d 100644 --- a/roles/netbootxyz/tasks/generate_disks_base.yml +++ b/roles/netbootxyz/tasks/generate_disks_base.yml @@ -41,8 +41,8 @@ - name: Copy iPXE Bootloader template to iPXE source directory template: - src: disks/ipxe-bootloader.j2 - dest: "{{ ipxe_source_dir }}/src/ipxe-bootloader" + src: "disks/{{ bootloader_filename }}.j2" + dest: "{{ ipxe_source_dir }}/src/{{ bootloader_filename }}" - name: Touch iPXE config local files file: diff --git a/roles/netbootxyz/tasks/generate_disks_efi.yml b/roles/netbootxyz/tasks/generate_disks_efi.yml index 67b78f5b..e2262140 100644 --- a/roles/netbootxyz/tasks/generate_disks_efi.yml +++ b/roles/netbootxyz/tasks/generate_disks_efi.yml @@ -17,7 +17,7 @@ shell: "{{ item }}" with_items: - make clean - - make EMBED=ipxe-bootloader bin-x86_64-efi/ipxe.efi + - make EMBED={{ bootloader_filename }} bin-x86_64-efi/ipxe.efi args: chdir: "{{ ipxe_source_dir }}/src" tags: diff --git a/roles/netbootxyz/tasks/generate_disks_legacy.yml b/roles/netbootxyz/tasks/generate_disks_legacy.yml index 90312fb4..07386926 100644 --- a/roles/netbootxyz/tasks/generate_disks_legacy.yml +++ b/roles/netbootxyz/tasks/generate_disks_legacy.yml @@ -13,7 +13,7 @@ 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 + - make EMBED={{ bootloader_filename }} bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe args: chdir: "{{ ipxe_source_dir }}/src" tags: diff --git a/roles/netbootxyz/templates/menu/debian.ipxe.j2 b/roles/netbootxyz/templates/menu/debian.ipxe.j2 index fb12cc6c..d81ffbe6 100644 --- a/roles/netbootxyz/templates/menu/debian.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/debian.ipxe.j2 @@ -77,8 +77,8 @@ goto deb_boot :deb_boot imgfree echo Boot parameters: ${install_params} -- quiet ${params} -kernel http://${debian_mirror}/${dir}/linux ${install_params} ${netcfg} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz -initrd http://${debian_mirror}/${dir}/initrd.gz +kernel ${debian_mirror}/${dir}/linux ${install_params} ${netcfg} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz +initrd ${debian_mirror}/${dir}/initrd.gz echo echo MD5sums: md5sum linux initrd.gz diff --git a/roles/netbootxyz/templates/menu/devuan.ipxe.j2 b/roles/netbootxyz/templates/menu/devuan.ipxe.j2 index b4ea6731..cc1a4a53 100644 --- a/roles/netbootxyz/templates/menu/devuan.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/devuan.ipxe.j2 @@ -64,8 +64,8 @@ goto devuan_boot :devuan_boot imgfree echo Boot parameters: ${install_params} -- quiet ${params} -kernel http://${devuan_mirror}/${dir}/linux ${install_params} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz -initrd http://${devuan_mirror}/${dir}/initrd.gz +kernel ${devuan_mirror}/${dir}/linux ${install_params} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz +initrd ${devuan_mirror}/${dir}/initrd.gz echo echo MD5sums: md5sum linux initrd.gz diff --git a/roles/netbootxyz/templates/menu/fedora.ipxe.j2 b/roles/netbootxyz/templates/menu/fedora.ipxe.j2 index 1772d882..e125b23b 100644 --- a/roles/netbootxyz/templates/menu/fedora.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/fedora.ipxe.j2 @@ -12,8 +12,8 @@ goto ${menu} || clear osversion clear sku_type clear ova -set os Fedora -menu Fedora - ${arch} - Image Sig Checks: [${img_sigs_enabled}] +set os {{ releases.fedora.name }} +menu ${os} - ${arch} - Image Sig Checks: [${img_sigs_enabled}] item --gap Latest Releases {% for item in releases.fedora.versions %} item {{ item.code_name }} ${space} ${os} {{ item.name }} @@ -60,8 +60,8 @@ goto boot :boot imgfree -kernel http://${fedora_mirror}/${dir}/images/pxeboot/vmlinuz repo=http://${fedora_mirror}/${dir} ${params} ${console} ${ipparam} initrd=initrd.img -initrd http://${fedora_mirror}/${dir}/images/pxeboot/initrd.img +kernel ${fedora_mirror}/${dir}/images/pxeboot/vmlinuz repo=${fedora_mirror}/${dir} ${params} ${console} ${ipparam} initrd=initrd.img +initrd ${fedora_mirror}/${dir}/images/pxeboot/initrd.img echo echo MD5sums: md5sum vmlinuz initrd.img diff --git a/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 b/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 index 297af6dc..a459c6ef 100644 --- a/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 @@ -20,8 +20,8 @@ goto ipfire_images :ipfire_images imgfree -kernel https://${ipfire_mirror}/${dir}/vmlinuz ${console} vga=791 initrd=instroot -initrd https://${ipfire_mirror}/${dir}/instroot +kernel ${ipfire_mirror}/${dir}/vmlinuz ${console} vga=791 initrd=instroot +initrd ${ipfire_mirror}/${dir}/instroot echo echo MD5sums: md5sum vmlinuz instroot diff --git a/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 index e2044aa8..23df6141 100644 --- a/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-ubuntu.ipxe.j2 @@ -51,7 +51,7 @@ goto {{ value.version }}-boot :18.04-boot imgfree -kernel ${kernel_url}vmlinuz ip-dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd initrd ${kernel_url}initrd boot diff --git a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 index 0ad7f757..0ac2a8a0 100644 --- a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 @@ -22,7 +22,7 @@ set openbsd_arch amd64 goto boot_openbsd :boot_openbsd -set src http://{{ releases.openbsd.mirror }}/{{ releases.openbsd.base_dir }}/${ver}/${openbsd_arch}/cd${image_ver}.iso +set src {{ releases.openbsd.mirror }}/{{ releases.openbsd.base_dir }}/${ver}/${openbsd_arch}/cd${image_ver}.iso imgfree initrd ${src} chain ${memdisk} iso raw diff --git a/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 b/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 index 7a2d2419..566cf229 100644 --- a/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 @@ -62,13 +62,14 @@ menu openSUSE - ${arch} - Image Sig Checks: [${img_sigs_enabled}] item {{ item.code_name }} ${space} ${os} {{ item.name }} {% endfor %} choose version || goto opensuse_exit -set dir ${opensuse_base_dir}/${version}/repo/oss +set opensuse_mirror {{ releases.opensuse.mirror }} +set dir {{ releases.opensuse.base_dir }}/${version}/repo/oss iseq ${version} tumbleweed && set dir ${version}/repo/oss || imgfree -kernel http://${opensuse_mirror}/${dir}/boot/x86_64/loader/linux -initrd http://${opensuse_mirror}/${dir}/boot/x86_64/loader/initrd -imgargs linux ${netsetup} install=http://${opensuse_mirror}/${dir} ${params} ${console} initrd=initrd +kernel ${opensuse_mirror}/${dir}/boot/x86_64/loader/linux +initrd ${opensuse_mirror}/${dir}/boot/x86_64/loader/initrd +imgargs linux ${netsetup} install=${opensuse_mirror}/${dir} ${params} ${console} initrd=initrd echo echo MD5sums: md5sum linux initrd diff --git a/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 b/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 index 1ef0e30e..c66d2232 100644 --- a/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 @@ -22,8 +22,8 @@ goto 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 +kernel ${url}/${folder}/vmlinuz rancher.state.autoformat=[/dev/sda] rancher.password=rancher initrd=initrd +initrd ${url}/${folder}/initrd boot :rancheros_exit diff --git a/roles/netbootxyz/templates/menu/scientific.ipxe.j2 b/roles/netbootxyz/templates/menu/scientific.ipxe.j2 index 7698a62e..fb79d2cc 100644 --- a/roles/netbootxyz/templates/menu/scientific.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/scientific.ipxe.j2 @@ -22,7 +22,7 @@ echo ${cls} echo -n Enter version: ${} && read osversion :scientific_skip_read_osversion set dir linux/scientific/${osversion}/${arch}/os -set repo http://ftp1.scientificlinux.org/${dir} +set repo {{ releases.scientific.mirror }}/${dir} goto boottype @@ -49,8 +49,8 @@ goto bootos_images :bootos_images imgfree -kernel http://ftp1.scientificlinux.org/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} -initrd http://ftp1.scientificlinux.org/${dir}/images/pxeboot/initrd.img +kernel {{ releases.scientific.mirror }}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} +initrd {{ releases.scientific.mirror }}/${dir}/images/pxeboot/initrd.img boot goto linux_menu diff --git a/roles/netbootxyz/templates/menu/slackware.ipxe.j2 b/roles/netbootxyz/templates/menu/slackware.ipxe.j2 index 875a9e80..0b1abf50 100644 --- a/roles/netbootxyz/templates/menu/slackware.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/slackware.ipxe.j2 @@ -24,8 +24,8 @@ goto boot :boot imgfree -kernel http://${slackware_mirror}/${dir}/kernels/huge.s/bzImage -initrd http://${slackware_mirror}/${dir}/isolinux/initrd.img +kernel ${slackware_mirror}/${dir}/kernels/huge.s/bzImage +initrd ${slackware_mirror}/${dir}/isolinux/initrd.img imgargs bzImage load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s ${params} ${console} isset ${debug} && prompt || boot diff --git a/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 b/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 index bdb78ca6..f23a7222 100644 --- a/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/tinycore.ipxe.j2 @@ -16,7 +16,7 @@ choose version || goto tinycore_exit echo ${cls} kernel ${memdisk} iso raw ${params} -initrd http://${tinycore_mirror}/${dir}/${version}-current.iso +initrd ${tinycore_mirror}/${dir}/${version}-current.iso boot :tinycore_exit diff --git a/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 b/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 index f36da1e6..16f851b0 100644 --- a/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2 @@ -61,8 +61,8 @@ goto deb_boot :deb_boot set dir ${dir}${menu}-installer/${arch_a} imgfree -kernel http://${ubuntu_mirror}/${dir}/linux ${install_params} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz -initrd http://${ubuntu_mirror}/${dir}/initrd.gz +kernel ${ubuntu_mirror}/${dir}/linux ${install_params} ${mirrorcfg} ${console} -- quiet ${params} initrd=initrd.gz +initrd ${ubuntu_mirror}/${dir}/initrd.gz echo echo MD5sums: md5sum linux initrd.gz From 132399730c1acde4a9c8075611dfd7aa792a3cde Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Mon, 25 Nov 2019 03:21:05 +0000 Subject: [PATCH 088/169] Pushing up more changes --- roles/netbootxyz/defaults/main.yml | 17 ++++- roles/netbootxyz/files/ipxe/disks/netboot.xyz | 67 ------------------- roles/netbootxyz/tasks/generate_checksums.yml | 26 +++++++ roles/netbootxyz/tasks/generate_disks.yml | 2 +- .../netbootxyz/tasks/generate_disks_base.yml | 8 ++- roles/netbootxyz/tasks/generate_disks_efi.yml | 4 +- .../tasks/generate_disks_legacy.yml | 4 +- roles/netbootxyz/tasks/main.yml | 10 ++- roles/netbootxyz/templates/checksums.txt.j2 | 6 ++ .../disks/netboot.xyz-gce.j2} | 0 .../disks/netboot.xyz-packet.j2} | 0 .../{ipxe-bootloader.j2 => netboot.xyz.j2} | 0 roles/netbootxyz/templates/index.html.j2 | 19 ++++++ roles/netbootxyz/templates/menu/index.html.j2 | 11 --- script/build_release | 2 +- script/message | 2 +- user_overrides.yml | 1 + 17 files changed, 89 insertions(+), 90 deletions(-) delete mode 100644 roles/netbootxyz/files/ipxe/disks/netboot.xyz create mode 100644 roles/netbootxyz/tasks/generate_checksums.yml create mode 100644 roles/netbootxyz/templates/checksums.txt.j2 rename roles/netbootxyz/{files/ipxe/disks/netboot.xyz-gce => templates/disks/netboot.xyz-gce.j2} (100%) rename roles/netbootxyz/{files/ipxe/disks/netboot.xyz-packet => templates/disks/netboot.xyz-packet.j2} (100%) rename roles/netbootxyz/templates/disks/{ipxe-bootloader.j2 => netboot.xyz.j2} (100%) create mode 100644 roles/netbootxyz/templates/index.html.j2 delete mode 100644 roles/netbootxyz/templates/menu/index.html.j2 diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index d631c1d0..1ebda5eb 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -12,18 +12,29 @@ 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 ipxe_branch: master ipxe_source_dir: /usr/src/ipxe live_endpoint: "https://github.com/netbootxyz" netbootxyz_root: /var/www/html -bootloader_filename: ipxe-bootloader +generate_menus: true +generate_disks: true +generate_checksums: true + bootloader_tftp_enabled: false bootloader_https_enabled: true bootloader_http_enabled: true +bootloader_build: true +bootloader_disks: + - "netboot.xyz" +#bootloader_multiple: true +#bootloader_disks: +# - "netboot.xyz" +# - "netboot.xyz-packet" + ### release values ### releases: alpinelinux: @@ -420,4 +431,4 @@ utilities: menu: "pcbios" type: "memdisk" version: "538" - util_path: "http://mirror.sysadminguide.net/ubcd/ubcd538.iso" \ No newline at end of file + util_path: "http://mirror.sysadminguide.net/ubcd/ubcd538.iso" diff --git a/roles/netbootxyz/files/ipxe/disks/netboot.xyz b/roles/netbootxyz/files/ipxe/disks/netboot.xyz deleted file mode 100644 index fb3d1254..00000000 --- a/roles/netbootxyz/files/ipxe/disks/netboot.xyz +++ /dev/null @@ -1,67 +0,0 @@ -#!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 diff --git a/roles/netbootxyz/tasks/generate_checksums.yml b/roles/netbootxyz/tasks/generate_checksums.yml new file mode 100644 index 00000000..86a742b1 --- /dev/null +++ b/roles/netbootxyz/tasks/generate_checksums.yml @@ -0,0 +1,26 @@ +--- + - name: Register a listing of all created iPXE bootloaders + command: ls -I checksums.txt {{ netbootxyz_root }}/ipxe/ + register: netboot_disks + + - name: Generate date + command: date + register: current_date + + - name: Gather stat listing of directory + command: sha256sum -b {{ item }} + with_items: + - "{{ netboot_disks.stdout_lines }}" + args: + chdir: "{{ netbootxyz_root }}/ipxe/" + register: netboot_disks_stat + + - name: Generate ipxe disk checksums + template: + src: checksums.txt.j2 + dest: "{{ netbootxyz_root }}/ipxe/checksums.txt" + + - name: Generate netboot.xyz index template + template: + src: index.html.j2 + dest: "{{ netbootxyz_root }}/index.html" diff --git a/roles/netbootxyz/tasks/generate_disks.yml b/roles/netbootxyz/tasks/generate_disks.yml index 44736b3a..d5cbbdd1 100644 --- a/roles/netbootxyz/tasks/generate_disks.yml +++ b/roles/netbootxyz/tasks/generate_disks.yml @@ -8,4 +8,4 @@ - include: generate_disks_efi.yml when: - - generate_disks_efi | default(true) | bool + - generate_disks_efi | default(true) | bool \ No newline at end of file diff --git a/roles/netbootxyz/tasks/generate_disks_base.yml b/roles/netbootxyz/tasks/generate_disks_base.yml index 427ed86d..9c78b3d1 100644 --- a/roles/netbootxyz/tasks/generate_disks_base.yml +++ b/roles/netbootxyz/tasks/generate_disks_base.yml @@ -12,6 +12,10 @@ - "{{ ansible_distribution | lower }}.yml" - "{{ ansible_os_family | lower }}.yml" + - name: Set var to bootloader of loop + set_fact: + bootloader_filename: "{{ bootloader_file }}" + - name: Create iPXE file directories file: path: "{{ item }}" @@ -38,7 +42,9 @@ repo: "{{ ipxe_repo }}" dest: "{{ ipxe_source_dir }}" version: "{{ ipxe_branch }}" - + force: true + register: ipxe_git_checkout + - name: Copy iPXE Bootloader template to iPXE source directory template: src: "disks/{{ bootloader_filename }}.j2" diff --git a/roles/netbootxyz/tasks/generate_disks_efi.yml b/roles/netbootxyz/tasks/generate_disks_efi.yml index e2262140..34637ae5 100644 --- a/roles/netbootxyz/tasks/generate_disks_efi.yml +++ b/roles/netbootxyz/tasks/generate_disks_efi.yml @@ -44,5 +44,5 @@ 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" } + - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" } + - { src: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" } diff --git a/roles/netbootxyz/tasks/generate_disks_legacy.yml b/roles/netbootxyz/tasks/generate_disks_legacy.yml index 07386926..8b2f4fe1 100644 --- a/roles/netbootxyz/tasks/generate_disks_legacy.yml +++ b/roles/netbootxyz/tasks/generate_disks_legacy.yml @@ -22,7 +22,7 @@ - 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 }}" + dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}{{ item }}" remote_src: True with_items: - ".dsk" @@ -34,5 +34,5 @@ - 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" + dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-undionly.kpxe" remote_src: True diff --git a/roles/netbootxyz/tasks/main.yml b/roles/netbootxyz/tasks/main.yml index a7437155..53cacea7 100644 --- a/roles/netbootxyz/tasks/main.yml +++ b/roles/netbootxyz/tasks/main.yml @@ -4,5 +4,13 @@ - generate_menus | default(true) | bool - include: generate_disks.yml + with_items: + - "{{ bootloader_disks }}" + loop_control: + loop_var: bootloader_file when: - - generate_disks | default(true) | bool \ No newline at end of file + - generate_disks | default(true) | bool + + - include: generate_checksums.yml + when: + - generate_checksums | default(true) | bool \ No newline at end of file diff --git a/roles/netbootxyz/templates/checksums.txt.j2 b/roles/netbootxyz/templates/checksums.txt.j2 new file mode 100644 index 00000000..4cbb0547 --- /dev/null +++ b/roles/netbootxyz/templates/checksums.txt.j2 @@ -0,0 +1,6 @@ +# {{ site_name }} bootloaders generated at {{ current_date.stdout }} +# iPXE Commit: {{ ipxe_repo }}/commit/{{ ipxe_git_checkout.after }} + +{% for item in netboot_disks_stat.results %} +{{ item.stdout }} +{% endfor %} \ No newline at end of file diff --git a/roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce b/roles/netbootxyz/templates/disks/netboot.xyz-gce.j2 similarity index 100% rename from roles/netbootxyz/files/ipxe/disks/netboot.xyz-gce rename to roles/netbootxyz/templates/disks/netboot.xyz-gce.j2 diff --git a/roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet b/roles/netbootxyz/templates/disks/netboot.xyz-packet.j2 similarity index 100% rename from roles/netbootxyz/files/ipxe/disks/netboot.xyz-packet rename to roles/netbootxyz/templates/disks/netboot.xyz-packet.j2 diff --git a/roles/netbootxyz/templates/disks/ipxe-bootloader.j2 b/roles/netbootxyz/templates/disks/netboot.xyz.j2 similarity index 100% rename from roles/netbootxyz/templates/disks/ipxe-bootloader.j2 rename to roles/netbootxyz/templates/disks/netboot.xyz.j2 diff --git a/roles/netbootxyz/templates/index.html.j2 b/roles/netbootxyz/templates/index.html.j2 new file mode 100644 index 00000000..2c1630dd --- /dev/null +++ b/roles/netbootxyz/templates/index.html.j2 @@ -0,0 +1,19 @@ + + + + {{ site_name }} BootLoaders + + +
+             _   _                 _                    
+  _ __   ___| |_| |__   ___   ___ | |_  __  ___   _ ____
+ | '_ \ / _ \ __| '_ \ / _ \ / _ \| __| \ \/ / | | |_  /
+ | | | |  __/ |_| |_) | (_) | (_) | |_ _ >  <| |_| |/ / 
+ |_| |_|\___|\__|_.__/ \___/ \___/ \__(_)_/\_\\__, /___|
+                                              |___/     
+
+ {% for item in netboot_disks.stdout_lines %} + {{ item }}
+ {% endfor %} + + \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/index.html.j2 b/roles/netbootxyz/templates/menu/index.html.j2 deleted file mode 100644 index 36efcf75..00000000 --- a/roles/netbootxyz/templates/menu/index.html.j2 +++ /dev/null @@ -1,11 +0,0 @@ -#!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 %} \ No newline at end of file diff --git a/script/build_release b/script/build_release index 0107c606..4186874e 100755 --- a/script/build_release +++ b/script/build_release @@ -4,7 +4,7 @@ TYPE=$1 # Set boot domain if [[ "${TYPE}" == "dev" ]]; then - BOOT_DOMAIN="${BUCKET_DEV}.s3-website-us-east-1.amazonaws.com/${TRAVIS_COMMIT}" + BOOT_DOMAIN="s3.amazonaws.com/${BUCKET_DEV}/${TRAVIS_COMMIT}" elif [[ "${TYPE}" == "pr" ]]; then BOOT_DOMAIN="test.com" elif [[ "${TYPE}" == "rc" ]]; then diff --git a/script/message b/script/message index cdd2d705..7d6adb1b 100755 --- a/script/message +++ b/script/message @@ -3,7 +3,7 @@ TYPE=$1 if [ "${TYPE}" == "dev-push" ]; then - BOOT_URL="https://${BUCKET_DEV}.s3-website-us-east-1.amazonaws.com/${TRAVIS_COMMIT}/index.html" + BOOT_URL="https://s3.amazonaws.com/${BUCKET_DEV}/${TRAVIS_COMMIT}/index.html" elif [ "${TYPE}" == "rc-push" ]; then BOOT_URL="https://staging.boot.netboot.xyz/${TRAVIS_TAG}/index.html" elif [ "${TYPE}" == "live-push" ]; then diff --git a/user_overrides.yml b/user_overrides.yml index 105f4833..20bb6502 100644 --- a/user_overrides.yml +++ b/user_overrides.yml @@ -3,6 +3,7 @@ # overrides defaults in netbootxyz role generate_menus: true generate_disks: true +generate_checksums: true # set desired site name #site_name: mysitename.com From bf4bcafabdaa8a9ae0cecd58d26c0c0fac28ba84 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Mon, 25 Nov 2019 05:52:07 +0000 Subject: [PATCH 089/169] Drop index.html, use from ansible role --- script/build_release | 1 - script/index.html | 16 ---------------- 2 files changed, 17 deletions(-) delete mode 100644 script/index.html diff --git a/script/build_release b/script/build_release index 4186874e..7522333d 100755 --- a/script/build_release +++ b/script/build_release @@ -23,7 +23,6 @@ docker run --rm -it -v $(pwd):/buildout localbuild # Generate folder outputs mkdir -p s3out cp -r buildout/* s3out/ -cp script/index.html s3out/ mkdir -p githubout mv buildout/ipxe/* githubout/ cd buildout diff --git a/script/index.html b/script/index.html deleted file mode 100644 index 3ed41024..00000000 --- a/script/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - Netboot.xyz BootLoaders - - - netboot.xyz.iso
- netboot.xyz-efi.iso
- netboot.xyz.dsk
- netboot.xyz.usb
- netboot.xyz.lkrn
- netboot.xyz.kpxe
- netboot.xyz-undionly.kpxe
- netboot.xyz.efi
- - From 41a19147507ae8dfaeeb742071e6be399f665003 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Wed, 27 Nov 2019 05:14:33 +0000 Subject: [PATCH 090/169] Adds logic for generating signatures and certs Comments defaults a bit as well --- roles/netbootxyz/defaults/main.yml | 36 +++++++++++---- .../netbootxyz/tasks/generate_disks_base.yml | 8 +++- roles/netbootxyz/tasks/generate_disks_efi.yml | 46 ++++++++++++++----- .../tasks/generate_disks_legacy.yml | 17 +++++-- roles/netbootxyz/tasks/generate_menus.yml | 2 +- .../netbootxyz/tasks/generate_signatures.yml | 24 ++++++++++ roles/netbootxyz/tasks/main.yml | 10 +++- .../netbootxyz/templates/disks/netboot.xyz.j2 | 5 +- .../netbootxyz/templates/menu/windows.ipxe.j2 | 4 +- 9 files changed, 120 insertions(+), 32 deletions(-) create mode 100644 roles/netbootxyz/tasks/generate_signatures.yml diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index 1ebda5eb..83665ca8 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -5,31 +5,49 @@ site_name: netboot.xyz boot_domain: boot.netboot.xyz boot_version: 1.04 boot_timeout: 300000 - time_server: "0.pool.ntp.org" sigs_enabled: false img_sigs_enabled: false -sigs_location: "http://${boot_domain}/sigs/" -memdisk_location: "http://${boot_domain}/memdisk" +# helper app locations +memdisk_location: "http://${boot_domain}/memdisk" +wimboot_location: "http://${boot_domain}/wimboot" + +# iPXE upstream repo settings ipxe_repo: https://github.com/ipxe/ipxe ipxe_branch: master -ipxe_source_dir: /usr/src/ipxe -live_endpoint: "https://github.com/netbootxyz" +ipxe_source_dir: /usr/src/ipxe netbootxyz_root: /var/www/html +# live os settings +live_endpoint: "https://github.com/netbootxyz" + +# generates menus generate_menus: true -generate_disks: true + +# generates signatures for source files generate_checksums: true -bootloader_tftp_enabled: false +# bootloader options +generate_disks: true bootloader_https_enabled: true bootloader_http_enabled: true -bootloader_build: true bootloader_disks: - "netboot.xyz" +# signature generation +generate_signatures: false +sigs_dir: "{{ netbootxyz_root }}/sigs" +sigs_location: "http://${boot_domain}/sigs/" +cert_dir: "/etc/netbootxyz/certs" +ipxe_trust_args: "TRUST={{ ipxe_ca_location }}" +ipxe_ca_url: http://ca.ipxe.org/ca.crt +ipxe_ca_filename: ca-ipxe-org.crt +codesign_cert_filename: codesign.crt +codesign_key_filename: codesign.key +cert_file_filename : ca-netboot-xyz.crt + #bootloader_multiple: true #bootloader_disks: # - "netboot.xyz" @@ -204,7 +222,7 @@ releases: enabled: true menu: "security" versions: - - name: "Rolling Edition (2019.2)" + - name: "Rolling Edition (2019.4)" code_name: "rolling" livedebian: name: "Debian Live" diff --git a/roles/netbootxyz/tasks/generate_disks_base.yml b/roles/netbootxyz/tasks/generate_disks_base.yml index 9c78b3d1..bf415a63 100644 --- a/roles/netbootxyz/tasks/generate_disks_base.yml +++ b/roles/netbootxyz/tasks/generate_disks_base.yml @@ -22,6 +22,7 @@ state: directory with_items: - "{{ netbootxyz_root }}/ipxe" + - "{{ cert_dir }}" - name: Copy helper apps copy: @@ -44,7 +45,7 @@ version: "{{ ipxe_branch }}" force: true register: ipxe_git_checkout - + - name: Copy iPXE Bootloader template to iPXE source directory template: src: "disks/{{ bootloader_filename }}.j2" @@ -70,3 +71,8 @@ - src/config/local/crypto.h - src/config/local/usb.h - src/config/local/settings.h + + - name: Retrieve iPXE CA + get_url: + url: "{{ ipxe_ca_url }}" + dest: "{{ cert_dir }}/{{ ipxe_ca_filename }}" diff --git a/roles/netbootxyz/tasks/generate_disks_efi.yml b/roles/netbootxyz/tasks/generate_disks_efi.yml index 34637ae5..ffbc5b5a 100644 --- a/roles/netbootxyz/tasks/generate_disks_efi.yml +++ b/roles/netbootxyz/tasks/generate_disks_efi.yml @@ -13,31 +13,52 @@ src: "ipxe/local/general.h.efi" dest: "{{ ipxe_source_dir }}/src/config/local/general.h" + - name: Set trust file to ipxe ca + set_fact: + trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}" + when: not generate_signatures + + - name: Combine trust files if set + set_fact: + trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}" + when: generate_signatures | bool + - name: Compile iPXE bootloader for EFI - shell: "{{ item }}" - with_items: - - make clean - - make EMBED={{ bootloader_filename }} bin-x86_64-efi/ipxe.efi + shell: | + make clean + make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin-x86_64-efi/ipxe.efi args: chdir: "{{ ipxe_source_dir }}/src" tags: - skip_ansible_lint - 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 + shell: | + 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 tags: - skip_ansible_lint + - name: Generate iPXE EFI USB image + shell: | + truncate -s 3MiB ipxe-efi.usb + mkfs.vfat ipxe-efi.usb + mmd -i ipxe-efi.usb "::/efi" + mmd -i ipxe-efi.usb "::/efi/boot" + mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi" + args: + chdir: "{{ ipxe_source_dir }}/src" + warn: false + tags: + - skip_ansible_lint + - name: Copy iPXE EFI builds to http directory copy: src: "{{ ipxe_source_dir }}/src/{{ item.src }}" @@ -46,3 +67,4 @@ with_items: - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" } - { src: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" } + - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" } \ No newline at end of file diff --git a/roles/netbootxyz/tasks/generate_disks_legacy.yml b/roles/netbootxyz/tasks/generate_disks_legacy.yml index 8b2f4fe1..f7def058 100644 --- a/roles/netbootxyz/tasks/generate_disks_legacy.yml +++ b/roles/netbootxyz/tasks/generate_disks_legacy.yml @@ -9,11 +9,20 @@ - crypto.h - general.h + - name: Set trust file to ipxe ca + set_fact: + trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}" + when: not generate_signatures + + - name: Combine trust args if set + set_fact: + trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}" + when: generate_signatures | bool + - name: Compile iPXE bootloader for Legacy BIOS - shell: "{{ item }}" - with_items: - - make clean - - make EMBED={{ bootloader_filename }} bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe + shell: | + make clean + make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe args: chdir: "{{ ipxe_source_dir }}/src" tags: diff --git a/roles/netbootxyz/tasks/generate_menus.yml b/roles/netbootxyz/tasks/generate_menus.yml index ce27f2fc..2a07d9f6 100644 --- a/roles/netbootxyz/tasks/generate_menus.yml +++ b/roles/netbootxyz/tasks/generate_menus.yml @@ -31,4 +31,4 @@ with_filetree: "templates/menu/" when: item.state == "file" tags: - - skip_ansible_lint + - skip_ansible_lint \ No newline at end of file diff --git a/roles/netbootxyz/tasks/generate_signatures.yml b/roles/netbootxyz/tasks/generate_signatures.yml new file mode 100644 index 00000000..457abf70 --- /dev/null +++ b/roles/netbootxyz/tasks/generate_signatures.yml @@ -0,0 +1,24 @@ +--- + - name: Gather list of source files + command: ls {{ netbootxyz_root }} + register: source_files + + - name: Create directories for signatures + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ sigs_dir }}" + + - name: Generate signatures for source files + shell: | + openssl cms -sign -binary -noattr -in {{ netbootxyz_root }}/{{ item }} \ + -signer {{ codesign_cert_location }} -inkey {{ codesign_key_location }} -certfile {{ cert_file_location }} -outform DER \ + -out {{ sigs_dir }}/{{ item }}.sig + args: + chdir: "{{ cert_dir }}" + warn: false + with_items: + - "{{ source_files.stdout_lines }}" + tags: + - skip_ansible_lint \ No newline at end of file diff --git a/roles/netbootxyz/tasks/main.yml b/roles/netbootxyz/tasks/main.yml index 53cacea7..301d8a88 100644 --- a/roles/netbootxyz/tasks/main.yml +++ b/roles/netbootxyz/tasks/main.yml @@ -3,6 +3,13 @@ when: - generate_menus | default(true) | bool + - include: generate_signatures.yml + when: + - generate_signatures | default(false) | bool + - codesign_cert_location is defined + - codesign_key_location is defined + - cert_file_location is defined + - include: generate_disks.yml with_items: - "{{ bootloader_disks }}" @@ -13,4 +20,5 @@ - include: generate_checksums.yml when: - - generate_checksums | default(true) | bool \ No newline at end of file + - generate_checksums | default(true) | bool + diff --git a/roles/netbootxyz/templates/disks/netboot.xyz.j2 b/roles/netbootxyz/templates/disks/netboot.xyz.j2 index 816c5c79..0ab370fc 100644 --- a/roles/netbootxyz/templates/disks/netboot.xyz.j2 +++ b/roles/netbootxyz/templates/disks/netboot.xyz.j2 @@ -8,12 +8,13 @@ set fg_whi ${esc:string}[37m set TFTP_ERR Local TFTP failed... attempting remote HTTPS set HTTPS_ERR HTTPS appears to have failed... attempting HTTP set HTTP_ERR HTTP has failed, localbooting... +set site_name {{ site_name }} set boot_domain {{ boot_domain }} set version {{ boot_version }} :start -echo ${bold}${fg_gre}${boot_domain} - ${fg_whi}v${version}${boldoff} -echo ${bold}${fg_whi}Powered by${fg_gre}netboot.xyz${boldoff} +echo ${bold}${fg_gre}${site_name} - ${fg_whi}v${version}${boldoff} +iseq ${site_name} netboot.xyz || echo ${bold}${fg_whi}Powered by ${fg_gre}netboot.xyz${fg_whi}${boldoff} prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp :dhcp diff --git a/roles/netbootxyz/templates/menu/windows.ipxe.j2 b/roles/netbootxyz/templates/menu/windows.ipxe.j2 index d97145ed..35ef169e 100644 --- a/roles/netbootxyz/templates/menu/windows.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/windows.ipxe.j2 @@ -41,7 +41,7 @@ goto windows isset ${win_base_url} && goto boot || echo URL not set... && goto url_set :boot -kernel http://${boot_domain}/wimboot +kernel {{ wimboot_location }} 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 @@ -56,4 +56,4 @@ imgverify wimboot ${sigs}wimboot.sig || goto error boot :windows_exit -exit 0 +exit 0 \ No newline at end of file From 680965720e76e85ebf1d6fc25bcacd7282d92e62 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Wed, 27 Nov 2019 15:27:44 +0000 Subject: [PATCH 091/169] Add dosfstools for efi usb build and set -e Sets -e to exit on failure --- Dockerfile-build | 1 + roles/netbootxyz/vars/debian.yml | 3 ++- roles/netbootxyz/vars/redhat.yml | 1 + roles/netbootxyz/vars/ubuntu.yml | 3 ++- script/build_release | 2 ++ 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Dockerfile-build b/Dockerfile-build index 4b40dbaf..7a6c70d9 100644 --- a/Dockerfile-build +++ b/Dockerfile-build @@ -7,6 +7,7 @@ RUN \ ansible \ apache2 \ build-essential \ + dosfstools \ genisoimage \ git \ liblzma-dev \ diff --git a/roles/netbootxyz/vars/debian.yml b/roles/netbootxyz/vars/debian.yml index ea1af5fe..3551ac9a 100644 --- a/roles/netbootxyz/vars/debian.yml +++ b/roles/netbootxyz/vars/debian.yml @@ -3,6 +3,7 @@ netbootxyz_packages: - apache2 - binutils-dev - binutils-aarch64-linux-gnu + - dosfstools - gcc-aarch64-linux-gnu - build-essential - genisoimage @@ -10,4 +11,4 @@ netbootxyz_packages: - isolinux - liblzma-dev - syslinux - - syslinux-common \ No newline at end of file + - syslinux-common diff --git a/roles/netbootxyz/vars/redhat.yml b/roles/netbootxyz/vars/redhat.yml index cf467b4b..161d36f5 100644 --- a/roles/netbootxyz/vars/redhat.yml +++ b/roles/netbootxyz/vars/redhat.yml @@ -1,5 +1,6 @@ --- netbootxyz_packages: + - dosfstools - gcc - genisoimage - git diff --git a/roles/netbootxyz/vars/ubuntu.yml b/roles/netbootxyz/vars/ubuntu.yml index ea1af5fe..3551ac9a 100644 --- a/roles/netbootxyz/vars/ubuntu.yml +++ b/roles/netbootxyz/vars/ubuntu.yml @@ -3,6 +3,7 @@ netbootxyz_packages: - apache2 - binutils-dev - binutils-aarch64-linux-gnu + - dosfstools - gcc-aarch64-linux-gnu - build-essential - genisoimage @@ -10,4 +11,4 @@ netbootxyz_packages: - isolinux - liblzma-dev - syslinux - - syslinux-common \ No newline at end of file + - syslinux-common diff --git a/script/build_release b/script/build_release index 7522333d..909cebb0 100755 --- a/script/build_release +++ b/script/build_release @@ -1,5 +1,7 @@ #!/bin/bash +set -e + TYPE=$1 # Set boot domain From 275adfecb9b29eb98ee3c83418996e298e4290eb Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 02:33:23 +0000 Subject: [PATCH 092/169] Version bump for netbootxyz/fedora-assets:master new tag 1.9-26baa768 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index d7afc11e..09718245 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -219,3 +219,11 @@ endpoints: version: '19.10' flavor: Unity kernel: ubuntu-19.10-live-kernel + fedora-31-gnome: + path: /fedora-assets/releases/download/1.9-26baa768/ + files: + - vmlinuz + - initrd + - squashfs.img + version: 31 + flavor: GNOME From 2e496764273e58c9d85b4032c7c756661cda2928 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 02:41:14 +0000 Subject: [PATCH 093/169] Version bump for netbootxyz/fedora-assets:31-Cinnamon new tag 1.9-200b24ce --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 09718245..d94a1fb1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -227,3 +227,11 @@ endpoints: - squashfs.img version: 31 flavor: GNOME + fedora-31-Cinnamon: + path: /fedora-assets/releases/download/1.9-200b24ce/ + files: + - vmlinuz + - initrd + - squashfs.img + version: 31 + flavor: Cinnamon From 11750babae7130e52bc50ef0220bbe61e9bf89b7 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 02:46:33 +0000 Subject: [PATCH 094/169] Version bump for netbootxyz/fedora-assets:master new tag 1.9-808bb0da --- endpoints.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index d94a1fb1..fb797877 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -220,13 +220,14 @@ endpoints: flavor: Unity kernel: ubuntu-19.10-live-kernel fedora-31-gnome: - path: /fedora-assets/releases/download/1.9-26baa768/ + path: /fedora-assets/releases/download/1.9-808bb0da/ files: - vmlinuz - initrd - squashfs.img version: 31 flavor: GNOME + os: fedora fedora-31-Cinnamon: path: /fedora-assets/releases/download/1.9-200b24ce/ files: From d3d4572a89c505beb8e5cbc72b01bfaa35c2ecc4 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 02:48:25 +0000 Subject: [PATCH 095/169] Version bump for netbootxyz/fedora-assets:31-Cinnamon new tag 1.9-5a52a02a --- endpoints.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index fb797877..8a6fa2ee 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -229,10 +229,11 @@ endpoints: flavor: GNOME os: fedora fedora-31-Cinnamon: - path: /fedora-assets/releases/download/1.9-200b24ce/ + path: /fedora-assets/releases/download/1.9-5a52a02a/ files: - vmlinuz - initrd - squashfs.img version: 31 flavor: Cinnamon + os: fedora From ca7d43e8e6460aad5dcda5f890cae06b6b9db1d2 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:01:42 +0000 Subject: [PATCH 096/169] Version bump for netbootxyz/fedora-assets:31-KDE new tag 1.9-dfbbe3cc --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 8a6fa2ee..7717ee58 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -237,3 +237,12 @@ endpoints: version: 31 flavor: Cinnamon os: fedora + fedora-31-KDE: + path: /fedora-assets/releases/download/1.9-dfbbe3cc/ + files: + - vmlinuz + - initrd + - squashfs.img + os: fedora + version: 31 + flavor: KDE From 385253db97d4a16f7ff560663b33754b6961f86e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:09:50 +0000 Subject: [PATCH 097/169] Version bump for netbootxyz/fedora-assets:31-LXDE new tag 1.9-c23f0dc4 --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 7717ee58..4c4fd1be 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -246,3 +246,12 @@ endpoints: os: fedora version: 31 flavor: KDE + fedora-31-LXDE: + path: /fedora-assets/releases/download/1.9-c23f0dc4/ + files: + - vmlinuz + - initrd + - squashfs.img + os: fedora + version: 31 + flavor: LXDE From 09ea01ffe769ca94ccfe81959de1a5b05d3a0e52 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:14:25 +0000 Subject: [PATCH 098/169] Version bump for netbootxyz/fedora-assets:31-LXQt new tag 1.9-19db8480 --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 4c4fd1be..4ac79222 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -255,3 +255,12 @@ endpoints: os: fedora version: 31 flavor: LXDE + fedora-31-LXQt: + path: /fedora-assets/releases/download/1.9-19db8480/ + files: + - vmlinuz + - initrd + - squashfs.img + os: fedora + version: 31 + flavor: LXQt From 073827522e2de3059488796138be0620166c5f88 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:23:46 +0000 Subject: [PATCH 099/169] Version bump for netbootxyz/fedora-assets:31-MATE_Compiz new tag 1.9-29013501 --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 4ac79222..eb42481c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -264,3 +264,12 @@ endpoints: os: fedora version: 31 flavor: LXQt + fedora-31-MATE_Compiz: + path: /fedora-assets/releases/download/1.9-29013501/ + files: + - vmlinuz + - initrd + - squashfs.img + os: fedora + version: 31 + flavor: MATE_Compiz From c605319fa965119560c9fd8c1108dc067badefe2 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:30:52 +0000 Subject: [PATCH 100/169] Version bump for netbootxyz/fedora-assets:31-SoaS new tag 1.9-28104ec6 --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index eb42481c..851be789 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -273,3 +273,12 @@ endpoints: os: fedora version: 31 flavor: MATE_Compiz + fedora-31-SoaS: + path: /fedora-assets/releases/download/1.9-28104ec6/ + files: + - vmlinuz + - initrd + - squashfs.img + os: fedora + version: 31 + flavor: SoaS From 4189490bd9e6e03a2500833b8df211e993a3d88e Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Thu, 28 Nov 2019 03:25:06 +0000 Subject: [PATCH 101/169] Add Fedora Live --- .../templates/menu/live-fedora.ipxe.j2 | 49 +++++++++++++++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 + 2 files changed, 50 insertions(+) create mode 100644 roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 b/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 new file mode 100644 index 00000000..52ba6098 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 @@ -0,0 +1,49 @@ +#!ipxe + +isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}:::none nameserver=${dns} +set ipparam BOOTIF=${netX/mac} ${ipparam} + +goto ${menu} || + +:live_menu +set os Fedora Live +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 31 ${space} ${os} 31 +choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors +goto ${live_version} + +:31 +{% for key, value in endpoints.items() | sort %} +{% if value.os == "fedora" and value.version == 31 %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu +echo ${cls} +goto ${flavor} || + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "fedora" %} +:{{ key }} +set live_url ${live_endpoint}{{ value.path }} +goto boot +{% endif %} +{% endfor %} + +:boot +imgfree +kernel ${live_url}vmlinuz ${ipparam} root=live:${live_url}/squashfs.img ro rd.live.image rd.lvm=0 rd.luks=0 rd.md=0 rd.dm=0 initrd=initrd +initrd ${live_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index 31f2ed16..f146d41d 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -7,6 +7,7 @@ menu Live Boot Distributions - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Live Boot Distributions item live-debian ${space} Debian Live +item live-fedora ${space} Fedora Live item live-ubuntu ${space} Ubuntu Live choose menu || goto live_exit echo ${cls} From 002ff3f236d994037ba3840a3829578d5b3576ac Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:35:27 +0000 Subject: [PATCH 102/169] Version bump for netbootxyz/fedora-assets:31-Xfce new tag 1.9-00e3a627 --- endpoints.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 851be789..ed294317 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -282,3 +282,12 @@ endpoints: os: fedora version: 31 flavor: SoaS + fedora-31-Xfce: + path: /fedora-assets/releases/download/1.9-00e3a627/ + files: + - vmlinuz + - initrd + - squashfs.img + os: fedora + version: 31 + flavor: Xfce From f0e0eedee9595cfb1db3869d099cf678e58c4dbf Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Thu, 28 Nov 2019 03:50:44 +0000 Subject: [PATCH 103/169] Remove unneeded slash --- roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 b/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 index 52ba6098..b528e18a 100644 --- a/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-fedora.ipxe.j2 @@ -39,7 +39,7 @@ goto boot :boot imgfree -kernel ${live_url}vmlinuz ${ipparam} root=live:${live_url}/squashfs.img ro rd.live.image rd.lvm=0 rd.luks=0 rd.md=0 rd.dm=0 initrd=initrd +kernel ${live_url}vmlinuz ${ipparam} root=live:${live_url}squashfs.img ro rd.live.image rd.lvm=0 rd.luks=0 rd.md=0 rd.dm=0 initrd=initrd initrd ${live_url}initrd boot From b11d868ee69fd020eb271e7570e889547f40b481 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:54:45 +0000 Subject: [PATCH 104/169] Version bump for netbootxyz/manjaro-squash:18.1.0-gnome new tag 18.1.0-ebd2dd2f --- endpoints.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index ed294317..820ce734 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -291,3 +291,14 @@ endpoints: os: fedora version: 31 flavor: Xfce + manjaro-18.1.0-gnome-squash: + path: /manjaro-squash/releases/download/18.1.0-ebd2dd2f/ + files: + - livefs.sfs + - rootfs.sfs + - mhwdfs.sfs + - desktopfs.sfs + os: manjaro + version: 18.1.0 + flavor: GNOME + kernel: manjaro-18.x-live-kernel From c638067f42e884fb3d26a7a6044212e057e24cd0 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 03:59:11 +0000 Subject: [PATCH 105/169] Version bump for netbootxyz/manjaro-squash:18.1.0-kde new tag 18.1.0-d11f560a --- endpoints.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 820ce734..1bf14abb 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -302,3 +302,14 @@ endpoints: version: 18.1.0 flavor: GNOME kernel: manjaro-18.x-live-kernel + manjaro-18.1.0-kde-squash: + path: /manjaro-squash/releases/download/18.1.0-d11f560a/ + files: + - livefs.sfs + - rootfs.sfs + - mhwdfs.sfs + - desktopfs.sfs + os: manjaro + version: 18.1.0 + flavor: KDE + kernel: manjaro-18.x-live-kernel From e6cb1645af269d04c24a7884d5a08d6474a512ed Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 04:05:27 +0000 Subject: [PATCH 106/169] Version bump for netbootxyz/manjaro-squash:18.1.0-xfce new tag 18.1.0-fe18a2cc --- endpoints.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 1bf14abb..dfa42c1a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -313,3 +313,14 @@ endpoints: version: 18.1.0 flavor: KDE kernel: manjaro-18.x-live-kernel + manjaro-18.1.0-xfce-squash: + path: /manjaro-squash/releases/download/18.1.0-fe18a2cc/ + files: + - livefs.sfs + - rootfs.sfs + - mhwdfs.sfs + - desktopfs.sfs + os: manjaro + version: 18.1.0 + flavor: XFCE + kernel: manjaro-18.x-live-kernel From 9d1eb8f75fbc317b4f83e8a7d1a59000e4757e99 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 28 Nov 2019 23:39:56 +0000 Subject: [PATCH 107/169] Version bump for netbootxyz/ubuntu-squash:elementaryos-5 new tag 5-8bd33b19 --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index dfa42c1a..e853e745 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -324,3 +324,10 @@ endpoints: version: 18.1.0 flavor: XFCE kernel: manjaro-18.x-live-kernel + elementaryos-5-default-squash: + path: /ubuntu-squash/releases/download/5-8bd33b19/ + files: + - filesystem.squashfs + os: elementary-os + version: '5' + kernel: ubuntu-18.04-live-kernel From f0b7de5d905bf4b8e84a7d80aa9ff0202bae75a9 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 00:57:36 +0000 Subject: [PATCH 108/169] Version bump for netbootxyz/debian-squash:xfce-kali new tag 2019.4-919e521e --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index e853e745..957ccd3a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -331,3 +331,11 @@ endpoints: os: elementary-os version: '5' kernel: ubuntu-18.04-live-kernel + kali-xfce-squash: + path: /debian-squash/releases/download/2019.4-919e521e/ + files: + - filesystem.squashfs + os: kali + version: rolling + flavor: xfce + kernel: kali-rolling-live-kernel From a169e307e0c8dcb01875c19739796e1b72959551 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 01:22:59 +0000 Subject: [PATCH 109/169] Version bump for netbootxyz/debian-squash:xfce-kali new tag 2019.4-00ef2578 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 957ccd3a..250c3182 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -332,7 +332,7 @@ endpoints: version: '5' kernel: ubuntu-18.04-live-kernel kali-xfce-squash: - path: /debian-squash/releases/download/2019.4-919e521e/ + path: /debian-squash/releases/download/2019.4-00ef2578/ files: - filesystem.squashfs os: kali From 620d545165e38cad2dc5ea1319125e63dba3689b Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 01:27:19 +0000 Subject: [PATCH 110/169] Version bump for netbootxyz/debian-squash:light-kali new tag 2019.4-544b485d --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 250c3182..ea33e7ce 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -339,3 +339,11 @@ endpoints: version: rolling flavor: xfce kernel: kali-rolling-live-kernel + kali-light-squash: + path: /debian-squash/releases/download/2019.4-544b485d/ + files: + - filesystem.squashfs + os: kali + version: rolling + flavor: light + kernel: kali-rolling-live-kernel From 9d5ebb6c1e93e3b6528e8fccd26d26fc777fc186 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 01:32:03 +0000 Subject: [PATCH 111/169] Version bump for netbootxyz/debian-squash:mate-kali new tag 2019.4-ccf312cd --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index ea33e7ce..5dbd2555 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -347,3 +347,11 @@ endpoints: version: rolling flavor: light kernel: kali-rolling-live-kernel + kali-mate-squash: + path: /debian-squash/releases/download/2019.4-ccf312cd/ + files: + - filesystem.squashfs + os: kali + version: rolling + flavor: MATE + kernel: kali-rolling-live-kernel From 50221404da474afe76f08c3a7dc9e1d028347f1e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 01:44:23 +0000 Subject: [PATCH 112/169] Version bump for netbootxyz/debian-core-10:kali new tag 5.3.9-3kali1-e9b26579 --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 5dbd2555..3efdce29 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -355,3 +355,10 @@ endpoints: version: rolling flavor: MATE kernel: kali-rolling-live-kernel + kali-rolling-live-kernel: + path: /debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ + files: + - initrd + - vmlinuz + os: kali + version: rolling From d061737d504e4eab4ed8d52df1a749c240bdd021 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 01:45:20 +0000 Subject: [PATCH 113/169] Version bump for netbootxyz/debian-squash:mate-kali new tag 2019.4-0e4d0210 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 3efdce29..eee07c84 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -348,7 +348,7 @@ endpoints: flavor: light kernel: kali-rolling-live-kernel kali-mate-squash: - path: /debian-squash/releases/download/2019.4-ccf312cd/ + path: /debian-squash/releases/download/2019.4-0e4d0210/ files: - filesystem.squashfs os: kali From da837e4fe1538d3cbfffcc25d4e2bcd2b229a9ef Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 01:57:31 +0000 Subject: [PATCH 114/169] Version bump for netbootxyz/debian-squash:kde-kali new tag 2019.4-d761db15 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index eee07c84..75a241ed 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -362,3 +362,11 @@ endpoints: - vmlinuz os: kali version: rolling + kali-kde-squash: + path: /debian-squash/releases/download/2019.4-d761db15/ + files: + - filesystem.squashfs + os: kali + version: rolling + flavor: KDE + kernel: kali-rolling-live-kernel From 6274d6f209a84b9ca46ca495e0ffed595b70bf6a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 02:02:57 +0000 Subject: [PATCH 115/169] Version bump for netbootxyz/debian-squash:gnome-kali new tag 2019.4-734e93c5 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 75a241ed..b7e94113 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -370,3 +370,11 @@ endpoints: version: rolling flavor: KDE kernel: kali-rolling-live-kernel + kali-gnome-squash: + path: /debian-squash/releases/download/2019.4-734e93c5/ + files: + - filesystem.squashfs + os: kali + version: rolling + flavor: Gnome + kernel: kali-rolling-live-kernel From d2221e955387091f7c007c305022a81086df5c1c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 02:08:56 +0000 Subject: [PATCH 116/169] Version bump for netbootxyz/debian-squash:lxde-kali new tag 2019.4-78e57944 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index b7e94113..13f8914c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -378,3 +378,11 @@ endpoints: version: rolling flavor: Gnome kernel: kali-rolling-live-kernel + kali-lxde-squash: + path: /debian-squash/releases/download/2019.4-78e57944/ + files: + - filesystem.squashfs + os: kali + version: rolling + flavor: LXDE + kernel: kali-rolling-live-kernel From 9990f9ba3e1775e1c6f64bfbabf5d48d7b031680 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 03:27:45 +0000 Subject: [PATCH 117/169] Version bump for netbootxyz/debian-core-10:tails-4.0 new tag 5.3.2-1-fbccf8d7 --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 13f8914c..969cb15c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -386,3 +386,10 @@ endpoints: version: rolling flavor: LXDE kernel: kali-rolling-live-kernel + tails-4.0-live-kernel: + path: /debian-core-10/releases/download/5.3.2-1-fbccf8d7/ + files: + - initrd + - vmlinuz + os: tails + version: '4.0' From f68b4987b748f7145f42d55ca2bb5a57d7147f3e Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 03:35:31 +0000 Subject: [PATCH 118/169] Version bump for netbootxyz/debian-squash:4.0-tails new tag 4.0-41d3900f --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 969cb15c..2d69a049 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -393,3 +393,10 @@ endpoints: - vmlinuz os: tails version: '4.0' + tails-4.0-default-squash: + path: /debian-squash/releases/download/4.0-41d3900f/ + files: + - filesystem.squashfs + os: tails + version: '4.0' + kernel: tails-4.0-live-kernel From f33c22ac1e3265cb3e5e36909209709d31418b06 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Fri, 29 Nov 2019 06:58:36 +0000 Subject: [PATCH 119/169] Add Elementary, Kali, Tails Live menus --- .../templates/menu/live-elementary.ipxe.j2 | 36 +++++++++++++ .../templates/menu/live-kali.ipxe.j2 | 52 +++++++++++++++++++ .../templates/menu/live-tails.ipxe.j2 | 36 +++++++++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 9 ++-- 4 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-kali.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-tails.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 b/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 new file mode 100644 index 00000000..d235ea7f --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 @@ -0,0 +1,36 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os elementary OS +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item elementaryos-5-default-squash ${space} ${os} 5.0 (Juno) +choose live_version || goto live_exit +goto ${live_version} + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "elementary-os" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto boot +{% endif %} +{% endfor %} + +:boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/live-kali.ipxe.j2 b/roles/netbootxyz/templates/menu/live-kali.ipxe.j2 new file mode 100644 index 00000000..5c3806b0 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-kali.ipxe.j2 @@ -0,0 +1,52 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Kali Linux +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item rolling ${space} ${os} Rolling +choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors +goto ${live_version} + +:rolling +{% for key, value in endpoints.items() | sort %} +{% if value.os == "kali" and 'squash' in key and value.version == "rolling" %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | upper }} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu +echo ${cls} +goto ${flavor} || + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "kali" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto boot +{% endif %} +{% endfor %} + +:boot +imgfree +kernel ${kernel_url}vmlinuz boot=live components username=root hostname=kali fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 b/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 new file mode 100644 index 00000000..9eba5ffe --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 @@ -0,0 +1,36 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Tails +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item tails-4.0-default-squash ${space} ${os} 4.0 +choose live_version || goto live_exit +goto ${live_version} + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "tails" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto boot +{% endif %} +{% endfor %} + +:boot +imgfree +kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd nopersistence noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails slab_nomerge slub_debug=FZP mce=0 vsyscall=none page_poison=1 mds=full,nosmt +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 \ No newline at end of file diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index f146d41d..e405082a 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -6,9 +6,12 @@ goto ${menu} || menu Live Boot Distributions - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Live Boot Distributions -item live-debian ${space} Debian Live -item live-fedora ${space} Fedora Live -item live-ubuntu ${space} Ubuntu Live +item live-debian ${space} Debian +item live-elementary ${space} elementary OS +item live-fedora ${space} Fedora +item live-kali ${space} Kali +item live-tails ${space} Tails +item live-ubuntu ${space} Ubuntu choose menu || goto live_exit echo ${cls} goto ${menu} || From f2cfbd1e16237edcfdaeaa1d4bc6fc5e9fa70c65 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 07:45:40 +0000 Subject: [PATCH 120/169] Version bump for netbootxyz/debian-core-10:tails-4.0 new tag 5.3.2-1-fd369cd3 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 2d69a049..68b83391 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -387,7 +387,7 @@ endpoints: flavor: LXDE kernel: kali-rolling-live-kernel tails-4.0-live-kernel: - path: /debian-core-10/releases/download/5.3.2-1-fbccf8d7/ + path: /debian-core-10/releases/download/5.3.2-1-fd369cd3/ files: - initrd - vmlinuz From 6a99a2b986cd76c91d61f5f0e9350fe6d5584154 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 10:20:01 +0000 Subject: [PATCH 121/169] Version bump for netbootxyz/debian-core-10:tails-4.0 new tag 5.3.2-1-8095e6f1 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 68b83391..225509f5 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -387,7 +387,7 @@ endpoints: flavor: LXDE kernel: kali-rolling-live-kernel tails-4.0-live-kernel: - path: /debian-core-10/releases/download/5.3.2-1-fd369cd3/ + path: /debian-core-10/releases/download/5.3.2-1-8095e6f1/ files: - initrd - vmlinuz From 5f2023dbe73e23e45cad83587f286d2aaa85045b Mon Sep 17 00:00:00 2001 From: thelamer Date: Fri, 29 Nov 2019 02:19:00 -0800 Subject: [PATCH 122/169] need union aufs option for many services to start properly --- roles/netbootxyz/templates/menu/live-tails.ipxe.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 b/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 index 9eba5ffe..52917f96 100644 --- a/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 @@ -27,10 +27,10 @@ goto boot :boot imgfree -kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd nopersistence noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails slab_nomerge slub_debug=FZP mce=0 vsyscall=none page_poison=1 mds=full,nosmt +kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd nopersistence noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails slab_nomerge slub_debug=FZP mce=0 vsyscall=none page_poison=1 mds=full,nosmt union=aufs initrd ${kernel_url}initrd boot :live_exit clear menu -exit 0 \ No newline at end of file +exit 0 From f7bf47e34da2c8b6170b3306e45c8cf84ef944ed Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 21:57:05 +0000 Subject: [PATCH 123/169] Version bump for netbootxyz/ubuntu-squash:pop-19.10 new tag 10-115d425e --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 225509f5..76cadd98 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -400,3 +400,10 @@ endpoints: os: tails version: '4.0' kernel: tails-4.0-live-kernel + pop-19.10-default-squash: + path: /ubuntu-squash/releases/download/10-115d425e/ + files: + - filesystem.squashfs + os: pop + version: '19.10' + kernel: ubuntu-19.10-live-kernel From 413f49b4d5d11ebca429f342cf08e3d07e970f94 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Fri, 29 Nov 2019 16:02:15 -0600 Subject: [PATCH 124/169] Add ability for self hosted custom menus (#23) * Adds ability for self hosted custom menus Templates can be added to /etc/netbootxyz/custom and are generated and placed in the custom directory of the root web directory by setting custom_generate_menus to true. This provides an option on the main netboot.xyz menu to chain into a custom environment so that seperate local menus can be added and maintained seperately from the netboot.xyz source code tree. * Remove todo --- README.md | 3 ++ TODO.md | 12 ------- etc/netbootxyz/custom/README.md | 24 +++++++++++++ etc/netbootxyz/custom/custom.ipxe.j2 | 36 +++++++++++++++++++ roles/netbootxyz/defaults/main.yml | 11 ++++++ .../tasks/generate_menus_custom.yml | 18 ++++++++++ roles/netbootxyz/tasks/main.yml | 4 +++ roles/netbootxyz/templates/menu/menu.ipxe.j2 | 18 ++++++++-- 8 files changed, 111 insertions(+), 15 deletions(-) delete mode 100644 TODO.md create mode 100644 etc/netbootxyz/custom/README.md create mode 100644 etc/netbootxyz/custom/custom.ipxe.j2 create mode 100644 roles/netbootxyz/tasks/generate_menus_custom.yml diff --git a/README.md b/README.md index aa93db07..469a4aa7 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,6 @@ If you want to override the defaults, you can put overrides in user_overrides.ym Also note many user customizations are located in the boot.cfg file for the IPXE menus. A high level of customization can be achieved using our stock build output and hosting this along with the menus locally. +## Self Hosted Custom Options + +In addition to being able to host netboot.xyz locally, you can also create your own custom templates for custom menus within netboot.xyz. Please see [Custom User Menus](etc/netbootxyz/custom/README.md) for more information. \ No newline at end of file diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 036513b4..00000000 --- a/TODO.md +++ /dev/null @@ -1,12 +0,0 @@ -## TODO - -* Finish the templates -* Convert utilties to dictionary -* Signature generation -* Custom iPXE Certificate generation -* Logic to mirror repos locally for airgapped environments or those with plenty of space. -* Webserver optimization, make configurable (nginx, apache, etc) -* More host OS support -* Docker images -* package cacher -* port netboot.xyz to this in staging env to validate and test diff --git a/etc/netbootxyz/custom/README.md b/etc/netbootxyz/custom/README.md new file mode 100644 index 00000000..2a6c0c3f --- /dev/null +++ b/etc/netbootxyz/custom/README.md @@ -0,0 +1,24 @@ +# Custom Menus for Self Hosted netboot.xyz + +This directory contains custom iPXE files that are rendered +during menu generation and available from the main menu via +the custom menu option. + +When these options are set: + +``` +custom_generate_menus: true +custom_templates_dir: "{{ netbootxyz_conf_dir }}/custom" +``` + +the menu will add an option for custom menus and attempt to load into +custom/custom.ipxe. From there custom options can be built and +maintained seperately from the netboot.xyz source tree so that both +menus can be updated independently. + +A sample menu is provided to demonstrate how to configure and set up +a menu. You can copy the custom directory from the repo: + +``` +cp etc/netbootxyz/custom /etc/netbootxyz/custom +``` \ No newline at end of file diff --git a/etc/netbootxyz/custom/custom.ipxe.j2 b/etc/netbootxyz/custom/custom.ipxe.j2 new file mode 100644 index 00000000..42f1f41b --- /dev/null +++ b/etc/netbootxyz/custom/custom.ipxe.j2 @@ -0,0 +1,36 @@ +#!ipxe +### +### {{ site_name }} custom menu example +### + +:custom +clear custom_choice +menu This is a Test Menu +item --gap This is the first sub menu +item option_one ${space} Loading a kernel and initrd +item option_two ${space} Loading an ISO +item --gap This is a second sub menu +item option_three ${space} Loads another custom sub menu +item option_four ${space} This is option four +choose custom_choice || goto custom_exit +echo ${cls} +goto ${custom_choice} +goto custom_exit + +:option_one +kernel http://path.to/vmlinuz +initrd http://path.to/initrd +imgargs vmlinuz put_kernel_img_args_here +boot || goto custom_exit + +:option_two +kernel {{ memdisk_location }} raw iso +initrd http://path.to/iso +boot || goto custom_exit + +:option_three +echo Chains into another menu... +chain custom1.ipxe || goto custom + +:custom_exit +exit diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index 83665ca8..b5820e0c 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -6,6 +6,9 @@ boot_domain: boot.netboot.xyz boot_version: 1.04 boot_timeout: 300000 time_server: "0.pool.ntp.org" + +# signature checking +sigs_menu: false sigs_enabled: false img_sigs_enabled: false @@ -19,6 +22,7 @@ ipxe_branch: master ipxe_source_dir: /usr/src/ipxe netbootxyz_root: /var/www/html +netbootxyz_conf_dir: /etc/netbootxyz # live os settings live_endpoint: "https://github.com/netbootxyz" @@ -36,6 +40,13 @@ bootloader_http_enabled: true bootloader_disks: - "netboot.xyz" +# custom menus +# custom_github_menus allows for github custom menus +# custom_generate_menus allows for self hosted custom menus to be added +custom_github_menus: true +custom_generate_menus: false +custom_templates_dir: "{{ netbootxyz_conf_dir }}/custom" + # signature generation generate_signatures: false sigs_dir: "{{ netbootxyz_root }}/sigs" diff --git a/roles/netbootxyz/tasks/generate_menus_custom.yml b/roles/netbootxyz/tasks/generate_menus_custom.yml new file mode 100644 index 00000000..ed36090f --- /dev/null +++ b/roles/netbootxyz/tasks/generate_menus_custom.yml @@ -0,0 +1,18 @@ +--- + + - name: Generate directories + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ custom_templates_dir }}" + - "{{ netbootxyz_root }}/custom" + + - name: Generate custom user menu templates + template: + src: "{{ item.src }}" + dest: "{{ netbootxyz_root }}/custom/{{ item.path | regex_replace('.j2','') }}" + with_filetree: "{{ custom_templates_dir }}" + when: item.state == "file" + tags: + - skip_ansible_lint \ No newline at end of file diff --git a/roles/netbootxyz/tasks/main.yml b/roles/netbootxyz/tasks/main.yml index 301d8a88..b614f034 100644 --- a/roles/netbootxyz/tasks/main.yml +++ b/roles/netbootxyz/tasks/main.yml @@ -3,6 +3,10 @@ when: - generate_menus | default(true) | bool + - include: generate_menus_custom.yml + when: + - custom_generate_menus | default(false) | bool + - include: generate_signatures.yml when: - generate_signatures | default(false) | bool diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index 51dda817..0dde2e1c 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -53,11 +53,19 @@ iseq ${arch} x86_64 && set bits 64 || set bits 32 item changebits ${space} Architecture: ${arch} (${bits}bit) item shell ${space} iPXE shell item netinfo ${space} Network card info +{% if sigs_menu | bool %} item --gap Signature Checks: item sig_check ${space} netboot.xyz [ enabled: ${sigs_enabled} ] item img_sigs_check ${space} Images [ enabled: ${img_sigs_enabled} ] -isset ${github_user} && item --gap Custom Menu: || -isset ${github_user} && item nbxyz-custom ${space} ${github_user}'s Custom Menu || +{% endif %} +{% if custom_github_menus | bool %} +isset ${github_user} && item --gap Custom Github Menu: || +isset ${github_user} && item custom-github ${space} ${github_user}'s Custom Menu || +{% endif %} +{% if custom_generate_menus | bool %} +item --gap Custom User Menus: || +item custom-user ${space} Custom User Menus +{% endif %} isset ${menu} && set timeout 0 || set timeout {{ boot_timeout }} choose --timeout ${timeout} --default ${menu} menu || goto local echo ${cls} @@ -99,6 +107,10 @@ goto main_menu iseq ${img_sigs_enabled} true && set img_sigs_enabled false || set img_sigs_enabled true goto main_menu -:nbxyz-custom +:custom-github chain https://raw.githubusercontent.com/${github_user}/netboot.xyz-custom/master/custom.ipxe || goto error goto main_menu + +:custom-user +chain custom/custom.ipxe +goto main_menu \ No newline at end of file From 3275620f93924021fe598296bbbd50015e3b4318 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 22:25:27 +0000 Subject: [PATCH 125/169] Version bump for netbootxyz/ubuntu-squash:pop-19.10 new tag 10-317de200 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 76cadd98..9c1cd381 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -401,7 +401,7 @@ endpoints: version: '4.0' kernel: tails-4.0-live-kernel pop-19.10-default-squash: - path: /ubuntu-squash/releases/download/10-115d425e/ + path: /ubuntu-squash/releases/download/10-317de200/ files: - filesystem.squashfs os: pop From 525d3297dca24e886bab20a3d7ea6c7d3e6d03f7 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Fri, 29 Nov 2019 22:34:46 +0000 Subject: [PATCH 126/169] Version bump for netbootxyz/ubuntu-squash:pop-18.04 new tag 57-b1e9a9cc --- endpoints.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 9c1cd381..26b083c2 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -407,3 +407,10 @@ endpoints: os: pop version: '19.10' kernel: ubuntu-19.10-live-kernel + pop-18.04-default-squash: + path: /ubuntu-squash/releases/download/57-b1e9a9cc/ + files: + - filesystem.squashfs + os: pop + version: '18.04' + kernel: ubuntu-18.04-live-kernel From 7ffcd8a94a54d1389c012a62c4c559a639c3b6fc Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sat, 30 Nov 2019 19:45:53 +0000 Subject: [PATCH 127/169] Add PopOS live, exits properly if ntp fails --- .../templates/menu/live-popos.ipxe.j2 | 44 +++++++++++++++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 + roles/netbootxyz/templates/menu/menu.ipxe.j2 | 2 +- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 roles/netbootxyz/templates/menu/live-popos.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-popos.ipxe.j2 b/roles/netbootxyz/templates/menu/live-popos.ipxe.j2 new file mode 100644 index 00000000..9098baa4 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-popos.ipxe.j2 @@ -0,0 +1,44 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Pop OS +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 18.04 ${space} ${os} 18.04 +item 19.10 ${space} ${os} 19.10 +choose live_version || goto live_exit +goto ${live_version} + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "pop" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ value.version }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto {{ value.version }}-boot +{% endif %} +{% endfor %} + +:18.04-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:19.10-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index e405082a..1dcba585 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -10,6 +10,7 @@ item live-debian ${space} Debian item live-elementary ${space} elementary OS item live-fedora ${space} Fedora item live-kali ${space} Kali +item live-popos ${space} Pop OS item live-tails ${space} Tails item live-ubuntu ${space} Ubuntu choose menu || goto live_exit diff --git a/roles/netbootxyz/templates/menu/menu.ipxe.j2 b/roles/netbootxyz/templates/menu/menu.ipxe.j2 index 0dde2e1c..e777b30f 100644 --- a/roles/netbootxyz/templates/menu/menu.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/menu.ipxe.j2 @@ -2,7 +2,7 @@ :start chain --autofree boot.cfg || -ntp {{ time_server }} +ntp {{ time_server }} || iseq ${cls} serial && goto ignore_cls || set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J" set cls ${cls:string} From 0e6c949bbd9b0bda45927cc0e9dc2c81f21e510a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 02:29:45 +0000 Subject: [PATCH 128/169] Version bump for netbootxyz/manjaro-core-18.x:master new tag 4.19.69-1-MANJARO-6946b4cf --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 26b083c2..3baad9ef 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -414,3 +414,11 @@ endpoints: os: pop version: '18.04' kernel: ubuntu-18.04-live-kernel + manjaro-18.1.0-architect-kernel: + path: /manjaro-core-18.x/releases/download/4.19.69-1-MANJARO-6946b4cf/ + files: + - initrd + - vmlinuz + os: manjaro + flavor: architect + version: 18.1.0 From 76c660df902caa71a26f3ff417a5df996b83a41d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 02:52:31 +0000 Subject: [PATCH 129/169] Version bump for netbootxyz/manjaro-core-18.x:gui-18.1.0 new tag 5.2.11-1-MANJARO-e2cddd8e --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 3baad9ef..214e96af 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -422,3 +422,11 @@ endpoints: os: manjaro flavor: architect version: 18.1.0 + manjaro-18.1.0-gui-kernel: + path: /manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/ + files: + - initrd + - vmlinuz + os: manjaro + flavor: gui + version: 18.1.0 From d27403f92352ad919368df77162ee832be8224dd Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 03:05:42 +0000 Subject: [PATCH 130/169] Version bump for netbootxyz/manjaro-squash:master new tag 18.1.0-a9fc9ad4 --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 214e96af..e4de48dd 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -51,14 +51,14 @@ endpoints: flavor: core kernel: debian-10-live-kernel manjaro-18.1.0-default-squash: - path: /manjaro-squash/releases/download/18.1.0-f48d62ba/ + path: /manjaro-squash/releases/download/18.1.0-a9fc9ad4/ files: - livefs.sfs - rootfs.sfs os: manjaro version: 18.1.0 flavor: architect - kernel: manjaro-18.x-live-kernel + kernel: manjaro-18.1.0-architect-kernel ubuntu-18.04-xfce-squash: path: /ubuntu-squash/releases/download/18.04.3-d9bd73c3/ files: From 7d1ea51a52fd1b918b0122dc7bf0bd5493e18348 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 03:12:40 +0000 Subject: [PATCH 131/169] Version bump for netbootxyz/manjaro-squash:18.1.0-xfce new tag 18.1.0-5dc05378 --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index e4de48dd..03f1d32d 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -314,7 +314,7 @@ endpoints: flavor: KDE kernel: manjaro-18.x-live-kernel manjaro-18.1.0-xfce-squash: - path: /manjaro-squash/releases/download/18.1.0-fe18a2cc/ + path: /manjaro-squash/releases/download/18.1.0-5dc05378/ files: - livefs.sfs - rootfs.sfs @@ -323,7 +323,7 @@ endpoints: os: manjaro version: 18.1.0 flavor: XFCE - kernel: manjaro-18.x-live-kernel + kernel: manjaro-18.1.0-gui-kernel elementaryos-5-default-squash: path: /ubuntu-squash/releases/download/5-8bd33b19/ files: From 546d2edb3e9e9c30d2b20f848b7d501ebeacdc56 Mon Sep 17 00:00:00 2001 From: Ryan Kuba Date: Sat, 30 Nov 2019 19:14:03 -0800 Subject: [PATCH 132/169] Adding Manjaro and update tails snippet (#25) * need union aufs option for many services to start properly * update boot params for manjaro to default ones in Live cd * add to live and disclaimer --- roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 | 4 +++- roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 b/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 index 5d0a22ab..04f43c9c 100644 --- a/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-manjaro.ipxe.j2 @@ -4,6 +4,8 @@ goto ${menu} || :live_menu menu Manjaro Live - Current Arch [ ${arch} ] +item --gap Currently during boot you need to press ctrl+d/ctrl+c +item --gap repeatedly when init hangs on starting a download iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Manjaro Live {% for key, value in endpoints.items() | sort %} @@ -24,7 +26,7 @@ imgfree set fetch_url ${live_endpoint}{{ value.path }} {% for key, value in endpoints.items() | sort %} {% if key == kernel_name %} -kernel ${live_endpoint}{{ value.path }}vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} initrd=initrd +kernel ${live_endpoint}{{ value.path }}vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 driver=free tz=UTC lang=en_US keytable=us systemdshow_status=1 apparmor=1 security=apparmor initrd ${live_endpoint}{{ value.path }}initrd boot {% endif %} diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index 1dcba585..7dd86c1a 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -10,6 +10,7 @@ item live-debian ${space} Debian item live-elementary ${space} elementary OS item live-fedora ${space} Fedora item live-kali ${space} Kali +item live-manjaro ${space} Manjaro item live-popos ${space} Pop OS item live-tails ${space} Tails item live-ubuntu ${space} Ubuntu From 6a1395e8d863c57918eea01dbd0f8b711d28e2f8 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 03:15:48 +0000 Subject: [PATCH 133/169] Version bump for netbootxyz/manjaro-squash:18.1.0-gnome new tag 18.1.0-f94efa23 --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index 03f1d32d..c6ca3c5b 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -292,7 +292,7 @@ endpoints: version: 31 flavor: Xfce manjaro-18.1.0-gnome-squash: - path: /manjaro-squash/releases/download/18.1.0-ebd2dd2f/ + path: /manjaro-squash/releases/download/18.1.0-f94efa23/ files: - livefs.sfs - rootfs.sfs @@ -301,7 +301,7 @@ endpoints: os: manjaro version: 18.1.0 flavor: GNOME - kernel: manjaro-18.x-live-kernel + kernel: manjaro-18.1.0-gui-kernel manjaro-18.1.0-kde-squash: path: /manjaro-squash/releases/download/18.1.0-d11f560a/ files: From a5fd7eb63a1d0745b119d9d2c82a700e8308ec5f Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 03:21:29 +0000 Subject: [PATCH 134/169] Version bump for netbootxyz/manjaro-squash:18.1.0-kde new tag 18.1.0-a3f2c12b --- endpoints.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/endpoints.yml b/endpoints.yml index c6ca3c5b..8e1b5d3b 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -303,7 +303,7 @@ endpoints: flavor: GNOME kernel: manjaro-18.1.0-gui-kernel manjaro-18.1.0-kde-squash: - path: /manjaro-squash/releases/download/18.1.0-d11f560a/ + path: /manjaro-squash/releases/download/18.1.0-a3f2c12b/ files: - livefs.sfs - rootfs.sfs @@ -312,7 +312,7 @@ endpoints: os: manjaro version: 18.1.0 flavor: KDE - kernel: manjaro-18.x-live-kernel + kernel: manjaro-18.1.0-gui-kernel manjaro-18.1.0-xfce-squash: path: /manjaro-squash/releases/download/18.1.0-5dc05378/ files: From 587d9825267e4ce86d29aeea0f3233b605bad69f Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 17:42:08 +0000 Subject: [PATCH 135/169] Version bump for netbootxyz/ubuntu-squash:mint-19.2-xfce new tag 19.2-69724a44 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 8e1b5d3b..cf057c08 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -430,3 +430,11 @@ endpoints: os: manjaro flavor: gui version: 18.1.0 + mint-19-xfce-squash: + path: /ubuntu-squash/releases/download/19.2-69724a44/ + files: + - filesystem.squashfs + os: mint + version: '19' + flavor: xfce + kernel: ubuntu-18.04-live-kernel From 5b80f0d0ddf02bf4bca166833dea03a5aaa7d02d Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 17:47:45 +0000 Subject: [PATCH 136/169] Version bump for netbootxyz/ubuntu-squash:mint-19.2-mate new tag 19.2-0b1e2ee6 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index cf057c08..7e00c66a 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -438,3 +438,11 @@ endpoints: version: '19' flavor: xfce kernel: ubuntu-18.04-live-kernel + mint-19-mate-squash: + path: /ubuntu-squash/releases/download/19.2-0b1e2ee6/ + files: + - filesystem.squashfs + os: mint + version: '19' + flavor: MATE + kernel: ubuntu-18.04-live-kernel From f0c61bbe13712955304ffb7034f480d4a2986219 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Sun, 1 Dec 2019 18:04:44 +0000 Subject: [PATCH 137/169] Version bump for netbootxyz/ubuntu-squash:mint-19-cinnamon new tag 19.2-0830904d --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 7e00c66a..7b989021 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -446,3 +446,11 @@ endpoints: version: '19' flavor: MATE kernel: ubuntu-18.04-live-kernel + mint-19-cinnamon-squash: + path: /ubuntu-squash/releases/download/19.2-0830904d/ + files: + - filesystem.squashfs + os: mint + version: '19' + flavor: Cinnamon + kernel: ubuntu-18.04-live-kernel From 11b4bb6f6b15564d7d2298727cf79c7a686321a6 Mon Sep 17 00:00:00 2001 From: Ryan Kuba Date: Sun, 1 Dec 2019 12:21:46 -0800 Subject: [PATCH 138/169] add slitaz live menus (#26) * add slitaz live menus * use internal menu for slitaz endpoints --- .../templates/menu/live-slitaz.ipxe.j2 | 221 ++++++++++++++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 + 2 files changed, 222 insertions(+) create mode 100644 roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 b/roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 new file mode 100644 index 00000000..423bf37a --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 @@ -0,0 +1,221 @@ +#!ipxe + +# SliTaz Operating System +# http://www.slitaz.org +set slitaz_mirror http://mirror1.slitaz.org/ + +:slitaz +set os SliTaz +clear slitaz_version +menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}] +item --gap SliTaz releases +item slitaztiny ${space} ${os} Tiny +item slitaznext ${space} ${os} next +item slitazrolling ${space} ${os} rolling (renewed every Sunday) +item slitaz50 ${space} ${os} 5.0 +item slitaz40 ${space} ${os} 4.0 +item slitaz30 ${space} ${os} 3.0 +item slitaz20 ${space} ${os} 2.0 +item slitaz20 ${space} ${os} 1.0 +choose slitaz_version || goto slitaz +goto ${slitaz_version} + +:slitaztiny +clear boot +sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-tiny-1.0.iso || +goto slitaz + +:slitaznext +menu ${os} next +clear boot +item next170915 Slitaz next 15/09/2017 +item next170930 Slitaz next 30/09/2017 +item next180107 Slitaz next lxqt 07/01/2018 +choose boot || goto slitaz +goto ${boot} + +:slitazrolling +menu ${os} rolling +clear boot +item rolling5 Slitaz rolling 5in1 (autoselect 32bits or 64bits arch) +item rolling64 Slitaz rolling 64 bits (no 32bits arch support) +item rollingloram Slitaz rolling loram +choose boot || goto slitaz +goto ${boot} + +:slitaz50 +menu ${os} 5.0 +clear boot +item core5RC1 Slitaz 5.0 RC1 02/05/2014 +item core5RC2 Slitaz 5.0 RC2 19/05/2014 +item core5RC3 Slitaz 5.0 RC3 20/05/2015 +choose boot || goto slitaz +goto ${boot} + +:slitaz40 +menu ${os} 4.0 +clear boot +item core4 Slitaz 4.0 standard +item loram4 Slitaz 4.0 loram +item firefox4 Slitaz 4.0 firefox +item kids4 Slitaz 4.0 kids +item tiny4 Slitaz 4.0 tiny +item tinytext4 Slitaz 4.0 tiny text +choose boot || goto slitaz +goto ${boot} + +:slitaz30 +menu ${os} 3.0 +clear boot +item core3 Slitaz 3.0 standard +item loram3 Slitaz 3.0 loram +item firefox3 Slitaz 3.0 firefox +item tiny3 Slitaz 3.0 tiny +item tinytext3 Slitaz 3.0 tiny text +choose boot || goto slitaz +goto ${boot} + +:slitaz20 +menu ${os} 2.0 +clear boot +item core2 Slitaz 2.0 standard +item loram2 Slitaz 2.0 loram +item tiny2 Slitaz 2.0 tiny +item tinytext2 Slitaz 2.0 tiny text +choose boot || goto slitaz +goto ${boot} + +:slitaz10 +menu ${os} 1.0 +clear boot +item core1 Slitaz 1.0 standard +item loram1 Slitaz 1.0 loram +item tiny1 Slitaz 1.0 tiny +choose boot || goto slitaz +goto ${boot} + +:core1 +sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-1.0-4in1.iso || +goto slitaz + +:loram1 +sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-loram-1.0.iso || +goto slitaz + +:tiny1 +sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-tiny-1.0.iso || +goto slitaz + +:core2 +sanboot ${slitaz_mirror}iso/2.0/flavors/slitaz-2.0-3in1.iso || +goto slitaz + +:loram2 +sanboot ${slitaz_mirror}iso/2.0/flavors/slitaz-loram.iso || +goto slitaz + +:tiny2 +imgfree +kernel ${slitaz_mirror}boot/2.0/bzImage rw root=/dev/null vga=normal autologin +initrd ${slitaz_mirror}boot/2.0/rootfs-tiny.gz +boot || +goto slitaz + +:tinytext2 +imgfree +kernel ${slitaz_mirror}boot/2.0/bzImage rw root=/dev/null vga=normal screen=text +initrd ${slitaz_mirror}boot/2.0/rootfs-tiny.gz +boot || +goto slitaz + +:core3 +sanboot ${slitaz_mirror}iso/3.0/flavors/slitaz-3.0-3in1.iso || +goto slitaz + +:loram3 +sanboot ${slitaz_mirror}iso/3.0/flavors/slitaz-3.0-loram.iso || +goto slitaz + +:firefox3 +sanboot ${slitaz_mirror}iso/3.0/flavors/slitaz-3.0-firefox.iso || +goto slitaz + +:tiny3 +imgfree +kernel ${slitaz_mirror}boot/3.0/bzImage rw root=/dev/null vga=normal autologin +initrd ${slitaz_mirror}boot/3.0/rootfs-tiny.gz +boot || +goto slitaz + +:tinytext3 +imgfree +kernel ${slitaz_mirror}boot/3.0/bzImage rw root=/dev/null vga=normal screen=text +initrd ${slitaz_mirror}boot/3.0/rootfs-tiny.gz +boot || +goto slitaz + +:core4 +sanboot ${slitaz_mirror}iso/4.0/slitaz-4.0.iso || +goto slitaz + +:loram4 +sanboot ${slitaz_mirror}iso/4.0/flavors/slitaz-4.0-loram.iso || +goto slitaz + +:firefox4 +sanboot ${slitaz_mirror}iso/4.0/flavors/slitaz-4.0-firefox.iso || +goto slitaz + +:kids4 +sanboot ${slitaz_mirror}iso/4.0/flavors/slitaz-4.0-kids.iso || +goto slitaz + +:tiny4 +imgfree +kernel ${slitaz_mirror}boot/4.0/bzImage rw root=/dev/null vga=normal autologin +initrd ${slitaz_mirror}boot/4.0/rootfstiny.gz +boot || +goto slitaz + +:tinytext4 +imgfree +kernel ${slitaz_mirror}boot/4.0/bzImage rw root=/dev/null vga=normal screen=text +initrd ${slitaz_mirror}boot/4.0/rootfstiny.gz +boot || +goto slitaz + +:core5RC1 +sanboot ${slitaz_mirror}iso/5.0/slitaz-5.0-rc1.iso || +goto slitaz + +:core5RC2 +sanboot ${slitaz_mirror}iso/5.0/slitaz-5.0-rc2.iso || +goto slitaz + +:core5RC3 +sanboot ${slitaz_mirror}iso/5.0/slitaz-5.0-rc3.iso || +goto slitaz + +:rolling5 +sanboot ${slitaz_mirror}iso/rolling/slitaz-rolling-core-5in1.iso || +goto slitaz + +:rolling64 +sanboot ${slitaz_mirror}iso/rolling/slitaz-rolling-core64.iso || +goto slitaz + +:rollingloram +sanboot ${slitaz_mirror}iso/rolling/slitaz-rolling-loram.iso || +goto slitaz + +:next170915 +sanboot ${slitaz_mirror}iso/next/slitaz-next-170915.iso || +goto slitaz + +:next170930 +sanboot ${slitaz_mirror}iso/next/slitaz-next-170930.iso || +goto slitaz + +:next180107 +sanboot ${slitaz_mirror}iso/next/slitaz-lxqt.iso || +goto slitaz diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index 7dd86c1a..361880f7 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -12,6 +12,7 @@ item live-fedora ${space} Fedora item live-kali ${space} Kali item live-manjaro ${space} Manjaro item live-popos ${space} Pop OS +item live-slitaz ${space} Slitaz item live-tails ${space} Tails item live-ubuntu ${space} Ubuntu choose menu || goto live_exit From 35dc207542ea526049735e4b7051ce031ba6bd08 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 1 Dec 2019 12:29:00 -0800 Subject: [PATCH 139/169] adding Mint Live --- .../templates/menu/live-mint.ipxe.j2 | 52 +++++++++++++++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 + 2 files changed, 53 insertions(+) create mode 100644 roles/netbootxyz/templates/menu/live-mint.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-mint.ipxe.j2 b/roles/netbootxyz/templates/menu/live-mint.ipxe.j2 new file mode 100644 index 00000000..e5b8bb3f --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-mint.ipxe.j2 @@ -0,0 +1,52 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Mint Live +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 19 ${space} ${os} 19 +choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors +goto ${live_version} + +:19 +{% for key, value in endpoints.items() | sort %} +{% if value.os == "mint" and 'squash' in key and value.version == "19" %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu +echo ${cls} +goto ${flavor} || + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "mint" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto {{ value.version }}-boot +{% endif %} +{% endfor %} + +:19-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index 361880f7..a23bd350 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -11,6 +11,7 @@ item live-elementary ${space} elementary OS item live-fedora ${space} Fedora item live-kali ${space} Kali item live-manjaro ${space} Manjaro +item live-mint ${space} Mint item live-popos ${space} Pop OS item live-slitaz ${space} Slitaz item live-tails ${space} Tails From 978ccf0bfa65f9f91308a03e10d61586c5f84a09 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 02:52:22 +0000 Subject: [PATCH 140/169] Version bump for netbootxyz/ubuntu-squash:zorin-15-gnome new tag 15-171ddffc --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 7b989021..be6f56b1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -454,3 +454,11 @@ endpoints: version: '19' flavor: Cinnamon kernel: ubuntu-18.04-live-kernel + zorin-15-gnome-squash: + path: /ubuntu-squash/releases/download/15-171ddffc/ + files: + - filesystem.squashfs + os: zorin + version: '15' + flavor: GNOME + kernel: ubuntu-18.04-live-kernel From 22950694926b0ae3512fc4816c104fa5f1d2f647 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 03:04:42 +0000 Subject: [PATCH 141/169] Version bump for netbootxyz/ubuntu-squash:zorin-15-xfce new tag 15-24926a26 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index be6f56b1..18910f7e 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -462,3 +462,11 @@ endpoints: version: '15' flavor: GNOME kernel: ubuntu-18.04-live-kernel + zorin-15-xfce-squash: + path: /ubuntu-squash/releases/download/15-24926a26/ + files: + - filesystem.squashfs + os: zorin + version: '15' + flavor: XFCE + kernel: ubuntu-18.04-live-kernel From c7d48f890742f1d09f2612a959cedc050902eeed Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 03:43:32 +0000 Subject: [PATCH 142/169] Version bump for netbootxyz/ubuntu-squash:peppermint-10 new tag 10-3bce362b --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 18910f7e..57d03ed1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -470,3 +470,11 @@ endpoints: version: '15' flavor: XFCE kernel: ubuntu-18.04-live-kernel + peppermint-10-default-squash: + path: /ubuntu-squash/releases/download/10-3bce362b/ + files: + - filesystem.squashfs + os: peppermint + version: '10' + flavor: LXDE + kernel: ubuntu-18.04-live-kernel From 922d050febf68b48e923600621d45a413209f84c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 03:57:13 +0000 Subject: [PATCH 143/169] Version bump for netbootxyz/ubuntu-squash:backbox-6 new tag 6-b44ce5ee --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 57d03ed1..d8c2bb9c 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -478,3 +478,11 @@ endpoints: version: '10' flavor: LXDE kernel: ubuntu-18.04-live-kernel + backbox-6-default-squash: + path: /ubuntu-squash/releases/download/6-b44ce5ee/ + files: + - filesystem.squashfs + os: BackBox + version: '6' + flavor: default + kernel: ubuntu-18.04-live-kernel From 321798fac861774538ceda031d4964cf46a9e033 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 04:04:04 +0000 Subject: [PATCH 144/169] Version bump for netbootxyz/debian-squash:q4os-3.9 new tag 3.9-a721c7cc --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index d8c2bb9c..d7a3af71 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -486,3 +486,11 @@ endpoints: version: '6' flavor: default kernel: ubuntu-18.04-live-kernel + q4os-3.9-default-squash: + path: /debian-squash/releases/download/3.9-a721c7cc/ + files: + - filesystem.squashfs + os: Q4OS + version: '3.9' + flavor: trinity + kernel: debian-10-live-kernel From 24897a0a3b2a28f5f30f366ed65aec65268a2851 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 04:06:55 +0000 Subject: [PATCH 145/169] Version bump for netbootxyz/debian-squash:q4os-3.9-plasma new tag 3.9-8b894afb --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index d7a3af71..b8f9c7b5 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -494,3 +494,11 @@ endpoints: version: '3.9' flavor: trinity kernel: debian-10-live-kernel + q4os-3.9-plasma-squash: + path: /debian-squash/releases/download/3.9-8b894afb/ + files: + - filesystem.squashfs + os: Q4OS + version: '3.9' + flavor: plasma + kernel: debian-10-live-kernel From bc85b92003b447700bd295de163d7e1aac63bf33 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 09:20:48 +0000 Subject: [PATCH 146/169] Version bump for netbootxyz/ubuntu-squash:voyager-bionic new tag bionic-539182bf --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index b8f9c7b5..2a10ccc3 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -502,3 +502,11 @@ endpoints: version: '3.9' flavor: plasma kernel: debian-10-live-kernel + voyager-bionic-squash: + path: /ubuntu-squash/releases/download/bionic-539182bf/ + files: + - filesystem.squashfs + os: Voyager + version: bionic + flavor: bionic + kernel: ubuntu-18.04-live-kernel From 9c2ebf537f2a57ef18fc6209b6e21d1514f6df0a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 09:24:08 +0000 Subject: [PATCH 147/169] Version bump for netbootxyz/debian-squash:voyager-buster new tag buster-1e606829 --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 2a10ccc3..5ea3c310 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -510,3 +510,11 @@ endpoints: version: bionic flavor: bionic kernel: ubuntu-18.04-live-kernel + voyager-buster-squash: + path: /debian-squash/releases/download/buster-1e606829/ + files: + - filesystem.squashfs + os: Voyager + version: buster + flavor: buster + kernel: debian-10-live-kernel From 04b6769702b2f2030f80a26053906107560f1e29 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 09:28:40 +0000 Subject: [PATCH 148/169] Version bump for netbootxyz/ubuntu-squash:voyager-eoan new tag eoan-5a6a8fab --- endpoints.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/endpoints.yml b/endpoints.yml index 5ea3c310..6f749065 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -518,3 +518,11 @@ endpoints: version: buster flavor: buster kernel: debian-10-live-kernel + voyager-eoan-squash: + path: /ubuntu-squash/releases/download/eoan-5a6a8fab/ + files: + - filesystem.squashfs + os: Voyager + version: eoan + flavor: eoan + kernel: ubuntu-19.10-live-kernel From f7671cef0d02ed8967f84dfbf3fde28916d0b346 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Dec 2019 09:33:15 +0000 Subject: [PATCH 149/169] Version bump for netbootxyz/ubuntu-squash:voyager-bionic new tag bionic-c535c643 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index 6f749065..ec01c68b 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -503,7 +503,7 @@ endpoints: flavor: plasma kernel: debian-10-live-kernel voyager-bionic-squash: - path: /ubuntu-squash/releases/download/bionic-539182bf/ + path: /ubuntu-squash/releases/download/bionic-c535c643/ files: - filesystem.squashfs os: Voyager From c985afa82827745d300bacfbc204169ea59c634d Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 2 Dec 2019 02:38:50 -0800 Subject: [PATCH 150/169] adding zorin backbox peppermint Q4OS voyager to the live menus --- .../templates/menu/live-backbox.ipxe.j2 | 37 +++++++++++++ .../templates/menu/live-peppermint.ipxe.j2 | 37 +++++++++++++ .../templates/menu/live-q4os.ipxe.j2 | 37 +++++++++++++ .../templates/menu/live-voyager.ipxe.j2 | 41 +++++++++++++++ .../templates/menu/live-zorin.ipxe.j2 | 52 +++++++++++++++++++ roles/netbootxyz/templates/menu/live.ipxe.j2 | 5 ++ 6 files changed, 209 insertions(+) create mode 100644 roles/netbootxyz/templates/menu/live-backbox.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-peppermint.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-voyager.ipxe.j2 create mode 100644 roles/netbootxyz/templates/menu/live-zorin.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-backbox.ipxe.j2 b/roles/netbootxyz/templates/menu/live-backbox.ipxe.j2 new file mode 100644 index 00000000..98782880 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-backbox.ipxe.j2 @@ -0,0 +1,37 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os BackBox +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 6 ${space} ${os} 6 +choose live_version || goto live_exit +goto ${live_version} + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "BackBox" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ value.version }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto {{ value.version }}-boot +{% endif %} +{% endfor %} + +:6-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live-peppermint.ipxe.j2 b/roles/netbootxyz/templates/menu/live-peppermint.ipxe.j2 new file mode 100644 index 00000000..99400b07 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-peppermint.ipxe.j2 @@ -0,0 +1,37 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Peppermint +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 10 ${space} ${os} 10 +choose live_version || goto live_exit +goto ${live_version} + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "peppermint" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ value.version }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto {{ value.version }}-boot +{% endif %} +{% endfor %} + +:10-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 new file mode 100644 index 00000000..63dc5032 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 @@ -0,0 +1,37 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Q4OS +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 3.9 ${space} ${os} 3.9 +choose live_version || goto live_exit +goto ${live_version} + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "q4os" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ value.version }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto {{ value.version }}-boot +{% endif %} +{% endfor %} + +:3.9-boot +imgfree +kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live-voyager.ipxe.j2 b/roles/netbootxyz/templates/menu/live-voyager.ipxe.j2 new file mode 100644 index 00000000..04ce7064 --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-voyager.ipxe.j2 @@ -0,0 +1,41 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Voyager Live +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item bionic ${space} ${os} Bionic +item buster ${space} ${os} Buster +item eoan ${space} ${os} Eoan +choose live_version || goto live_exit + +:bionic +set squash_url ${live_endpoint}{{ endpoints["voyager-bionic-squash"].path }}filesystem.squashfs +set kernel_url ${live_endpoint}{{ endpoints["ubuntu-18.04-live-kernel"].path }} +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:buster +set squash_url ${live_endpoint}{{ endpoints["voyager-buster-squash"].path }}filesystem.squashfs +set kernel_url ${live_endpoint}{{ endpoints["debian-10-live-kernel"].path }} +imgfree +kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:eoan +set squash_url ${live_endpoint}{{ endpoints["voyager-eoan-squash"].path }}filesystem.squashfs +set kernel_url ${live_endpoint}{{ endpoints["ubuntu-19.10-live-kernel"].path }} +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 diff --git a/roles/netbootxyz/templates/menu/live-zorin.ipxe.j2 b/roles/netbootxyz/templates/menu/live-zorin.ipxe.j2 new file mode 100644 index 00000000..5df5b7ca --- /dev/null +++ b/roles/netbootxyz/templates/menu/live-zorin.ipxe.j2 @@ -0,0 +1,52 @@ +#!ipxe + +goto ${menu} || + +:live_menu +set os Zorin Live +menu ${os} - Current Arch [ ${arch} ] +iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} +item --gap ${os} Versions +item 15 ${space} ${os} 15 +choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors +goto ${live_version} + +:15 +{% for key, value in endpoints.items() | sort %} +{% if value.os == "zorin" and 'squash' in key and value.version == "15" %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu +echo ${cls} +goto ${flavor} || + +{% for key, value in endpoints.items() | sort %} +{% if value.os == "zorin" and 'squash' in key %} +{% set kernel_name = value.kernel %} +:{{ key }} +set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs +{% for key, value in endpoints.items() | sort %} +{% if key == kernel_name %} +set kernel_url ${live_endpoint}{{ value.path }} +{% endif %} +{% endfor %} +goto {{ value.version }}-boot +{% endif %} +{% endfor %} + +:15-boot +imgfree +kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd +initrd ${kernel_url}initrd +boot + +:live_exit +clear menu +exit 0 + diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index a23bd350..2becedd3 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -6,16 +6,21 @@ goto ${menu} || menu Live Boot Distributions - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap Live Boot Distributions +item live-backbox ${space} BackBox item live-debian ${space} Debian item live-elementary ${space} elementary OS item live-fedora ${space} Fedora item live-kali ${space} Kali +item live-q4os ${space} Q4OS item live-manjaro ${space} Manjaro item live-mint ${space} Mint +item live-peppermint ${space} Peppermint item live-popos ${space} Pop OS item live-slitaz ${space} Slitaz item live-tails ${space} Tails item live-ubuntu ${space} Ubuntu +item live-voyager ${space} Voyager +item live-zorin ${space} Zorin OS choose menu || goto live_exit echo ${cls} goto ${menu} || From e11bc6176f631de7d677b42eda93341080f28be1 Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 2 Dec 2019 14:30:40 -0800 Subject: [PATCH 151/169] fix typo on OS name --- roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 index 63dc5032..c8f3e780 100644 --- a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 @@ -12,7 +12,7 @@ choose live_version || goto live_exit goto ${live_version} {% for key, value in endpoints.items() | sort %} -{% if value.os == "q4os" and 'squash' in key %} +{% if value.os == "Q4OS" and 'squash' in key %} {% set kernel_name = value.kernel %} :{{ value.version }} set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs From 2a8e584bb1a67cf4a8d9be1900ce8cd0d8c5221c Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 2 Dec 2019 14:48:58 -0800 Subject: [PATCH 152/169] followed single formula for boot menu --- .../templates/menu/live-q4os.ipxe.j2 | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 index c8f3e780..5348d7d3 100644 --- a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 @@ -3,18 +3,33 @@ goto ${menu} || :live_menu -set os Q4OS +set os Q4OS Live menu ${os} - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap ${os} Versions item 3.9 ${space} ${os} 3.9 choose live_version || goto live_exit +menu ${os} ${live_version} +item --gap ${os} Flavors goto ${live_version} +:3.9 +{% for key, value in endpoints.items() | sort %} +{% if value.os == "Q4OS" and 'squash' in key and value.version == "18.04" %} +item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} +{% endif %} +{% endfor %} +goto flavor_select + +:flavor_select +choose flavor || goto live_menu +echo ${cls} +goto ${flavor} || + {% for key, value in endpoints.items() | sort %} {% if value.os == "Q4OS" and 'squash' in key %} {% set kernel_name = value.kernel %} -:{{ value.version }} +:{{ key }} set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs {% for key, value in endpoints.items() | sort %} {% if key == kernel_name %} From fd06e06d15141efc0f54865855af138b1e46e10e Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 2 Dec 2019 15:14:05 -0800 Subject: [PATCH 153/169] last typo --- roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 index 5348d7d3..579576e1 100644 --- a/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-q4os.ipxe.j2 @@ -15,7 +15,7 @@ goto ${live_version} :3.9 {% for key, value in endpoints.items() | sort %} -{% if value.os == "Q4OS" and 'squash' in key and value.version == "18.04" %} +{% if value.os == "Q4OS" and 'squash' in key and value.version == "3.9" %} item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}} {% endif %} {% endfor %} From 264a53fea47fa8ad1d361da965c25d957f43e5dc Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 3 Dec 2019 13:10:14 -0800 Subject: [PATCH 154/169] add message about tails and make elementary 5 ambigous as they have point releases --- roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 | 4 ++-- roles/netbootxyz/templates/menu/live-tails.ipxe.j2 | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 b/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 index d235ea7f..fc4a2b49 100644 --- a/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-elementary.ipxe.j2 @@ -7,7 +7,7 @@ set os elementary OS menu ${os} - Current Arch [ ${arch} ] iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap ${os} Versions -item elementaryos-5-default-squash ${space} ${os} 5.0 (Juno) +item elementaryos-5-default-squash ${space} ${os} 5 (Juno) choose live_version || goto live_exit goto ${live_version} @@ -33,4 +33,4 @@ boot :live_exit clear menu -exit 0 \ No newline at end of file +exit 0 diff --git a/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 b/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 index 52917f96..aab8de04 100644 --- a/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live-tails.ipxe.j2 @@ -5,6 +5,7 @@ goto ${menu} || :live_menu set os Tails menu ${os} - Current Arch [ ${arch} ] +item --gap Currently networking is not functional for this live image iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} item --gap ${os} Versions item tails-4.0-default-squash ${space} ${os} 4.0 From 999a90aa2875f9cfb51c76a7db6d94299e933322 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 3 Dec 2019 21:11:32 +0000 Subject: [PATCH 155/169] Version bump for netbootxyz/ubuntu-squash:elementaryos-5 new tag 5-14ff2c98 --- endpoints.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/endpoints.yml b/endpoints.yml index ec01c68b..aaff28f1 100644 --- a/endpoints.yml +++ b/endpoints.yml @@ -325,7 +325,7 @@ endpoints: flavor: XFCE kernel: manjaro-18.1.0-gui-kernel elementaryos-5-default-squash: - path: /ubuntu-squash/releases/download/5-8bd33b19/ + path: /ubuntu-squash/releases/download/5-14ff2c98/ files: - filesystem.squashfs os: elementary-os From 6dc5b8c68e295251a8aaf4b7bac9e48e938f847b Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Thu, 5 Dec 2019 06:53:35 +0000 Subject: [PATCH 156/169] Shift mirror generation back to boot.cfg Generates mirrors in boot.cfg if both x_mirror and x_base_dir are set. --- roles/netbootxyz/defaults/main.yml | 27 ++----------------- .../templates/menu/alpinelinux.ipxe.j2 | 6 ++--- .../templates/menu/archlinux.ipxe.j2 | 12 ++++----- roles/netbootxyz/templates/menu/boot.cfg.j2 | 12 +++++++++ .../netbootxyz/templates/menu/centos.ipxe.j2 | 10 +++---- .../netbootxyz/templates/menu/coreos.ipxe.j2 | 2 +- .../netbootxyz/templates/menu/debian.ipxe.j2 | 6 ++--- .../netbootxyz/templates/menu/freedos.ipxe.j2 | 2 +- .../netbootxyz/templates/menu/ipfire.ipxe.j2 | 3 +-- roles/netbootxyz/templates/menu/kali.ipxe.j2 | 6 ++--- .../netbootxyz/templates/menu/mageia.ipxe.j2 | 6 ++--- .../netbootxyz/templates/menu/openbsd.ipxe.j2 | 2 +- .../templates/menu/opensuse.ipxe.j2 | 3 +-- .../templates/menu/rancheros.ipxe.j2 | 4 +-- .../templates/menu/scientific.ipxe.j2 | 8 +++--- 15 files changed, 48 insertions(+), 61 deletions(-) diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index b5820e0c..538d3388 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -221,6 +221,7 @@ releases: ipfire: name: "IPFire" mirror: "https://downloads.ipfire.org" + base_dir: "releases/ipfire-2.x" menu: "linux" enabled: true versions: @@ -235,30 +236,6 @@ releases: versions: - name: "Rolling Edition (2019.4)" code_name: "rolling" - livedebian: - name: "Debian Live" - mirror: "http://cdimage.debian.org" - base_dir: "cdimage/archive" - enabled: true - menu: "live" - versions: - - name: "8.11.0" - code_name: "8.11.0" - flavors: - - name: "Cinnamon" - code_name: "cinnamon-desktop" - - name: "Gnome" - code_name: "gnome-desktop" - - name: "KDE" - code_name: "kde-desktop" - - name: "LXDE" - code_name: "lxde-desktop" - - name: "MATE" - code_name: "mate-desktop" - - name: "Standard" - code_name: "standard" - - name: "XFCE" - code_name: "xfce-desktop" livegrml: name: "Grml Live Linux" mirror: "http://download.grml.org" @@ -349,7 +326,7 @@ releases: scientific: name: "Scientific Linux" mirror: "http://ftp1.scientificlinux.org" - base_dir: "" + base_dir: "linux/scientific" enabled: true menu: "linux" versions: diff --git a/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 b/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 index a66b6b9f..a79c317d 100644 --- a/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2 @@ -20,9 +20,9 @@ choose alpine_version || goto alpine_exit goto boot :boot -set base-url {{ releases.alpinelinux.mirror }} -set dir {{ releases.alpinelinux.base_dir }}/${alpine_version}/releases/${bootarch}/netboot -set repo-url {{ releases.alpinelinux.mirror }}/{{ releases.alpinelinux.base_dir }}/${alpine_version}/main +set base-url ${alpinelinux_mirror} +set dir ${alpinelinux_base_dir}/${alpine_version}/releases/${bootarch}/netboot +set repo-url ${alpinelinux_mirror}/${alpinelinux_base_dir}/${alpine_version}/main imgfree kernel ${base-url}/${dir}/vmlinuz-vanilla ${ipparam} alpine_repo=${repo-url} modules=loop,squashfs modloop=${base-url}/${dir}/modloop-vanilla quiet nomodeset initrd ${base-url}/${dir}/initramfs-vanilla diff --git a/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 b/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 index 4c46e502..5f8b28c1 100644 --- a/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/archlinux.ipxe.j2 @@ -5,14 +5,14 @@ isset ${dhcp-server} || goto static_ip set ipparam BOOTIF=${netX/mac} ip=dhcp -set real_archlinux_mirror http://{{ releases.archlinux.mirror }} +set real_archlinux_mirror http://${archlinux_mirror} goto goto_menu :static_ip # Arch Linux cannot use DNS if booted with a static IP # See https://bugs.archlinux.org/task/63174 # Remove this hack when the above bug is properly resolved -nslookup real_archlinux_mirror {{ releases.archlinux.mirror }} +nslookup real_archlinux_mirror ${archlinux_mirror} set ipparam BOOTIF=${netX/mac} ip=${ip}::${gateway}:${netmask} :goto_menu @@ -31,10 +31,10 @@ goto boot :boot imgfree -set dir {{ releases.archlinux.base_dir }}/iso/${arch_version}/arch/boot -set params initrd=archiso.img archiso_http_srv=http://${real_archlinux_mirror}/{{ releases.archlinux.base_dir }}/iso/${arch_version}/ archisobasedir=arch verify=y ${ipparam} net.ifnames=0 ${console} -kernel http://{{ releases.archlinux.mirror }}/${dir}/x86_64/vmlinuz ${params} initrd=archiso.img -initrd http://{{ releases.archlinux.mirror }}/${dir}/x86_64/archiso.img +set dir ${archlinux_base_dir}/iso/${arch_version}/arch/boot +set params initrd=archiso.img archiso_http_srv=http://${real_archlinux_mirror}/${archlinux_base_dir}/iso/${arch_version}/ archisobasedir=arch verify=y ${ipparam} net.ifnames=0 ${console} +kernel http://${archlinux_mirror}/${dir}/x86_64/vmlinuz ${params} initrd=archiso.img +initrd http://${archlinux_mirror}/${dir}/x86_64/archiso.img echo echo MD5sums: md5sum vmlinuz archiso.img diff --git a/roles/netbootxyz/templates/menu/boot.cfg.j2 b/roles/netbootxyz/templates/menu/boot.cfg.j2 index 6cce00e1..ab3672ab 100644 --- a/roles/netbootxyz/templates/menu/boot.cfg.j2 +++ b/roles/netbootxyz/templates/menu/boot.cfg.j2 @@ -25,6 +25,18 @@ set ipxe_disk netboot.xyz-undionly.kpxe # set location of custom netboot.xyz live assets set live_endpoint {{ live_endpoint }} +################## +# official mirrors +################## +:mirrors +{% for key, value in releases.items() | sort(attribute='1.name') %} +{% if value.mirror is defined and value.base_dir is defined %} +### {{ value.name }} +set {{ key }}_mirror {{ value.mirror }} +set {{ key }}_base_dir {{ value.base_dir }} + +{% endif %} +{% endfor %} ################################################# # determine architectures and enable menu options ################################################# diff --git a/roles/netbootxyz/templates/menu/centos.ipxe.j2 b/roles/netbootxyz/templates/menu/centos.ipxe.j2 index 2f2d2d34..f30d4de0 100644 --- a/roles/netbootxyz/templates/menu/centos.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/centos.ipxe.j2 @@ -17,9 +17,9 @@ item {{ item.code_name }} ${space} ${os} {{ item.name }} {% endfor %} isset ${osversion} || choose osversion || goto linux_menu echo ${cls} -set dir {{ releases.centos.base_dir }}/${osversion}/BaseOS/${arch}/os -iseq ${osversion} 7.7.1908 && set dir {{ releases.centos.base_dir }}/${osversion}/os/${arch} || -set repo {{ releases.centos.mirror }}/{{ releases.centos.base_dir }} +set dir ${centos_base_dir}/${osversion}/BaseOS/${arch}/os +iseq ${osversion} 7.7.1908 && set dir ${centos_base_dir}/${osversion}/os/${arch} || +set repo ${centos_mirror}/${centos_base_dir} goto boottype :boottype @@ -60,8 +60,8 @@ goto boottype :bootos_images imgfree -kernel {{ releases.centos.mirror }}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} initrd=initrd.img -initrd {{ releases.centos.mirror }}/${dir}/images/pxeboot/initrd.img +kernel ${centos_mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} initrd=initrd.img +initrd ${centos_mirror}/${dir}/images/pxeboot/initrd.img echo echo MD5sums: md5sum vmlinuz initrd.img diff --git a/roles/netbootxyz/templates/menu/coreos.ipxe.j2 b/roles/netbootxyz/templates/menu/coreos.ipxe.j2 index f4da5142..247e4634 100644 --- a/roles/netbootxyz/templates/menu/coreos.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/coreos.ipxe.j2 @@ -25,7 +25,7 @@ goto coreos_exit :beta :alpha set release ${menu} -set base_url https://builds.coreos.fedoraproject.org/prod/streams/testing/builds +set base_url ${coreos_mirror}/${coreos_base_dir} 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 diff --git a/roles/netbootxyz/templates/menu/debian.ipxe.j2 b/roles/netbootxyz/templates/menu/debian.ipxe.j2 index d81ffbe6..fca48234 100644 --- a/roles/netbootxyz/templates/menu/debian.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/debian.ipxe.j2 @@ -30,13 +30,13 @@ set debian_mirror {{ releases.debian.archive_mirror }} echo Setting mirror to ${debian_mirror} clear debian_version echo -n Please set enter code name of release: ${} && read debian_version -set dir {{ releases.debian.base_dir }}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/ +set dir ${debian_base_dir}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/ goto deb_boot_type :mirrorcfg -set debian_mirror {{ releases.debian.mirror }} +set debian_mirror ${debian_mirror} set mirrorcfg mirror/suite=${debian_version} -set dir {{ releases.debian.base_dir }}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/ +set dir ${debian_base_dir}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/ goto deb_boot_type :deb_boot_type diff --git a/roles/netbootxyz/templates/menu/freedos.ipxe.j2 b/roles/netbootxyz/templates/menu/freedos.ipxe.j2 index e94ba9d8..9a837c4a 100644 --- a/roles/netbootxyz/templates/menu/freedos.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/freedos.ipxe.j2 @@ -17,7 +17,7 @@ goto freedos_install || goto freedos_exit :freedos_install imgfree kernel ${memdisk} -initrd {{ releases.freedos.mirror }}/{{ releases.freedos.base_dir }}/${freedos_version}.zip +initrd ${freedos_mirror}/${freedos_base_dir}/${freedos_version}.zip boot :freedos_exit diff --git a/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 b/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 index a459c6ef..64982b09 100644 --- a/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/ipfire.ipxe.j2 @@ -14,8 +14,7 @@ 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 +set dir ${ipfire_base_dir}/${osversion}/images/x86_64 goto ipfire_images :ipfire_images diff --git a/roles/netbootxyz/templates/menu/kali.ipxe.j2 b/roles/netbootxyz/templates/menu/kali.ipxe.j2 index 4d17c2b8..c35ee314 100644 --- a/roles/netbootxyz/templates/menu/kali.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/kali.ipxe.j2 @@ -14,7 +14,7 @@ item {{ item.code_name }} ${space} ${os} {{ item.name }} choose version || goto kali_exit :deb_boot_type -set dir kali/dists/kali-${version}/main/installer-${arch_a}/current/images/netboot +set dir ${kali_base_dir}/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 @@ -28,8 +28,8 @@ 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 +kernel ${kali_mirror}/${dir}/linux vga=788 ${console} -- quiet initrd=initrd.gz +initrd ${kali_mirror}/${dir}/initrd.gz echo echo MD5sums: md5sum linux initrd.gz diff --git a/roles/netbootxyz/templates/menu/mageia.ipxe.j2 b/roles/netbootxyz/templates/menu/mageia.ipxe.j2 index 0c40d1cf..1dd09d72 100644 --- a/roles/netbootxyz/templates/menu/mageia.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/mageia.ipxe.j2 @@ -18,12 +18,12 @@ 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 || +set dir ${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 +kernel ${mageia_mirror}/${dir}/${dir2}/vmlinuz +initrd ${mageia_mirror}/${dir}/${dir2}/all.rdz imgargs vmlinuz automatic=${automatic} vga=788 splash=silent ${console} initrd=all.rdz echo echo MD5sums: diff --git a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 index 0ac2a8a0..00697a13 100644 --- a/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/openbsd.ipxe.j2 @@ -22,7 +22,7 @@ set openbsd_arch amd64 goto boot_openbsd :boot_openbsd -set src {{ releases.openbsd.mirror }}/{{ releases.openbsd.base_dir }}/${ver}/${openbsd_arch}/cd${image_ver}.iso +set src ${openbsd_mirror}/${openbsd_base_dir}/${ver}/${openbsd_arch}/cd${image_ver}.iso imgfree initrd ${src} chain ${memdisk} iso raw diff --git a/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 b/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 index 566cf229..e41ac0b1 100644 --- a/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/opensuse.ipxe.j2 @@ -62,8 +62,7 @@ menu openSUSE - ${arch} - Image Sig Checks: [${img_sigs_enabled}] item {{ item.code_name }} ${space} ${os} {{ item.name }} {% endfor %} choose version || goto opensuse_exit -set opensuse_mirror {{ releases.opensuse.mirror }} -set dir {{ releases.opensuse.base_dir }}/${version}/repo/oss +set dir ${opensuse_base_dir}/${version}/repo/oss iseq ${version} tumbleweed && set dir ${version}/repo/oss || imgfree diff --git a/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 b/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 index c66d2232..2bb2139d 100644 --- a/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/rancheros.ipxe.j2 @@ -5,7 +5,7 @@ :rancheros_menu set os {{ releases.rancheros.name }} -set url {{ releases.rancheros.mirror }} +set url ${rancheros_mirror} menu ${os} {% for item in releases.rancheros.versions %} item {{ item.code_name }} ${space} ${os} {{ item.name }} @@ -15,7 +15,7 @@ goto ${version} :latest echo ${cls} -set folder {{ releases.rancheros.base_dir }} +set folder ${rancheros_base_dir} goto boot :boot diff --git a/roles/netbootxyz/templates/menu/scientific.ipxe.j2 b/roles/netbootxyz/templates/menu/scientific.ipxe.j2 index fb79d2cc..456d5c1c 100644 --- a/roles/netbootxyz/templates/menu/scientific.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/scientific.ipxe.j2 @@ -21,8 +21,8 @@ iseq ${osversion} other || goto scientific_skip_read_osversion echo ${cls} echo -n Enter version: ${} && read osversion :scientific_skip_read_osversion -set dir linux/scientific/${osversion}/${arch}/os -set repo {{ releases.scientific.mirror }}/${dir} +set dir ${scientific_base_dir}/${osversion}/${arch}/os +set repo ${scientific_mirror}/${dir} goto boottype @@ -49,8 +49,8 @@ goto bootos_images :bootos_images imgfree -kernel {{ releases.scientific.mirror }}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} -initrd {{ releases.scientific.mirror }}/${dir}/images/pxeboot/initrd.img +kernel ${scientific_mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${console} ${ipparam} +initrd ${scientific_mirror}/${dir}/images/pxeboot/initrd.img boot goto linux_menu From 9d25a45ac6d25ff493321dd3537a7acdc73a2d8a Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 11:47:23 -0800 Subject: [PATCH 157/169] add bootstrapping by mac address or hostname to default file if booting from a TFTP server --- roles/netbootxyz/templates/disks/netboot.xyz.j2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/netbootxyz/templates/disks/netboot.xyz.j2 b/roles/netbootxyz/templates/disks/netboot.xyz.j2 index 0ab370fc..295f76c5 100644 --- a/roles/netbootxyz/templates/disks/netboot.xyz.j2 +++ b/roles/netbootxyz/templates/disks/netboot.xyz.j2 @@ -50,6 +50,8 @@ echo Attempting chainload of ${boot_domain}... goto menu || goto failsafe :tftpmenu +isset ${hostname} && chain --autofree tftp://${next-server}/HOSTNAME-${hostname}.ipxe || echo Custom boot by Hostname not found trying MAC... +chain --autofree tftp://${next-server}/MAC-${mac:hexraw}.ipxe || echo Custom boot by MAC not found booting default... chain --autofree tftp://${next-server}/menu.ipxe || echo ${TFTP_ERR} && goto menu :menu From 987e80c4032ca4974dea2937d24549bc4cec6e19 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 12:52:00 -0800 Subject: [PATCH 158/169] rip out Slitaz --- .../templates/menu/live-slitaz.ipxe.j2 | 221 ------------------ roles/netbootxyz/templates/menu/live.ipxe.j2 | 1 - 2 files changed, 222 deletions(-) delete mode 100644 roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 diff --git a/roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 b/roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 deleted file mode 100644 index 423bf37a..00000000 --- a/roles/netbootxyz/templates/menu/live-slitaz.ipxe.j2 +++ /dev/null @@ -1,221 +0,0 @@ -#!ipxe - -# SliTaz Operating System -# http://www.slitaz.org -set slitaz_mirror http://mirror1.slitaz.org/ - -:slitaz -set os SliTaz -clear slitaz_version -menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}] -item --gap SliTaz releases -item slitaztiny ${space} ${os} Tiny -item slitaznext ${space} ${os} next -item slitazrolling ${space} ${os} rolling (renewed every Sunday) -item slitaz50 ${space} ${os} 5.0 -item slitaz40 ${space} ${os} 4.0 -item slitaz30 ${space} ${os} 3.0 -item slitaz20 ${space} ${os} 2.0 -item slitaz20 ${space} ${os} 1.0 -choose slitaz_version || goto slitaz -goto ${slitaz_version} - -:slitaztiny -clear boot -sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-tiny-1.0.iso || -goto slitaz - -:slitaznext -menu ${os} next -clear boot -item next170915 Slitaz next 15/09/2017 -item next170930 Slitaz next 30/09/2017 -item next180107 Slitaz next lxqt 07/01/2018 -choose boot || goto slitaz -goto ${boot} - -:slitazrolling -menu ${os} rolling -clear boot -item rolling5 Slitaz rolling 5in1 (autoselect 32bits or 64bits arch) -item rolling64 Slitaz rolling 64 bits (no 32bits arch support) -item rollingloram Slitaz rolling loram -choose boot || goto slitaz -goto ${boot} - -:slitaz50 -menu ${os} 5.0 -clear boot -item core5RC1 Slitaz 5.0 RC1 02/05/2014 -item core5RC2 Slitaz 5.0 RC2 19/05/2014 -item core5RC3 Slitaz 5.0 RC3 20/05/2015 -choose boot || goto slitaz -goto ${boot} - -:slitaz40 -menu ${os} 4.0 -clear boot -item core4 Slitaz 4.0 standard -item loram4 Slitaz 4.0 loram -item firefox4 Slitaz 4.0 firefox -item kids4 Slitaz 4.0 kids -item tiny4 Slitaz 4.0 tiny -item tinytext4 Slitaz 4.0 tiny text -choose boot || goto slitaz -goto ${boot} - -:slitaz30 -menu ${os} 3.0 -clear boot -item core3 Slitaz 3.0 standard -item loram3 Slitaz 3.0 loram -item firefox3 Slitaz 3.0 firefox -item tiny3 Slitaz 3.0 tiny -item tinytext3 Slitaz 3.0 tiny text -choose boot || goto slitaz -goto ${boot} - -:slitaz20 -menu ${os} 2.0 -clear boot -item core2 Slitaz 2.0 standard -item loram2 Slitaz 2.0 loram -item tiny2 Slitaz 2.0 tiny -item tinytext2 Slitaz 2.0 tiny text -choose boot || goto slitaz -goto ${boot} - -:slitaz10 -menu ${os} 1.0 -clear boot -item core1 Slitaz 1.0 standard -item loram1 Slitaz 1.0 loram -item tiny1 Slitaz 1.0 tiny -choose boot || goto slitaz -goto ${boot} - -:core1 -sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-1.0-4in1.iso || -goto slitaz - -:loram1 -sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-loram-1.0.iso || -goto slitaz - -:tiny1 -sanboot ${slitaz_mirror}iso/1.0/flavors/slitaz-tiny-1.0.iso || -goto slitaz - -:core2 -sanboot ${slitaz_mirror}iso/2.0/flavors/slitaz-2.0-3in1.iso || -goto slitaz - -:loram2 -sanboot ${slitaz_mirror}iso/2.0/flavors/slitaz-loram.iso || -goto slitaz - -:tiny2 -imgfree -kernel ${slitaz_mirror}boot/2.0/bzImage rw root=/dev/null vga=normal autologin -initrd ${slitaz_mirror}boot/2.0/rootfs-tiny.gz -boot || -goto slitaz - -:tinytext2 -imgfree -kernel ${slitaz_mirror}boot/2.0/bzImage rw root=/dev/null vga=normal screen=text -initrd ${slitaz_mirror}boot/2.0/rootfs-tiny.gz -boot || -goto slitaz - -:core3 -sanboot ${slitaz_mirror}iso/3.0/flavors/slitaz-3.0-3in1.iso || -goto slitaz - -:loram3 -sanboot ${slitaz_mirror}iso/3.0/flavors/slitaz-3.0-loram.iso || -goto slitaz - -:firefox3 -sanboot ${slitaz_mirror}iso/3.0/flavors/slitaz-3.0-firefox.iso || -goto slitaz - -:tiny3 -imgfree -kernel ${slitaz_mirror}boot/3.0/bzImage rw root=/dev/null vga=normal autologin -initrd ${slitaz_mirror}boot/3.0/rootfs-tiny.gz -boot || -goto slitaz - -:tinytext3 -imgfree -kernel ${slitaz_mirror}boot/3.0/bzImage rw root=/dev/null vga=normal screen=text -initrd ${slitaz_mirror}boot/3.0/rootfs-tiny.gz -boot || -goto slitaz - -:core4 -sanboot ${slitaz_mirror}iso/4.0/slitaz-4.0.iso || -goto slitaz - -:loram4 -sanboot ${slitaz_mirror}iso/4.0/flavors/slitaz-4.0-loram.iso || -goto slitaz - -:firefox4 -sanboot ${slitaz_mirror}iso/4.0/flavors/slitaz-4.0-firefox.iso || -goto slitaz - -:kids4 -sanboot ${slitaz_mirror}iso/4.0/flavors/slitaz-4.0-kids.iso || -goto slitaz - -:tiny4 -imgfree -kernel ${slitaz_mirror}boot/4.0/bzImage rw root=/dev/null vga=normal autologin -initrd ${slitaz_mirror}boot/4.0/rootfstiny.gz -boot || -goto slitaz - -:tinytext4 -imgfree -kernel ${slitaz_mirror}boot/4.0/bzImage rw root=/dev/null vga=normal screen=text -initrd ${slitaz_mirror}boot/4.0/rootfstiny.gz -boot || -goto slitaz - -:core5RC1 -sanboot ${slitaz_mirror}iso/5.0/slitaz-5.0-rc1.iso || -goto slitaz - -:core5RC2 -sanboot ${slitaz_mirror}iso/5.0/slitaz-5.0-rc2.iso || -goto slitaz - -:core5RC3 -sanboot ${slitaz_mirror}iso/5.0/slitaz-5.0-rc3.iso || -goto slitaz - -:rolling5 -sanboot ${slitaz_mirror}iso/rolling/slitaz-rolling-core-5in1.iso || -goto slitaz - -:rolling64 -sanboot ${slitaz_mirror}iso/rolling/slitaz-rolling-core64.iso || -goto slitaz - -:rollingloram -sanboot ${slitaz_mirror}iso/rolling/slitaz-rolling-loram.iso || -goto slitaz - -:next170915 -sanboot ${slitaz_mirror}iso/next/slitaz-next-170915.iso || -goto slitaz - -:next170930 -sanboot ${slitaz_mirror}iso/next/slitaz-next-170930.iso || -goto slitaz - -:next180107 -sanboot ${slitaz_mirror}iso/next/slitaz-lxqt.iso || -goto slitaz diff --git a/roles/netbootxyz/templates/menu/live.ipxe.j2 b/roles/netbootxyz/templates/menu/live.ipxe.j2 index 2becedd3..c2d485e9 100644 --- a/roles/netbootxyz/templates/menu/live.ipxe.j2 +++ b/roles/netbootxyz/templates/menu/live.ipxe.j2 @@ -16,7 +16,6 @@ item live-manjaro ${space} Manjaro item live-mint ${space} Mint item live-peppermint ${space} Peppermint item live-popos ${space} Pop OS -item live-slitaz ${space} Slitaz item live-tails ${space} Tails item live-ubuntu ${space} Ubuntu item live-voyager ${space} Voyager From c84c76fb966f18af93d351c43b5103865beae6aa Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 16:14:31 -0800 Subject: [PATCH 159/169] adding the logic to build the RC branch instead of tagging and add version --- .travis.yml | 13 ++++++++----- version.txt | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 version.txt diff --git a/.travis.yml b/.travis.yml index e2a5f38d..b2ab3a1e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ env: jobs: include: - stage: development - if: branch = development AND tag IS blank AND type != pull_request + if: branch = development AND type != pull_request script: - ./script/build_release dev after_failure: @@ -38,13 +38,16 @@ jobs: - stage: release-candidate - if: branch = development AND tag IS present AND type != pull_request + if: branch = RC AND type != pull_request before_install: - ./script/pre_install script: - ./script/build_release rc after_failure: - ./script/message failure + before_deploy: + - export RELEASE_TAG=$(cat version.txt)-RC + - git tag ${RELEASE_TAG} deploy: - provider: s3 access_key_id: $AWS_ACCESS_KEY_ID @@ -54,7 +57,7 @@ jobs: upload-dir: rc skip_cleanup: true on: - branch: development + branch: RC - provider: s3 access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY @@ -63,7 +66,7 @@ jobs: upload-dir: $TRAVIS_TAG skip_cleanup: true on: - branch: development + branch: RC - provider: releases api_key: $GITHUB_TOKEN file_glob: true @@ -71,7 +74,7 @@ jobs: prerelease: true skip_cleanup: true on: - branch: development + branch: RC after_deploy: - aws configure set preview.cloudfront true - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "rc/*" "rc/ipxe/*" diff --git a/version.txt b/version.txt new file mode 100644 index 00000000..9ab8337f --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1.9.1 From d6e7be819eedce5c082644b48f335c9dbe3efdab Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 16:35:15 -0800 Subject: [PATCH 160/169] tweek ednpoint and update releases to no longer push static html file --- script/build_release | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/script/build_release b/script/build_release index 909cebb0..5609797b 100755 --- a/script/build_release +++ b/script/build_release @@ -10,7 +10,7 @@ if [[ "${TYPE}" == "dev" ]]; then elif [[ "${TYPE}" == "pr" ]]; then BOOT_DOMAIN="test.com" elif [[ "${TYPE}" == "rc" ]]; then - BOOT_DOMAIN="staging.boot.netboot.xyz/${TRAVIS_TAG}" + BOOT_DOMAIN="staging.boot.netboot.xyz/$(cat version.txt)-RC" elif [[ "${TYPE}" == "release" ]]; then BOOT_DOMAIN="staging.boot.netboot.xyz/$(cat version.txt)" fi @@ -53,5 +53,4 @@ if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rc" ]]; then fi mkdir -p s3out-latest cp -r buildout/* s3out-latest/ - cp script/index.html s3out-latest/ fi From af1c82563354c3432a9d55883486f1aaee0baf7c Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 16:51:04 -0800 Subject: [PATCH 161/169] live build debugging need to do the tagging in the script section if you have multiple deploys --- .travis.yml | 10 ++++------ script/message | 2 +- version.txt | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index b2ab3a1e..a75f3a24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,11 +43,10 @@ jobs: - ./script/pre_install script: - ./script/build_release rc - after_failure: - - ./script/message failure - before_deploy: - export RELEASE_TAG=$(cat version.txt)-RC - git tag ${RELEASE_TAG} + after_failure: + - ./script/message failure deploy: - provider: s3 access_key_id: $AWS_ACCESS_KEY_ID @@ -86,11 +85,10 @@ jobs: - ./script/pre_install script: - ./script/build_release release - after_failure: - - ./script/message failure - before_deploy: - export RELEASE_TAG=$(cat version.txt) - git tag ${RELEASE_TAG} + after_failure: + - ./script/message failure deploy: - provider: s3 access_key_id: $AWS_ACCESS_KEY_ID diff --git a/script/message b/script/message index 7d6adb1b..2636e7d6 100755 --- a/script/message +++ b/script/message @@ -5,7 +5,7 @@ TYPE=$1 if [ "${TYPE}" == "dev-push" ]; then BOOT_URL="https://s3.amazonaws.com/${BUCKET_DEV}/${TRAVIS_COMMIT}/index.html" elif [ "${TYPE}" == "rc-push" ]; then - BOOT_URL="https://staging.boot.netboot.xyz/${TRAVIS_TAG}/index.html" + BOOT_URL="https://staging.boot.netboot.xyz/$(cat version.txt)-RC/index.html" elif [ "${TYPE}" == "live-push" ]; then BOOT_URL="https://staging.boot.netboot.xyz/$(cat version.txt)/index.html" fi diff --git a/version.txt b/version.txt index 9ab8337f..8fdcf386 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.1 +1.9.2 From a2e6623fa19df9f8070d13e0eec0eb79b1b56e6d Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 17:23:05 -0800 Subject: [PATCH 162/169] try using dpl v2 for s3 and drop invalidations for RC --- .travis.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index a75f3a24..4a54941f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ jobs: - ./script/message failure deploy: - provider: s3 + edge: true access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_DEV @@ -49,6 +50,7 @@ jobs: - ./script/message failure deploy: - provider: s3 + edge: true access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_LIVE @@ -58,6 +60,7 @@ jobs: on: branch: RC - provider: s3 + edge: true access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_LIVE @@ -74,10 +77,6 @@ jobs: skip_cleanup: true on: branch: RC - after_deploy: - - aws configure set preview.cloudfront true - - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "rc/*" "rc/ipxe/*" - - ./script/message rc-push - stage: release if: branch = master AND type != pull_request @@ -91,6 +90,7 @@ jobs: - ./script/message failure deploy: - provider: s3 + edge: true access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_LIVE @@ -99,6 +99,7 @@ jobs: on: branch: master - provider: s3 + edge: true access_key_id: $AWS_ACCESS_KEY_ID secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_LIVE From 73063cc63f4eb6e85492bf2d5e81f76331a1e00a Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 17:26:56 -0800 Subject: [PATCH 163/169] need a message to ping out for deploy --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4a54941f..c034ab18 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,7 @@ jobs: - ./script/build_release rc - export RELEASE_TAG=$(cat version.txt)-RC - git tag ${RELEASE_TAG} + - ./script/message rc-push after_failure: - ./script/message failure deploy: From fefdd3e273578e9b3ee35f2e8d3e702748bc0a1f Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 17:27:45 -0800 Subject: [PATCH 164/169] updating version --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index 8fdcf386..77fee73a 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.2 +1.9.3 From fd5eba8401a761afdc0ae155bdcca696034e2dc3 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 17:48:46 -0800 Subject: [PATCH 165/169] bug bash endpoint needs to use generated release name --- .travis.yml | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c034ab18..cd18903e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -66,7 +66,7 @@ jobs: secret_access_key: $AWS_SECRET_ACCESS_KEY bucket: $BUCKET_LIVE local_dir: s3out - upload-dir: $TRAVIS_TAG + upload-dir: $RELEASE_TAG skip_cleanup: true on: branch: RC diff --git a/version.txt b/version.txt index 77fee73a..d615fd0c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.3 +1.9.4 From b47d30606c7225dcc9377b9bd6d72c9c9126f3b7 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 18:43:07 -0800 Subject: [PATCH 166/169] ensure releases are generated for master --- .travis.yml | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index cd18903e..ed448992 100644 --- a/.travis.yml +++ b/.travis.yml @@ -115,7 +115,7 @@ jobs: file: githubout/* skip_cleanup: true on: - branch: development + branch: master after_deploy: - aws configure set preview.cloudfront true - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "/*" "/ipxe/*" diff --git a/version.txt b/version.txt index d615fd0c..158c7472 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.4 +1.9.5 From 67b906126e0492b382391bdb02fbec28b1d55e3d Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 19:04:48 -0800 Subject: [PATCH 167/169] re-work logic to run a post stage to deploy stuff for both RC and Live --- .travis.yml | 27 ++++++++++++++++++++------- version.txt | 2 +- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index ed448992..76e3130f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,9 +44,6 @@ jobs: - ./script/pre_install script: - ./script/build_release rc - - export RELEASE_TAG=$(cat version.txt)-RC - - git tag ${RELEASE_TAG} - - ./script/message rc-push after_failure: - ./script/message failure deploy: @@ -70,6 +67,14 @@ jobs: skip_cleanup: true on: branch: RC + - stage: rc-github + if: branch = RC AND type != pull_request + before_install: + - ./script/pre_install + before_deploy: + - export RELEASE_TAG=$(cat version.txt)-RC + - git tag ${RELEASE_TAG} + deploy: - provider: releases api_key: $GITHUB_TOKEN file_glob: true @@ -78,15 +83,15 @@ jobs: skip_cleanup: true on: branch: RC + after_deploy: + - aws configure set preview.cloudfront true + - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "rc/*" "rc/ipxe/*" + - ./script/message rc-push - stage: release if: branch = master AND type != pull_request - before_install: - - ./script/pre_install script: - ./script/build_release release - - export RELEASE_TAG=$(cat version.txt) - - git tag ${RELEASE_TAG} after_failure: - ./script/message failure deploy: @@ -109,6 +114,14 @@ jobs: skip_cleanup: true on: branch: master + - stage: release-github + if: branch = master AND type != pull_request + before_install: + - ./script/pre_install + before_deploy: + - export RELEASE_TAG=$(cat version.txt) + - git tag ${RELEASE_TAG} + deploy: - provider: releases api_key: $GITHUB_TOKEN file_glob: true diff --git a/version.txt b/version.txt index 158c7472..7bc1c404 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.5 +1.9.6 From bec0e378e0059c94f431cbbe1d07b38dc86eef71 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 19:08:34 -0800 Subject: [PATCH 168/169] should skip script steps in deploy post --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 76e3130f..20a7a8a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,6 +71,7 @@ jobs: if: branch = RC AND type != pull_request before_install: - ./script/pre_install + script: skip before_deploy: - export RELEASE_TAG=$(cat version.txt)-RC - git tag ${RELEASE_TAG} @@ -118,6 +119,7 @@ jobs: if: branch = master AND type != pull_request before_install: - ./script/pre_install + script: skip before_deploy: - export RELEASE_TAG=$(cat version.txt) - git tag ${RELEASE_TAG} From 5564878a5a03a4ccd8753b8b61e13ee6ceb41f93 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 7 Dec 2019 19:42:23 -0800 Subject: [PATCH 169/169] carry over github assets from build workspace --- .travis.yml | 14 ++++++++++++++ version.txt | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 20a7a8a6..d99bb565 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,6 +44,11 @@ jobs: - ./script/pre_install script: - ./script/build_release rc + workspaces: + create: + name: githubassets + paths: + - githubout after_failure: - ./script/message failure deploy: @@ -71,6 +76,8 @@ jobs: if: branch = RC AND type != pull_request before_install: - ./script/pre_install + workspaces: + use: githubassets script: skip before_deploy: - export RELEASE_TAG=$(cat version.txt)-RC @@ -93,6 +100,11 @@ jobs: if: branch = master AND type != pull_request script: - ./script/build_release release + workspaces: + create: + name: githubassets + paths: + - githubout after_failure: - ./script/message failure deploy: @@ -119,6 +131,8 @@ jobs: if: branch = master AND type != pull_request before_install: - ./script/pre_install + workspaces: + use: githubassets script: skip before_deploy: - export RELEASE_TAG=$(cat version.txt) diff --git a/version.txt b/version.txt index 7bc1c404..fee0a278 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.6 +1.9.7