Intial commit
This commit is contained in:
125
Install_LDS.sh
Normal file
125
Install_LDS.sh
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#OS Detect
|
||||||
|
case $(grep -e "^ID=*" "/etc/os-release" |sed 's/ID=//g') in
|
||||||
|
*"alpine"*)
|
||||||
|
dist=alp;;
|
||||||
|
*"ubuntu"* | *"debian"* )
|
||||||
|
dist=deb;;
|
||||||
|
*)
|
||||||
|
"This distro is not (yet) supported"
|
||||||
|
exit;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#Git-repo
|
||||||
|
repo=https://git.bprieshof.nl/Tools/LDS-Base
|
||||||
|
branch=main
|
||||||
|
LDSIDREPO=https://git.bprieshof.nl/Tools/LDS-ImageDownloader.git
|
||||||
|
|
||||||
|
pkgs="ca-certificates dnsmasq lighttpd"
|
||||||
|
|
||||||
|
##Set if using LDS-ImageDownloader
|
||||||
|
while true; do
|
||||||
|
read -r -n 1 -p"Install LDS-ImageDownloader? [y/n]: " REPLY1
|
||||||
|
echo ""
|
||||||
|
case $REPLY1 in
|
||||||
|
[yY]) LDSID=true
|
||||||
|
while true; do
|
||||||
|
read -r -n 1 -p"Download Installers? [y/n]: " REPLY2
|
||||||
|
echo ""
|
||||||
|
case $REPLY2 in
|
||||||
|
[yY]) LDSIDdwni=true
|
||||||
|
break;;
|
||||||
|
[nN])LDSIDdwni=false
|
||||||
|
break;;
|
||||||
|
*) echo "invalid input"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
while true; do
|
||||||
|
read -r -n 1 -p"Download Tools? [y/n]: " REPLY3
|
||||||
|
echo ""
|
||||||
|
case $REPLY3 in
|
||||||
|
[yY]) LDSIDdwnt=true
|
||||||
|
break;;
|
||||||
|
[nN]) LDSIDdwnt=false
|
||||||
|
break;;
|
||||||
|
*) echo "invalid input"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
pkgs="$pkgs zstd cpio git"
|
||||||
|
case $dist in
|
||||||
|
alp)
|
||||||
|
pkgs="$pkgs bash cdrkit"
|
||||||
|
break;;
|
||||||
|
deb )
|
||||||
|
pkgs="$pkgs genisoimage wget unzip"
|
||||||
|
break;;
|
||||||
|
esac
|
||||||
|
break;;
|
||||||
|
[nN]) LDSID=false
|
||||||
|
break;;
|
||||||
|
*) echo "invalid input"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
## install packages
|
||||||
|
case $dist in
|
||||||
|
alp)
|
||||||
|
pkgs="$pkgs grep"
|
||||||
|
apk update
|
||||||
|
apk add $pkgs
|
||||||
|
rc-update add lighttpd
|
||||||
|
rc-update add dnsmasq;;
|
||||||
|
deb )
|
||||||
|
apt update
|
||||||
|
apt install -y $pkgs
|
||||||
|
systemctl enable lighttpd dnsmasq;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
wget -O /tmp/LDS.tar.gz "$repo"/archive/"$branch".tar.gz
|
||||||
|
tar –xzf /tmp/LDS.tar.gz –C /tmp
|
||||||
|
|
||||||
|
#Configure (re)start services
|
||||||
|
mkdir -p /opt/LDS/tftp /opt/LDS/www
|
||||||
|
mv /tmp/LDS-Base/iPXE /opt/LDS/tftp
|
||||||
|
mv /tmp/LDS-Base/UpdateIP.sh /opt/LDS
|
||||||
|
mv /tmp/LDS-Base/dnsmasq.conf /etc/dnsmasq.conf
|
||||||
|
mv /tmp/LDS-Base/lighttpd.conf /etc/lighttpd/lighttpd.conf
|
||||||
|
|
||||||
|
#Set dnsmasq ip range
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
ip a
|
||||||
|
|
||||||
|
read -p "Please enter the name of the network inteface: " netIF
|
||||||
|
sed -i "/NetIF=/c\NetIF=$netIF" /opt/LDS/UpdateIP.sh
|
||||||
|
ipa=$(ip -4 addr show $netIF | grep -m 1 -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -E -o "([0-9]{1,3}[\.]){2}[0-9]{1,3}" |head -1 )
|
||||||
|
ipa="$ipa"".0"
|
||||||
|
sed -i '/dhcp-range/c\dhcp-range='"$ipa"',proxy' /etc/dnsmasq.conf
|
||||||
|
## install packages
|
||||||
|
case $dist in
|
||||||
|
alp)
|
||||||
|
service lighttpd stop
|
||||||
|
service dnsmasq stop
|
||||||
|
service lighttpd start
|
||||||
|
service dnsmasq start;;
|
||||||
|
deb )
|
||||||
|
systemctl stop lighttpd dnsmasq
|
||||||
|
systemctl start lighttpd dnsmasq;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#Install LDS-ImageDownloader
|
||||||
|
if $LDSID; then
|
||||||
|
#git clone $LDSIDREPO /opt/LDS/ImageDownloader
|
||||||
|
cd /opt/LDS/ImageDownloader/
|
||||||
|
ln -s /opt/LDS/ImageDownloader/LinuxInstallers-LID.ipxe /opt/LDS/tftp/iPXE/LinuxInstallers-LID.ipxe
|
||||||
|
sed -i '/set LDSIMenu/c\set LDSIMenu LinuxInstallers-LID.ipxe' /opt/LDS/tftp/iPXE/LDS.ipxe
|
||||||
|
if $LDSIDdwnt; then
|
||||||
|
sed -i -e 's/#item CloneZilla/item CloneZilla/g' -e 's/#item GParted/item GParted/g' -e 's/#item SystemRescueCD/item SystemRescueCD/g' /opt/LDS/tftp/iPXE/LDS.ipxe
|
||||||
|
$SHELL Download-AllTools.sh
|
||||||
|
fi
|
||||||
|
if $LDSIDdwni; then
|
||||||
|
$SHELL Download-AllInstallers.sh
|
||||||
|
fi
|
||||||
|
fi
|
||||||
25
Readme.md
Normal file
25
Readme.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Linux depoyment server (LDS)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
* Uses proxy-DHCP,so no further DHCP config is needed
|
||||||
|
* Works with (legacy) boot pxe
|
||||||
|
* Works with (non secure boot) EFI systems
|
||||||
|
* Works with raspberry pi's
|
||||||
|
* chain to Windows deployment server (WDS)
|
||||||
|
* Use installer images from the Web or the in-build http server when using the LDS-ImageDownloader project
|
||||||
|
* Can be installed on Alpine, Debian or Ubuntu Linux
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
Start the installation script using one of the following commands
|
||||||
|
|
||||||
|
Using curl
|
||||||
|
```
|
||||||
|
$SHELL <(curl -s https://git.bprieshof.nl/brammp/LDS-Base/raw/branch/main/Install_LDS.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Using wget
|
||||||
|
```
|
||||||
|
$SHELL <(wget -q -O- https://git.bprieshof.nl/brammp/LDS-Base/raw/branch/main/Install_LDS.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
when asked for the network interface make sure to enter it without using backspaces
|
||||||
7
UpdateIP.sh
Normal file
7
UpdateIP.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#Used for updating the ip subnet in DNSMasq
|
||||||
|
NetIF=<Set to name of network interface>
|
||||||
|
sleep 20
|
||||||
|
ipa=$(ip -4 addr show $NetIF | grep -m 1 -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -E -o "([0-9]{1,3}[\.]){2}[0-9]{1,3}" |head -1 )
|
||||||
|
ipa="$ipa"".0"
|
||||||
|
sed -i '/dhcp-range/c\dhcp-range='"$ipa"',proxy' /etc/dnsmasq.conf
|
||||||
|
service dnsmasq restart
|
||||||
32
dnsmasq.conf
Normal file
32
dnsmasq.conf
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
port=0
|
||||||
|
|
||||||
|
log-dhcp
|
||||||
|
dhcp-range=192.168.1.0,proxy
|
||||||
|
|
||||||
|
#Set WDS tag when selected from iPXE menu
|
||||||
|
dhcp-userclass=set:wds,wds
|
||||||
|
#Set ENH tag when iPXE requests boot script
|
||||||
|
dhcp-userclass=set:ENH,iPXE
|
||||||
|
|
||||||
|
#Load iPXE script when loaded
|
||||||
|
pxe-service=tag:ENH,tag:!wds,BC_EFI, Load iPXE, /iPXE/boot.ipxe
|
||||||
|
pxe-service=tag:ENH,tag:!wds,X86-64_EFI, Load iPXE, /iPXE/boot.ipxe
|
||||||
|
pxe-service=tag:ENH,tag:!wds,X86PC, Load iPXE, /iPXE/boot.ipxe
|
||||||
|
|
||||||
|
#Boot WDS when selected from ipxe
|
||||||
|
pxe-service=tag:!ENH,tag:wds,BC_EFI, "Load WDS", boot\x64\wdsmgfw.efi, 192.168.1.101
|
||||||
|
pxe-service=tag:!ENH,tag:wds,X86-64_EFI, "Load WDS", boot\x64\wdsmgfw.efi, 192.168.1.101
|
||||||
|
pxe-service=tag:!ENH,tag:wds,X86PC, "Load WDS", boot\x86\wdsnbp.com, 192.168.1.101
|
||||||
|
|
||||||
|
#Load ipxe if not loaded
|
||||||
|
pxe-service=tag:!ENH,tag:!wds,X86PC, "Load iPXE", /iPXE/undionly.kpxe
|
||||||
|
pxe-service=tag:!ENH,tag:!wds,BC_EFI, "Load iPXE", /iPXE/ipxe.efi
|
||||||
|
pxe-service=tag:!ENH,tag:!wds,X86-64_EFI, "Load iPXE", /iPXE/ipxe.efi
|
||||||
|
|
||||||
|
#Enable tftp and set its root folder
|
||||||
|
enable-tftp
|
||||||
|
tftp-root=/opt/LDS/tftp
|
||||||
|
|
||||||
|
#Use for telling Raspberry Pi's they can boot form this server (can be disabled if not using Pi's since is causes a delayed start for normal PXE)
|
||||||
|
pxe-prompt="Booting PXE Client", 1
|
||||||
|
pxe-service=0,"Raspberry Pi Boot"
|
||||||
114
iPXE/LDS.ipxe
Normal file
114
iPXE/LDS.ipxe
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
#Vars
|
||||||
|
#Linux Installer menu selector
|
||||||
|
#Use "LinuxInstallers-LID.ipxe" for stored boot images (using LDS-UpdateBootImages)
|
||||||
|
#Or Use "LinuxInstallers.ipxe" for online boot images
|
||||||
|
set LDSIMenu LinuxInstallers.ipxe
|
||||||
|
|
||||||
|
###################### MAIN MENU ####################################
|
||||||
|
|
||||||
|
:start
|
||||||
|
menu Linux Depolyment server - Main
|
||||||
|
item MenuLinuxTools Tools -->
|
||||||
|
item MenuLinuxInstallers Installers -->
|
||||||
|
#item MenuLinuxCustomInstallers Custom Installers -->
|
||||||
|
|
||||||
|
|
||||||
|
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
|
||||||
|
set menu-timeout 0
|
||||||
|
goto ${selected}
|
||||||
|
|
||||||
|
:cancel
|
||||||
|
echo You cancelled the menu, dropping you to a shell
|
||||||
|
|
||||||
|
:shell
|
||||||
|
echo Type 'exit' to get the back to the menu
|
||||||
|
shell
|
||||||
|
set menu-timeout 0
|
||||||
|
set submenu-timeout 0
|
||||||
|
goto startinitrd
|
||||||
|
|
||||||
|
:failed
|
||||||
|
echo Booting failed, dropping to shell
|
||||||
|
goto shell
|
||||||
|
|
||||||
|
|
||||||
|
#Linux Installer menu
|
||||||
|
:MenuLinuxInstallers
|
||||||
|
chain ${LDSIMenu}
|
||||||
|
boot
|
||||||
|
|
||||||
|
###################### Linux Custom Installer menu ####################################
|
||||||
|
:MenuLinuxCustomInstallers
|
||||||
|
menu Linux menu Linux Depolyment server - Custom installers
|
||||||
|
item CustomInstallPlaceHolder Place Holder
|
||||||
|
|
||||||
|
item
|
||||||
|
item start Back to the main menu <--
|
||||||
|
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
|
||||||
|
set menu-timeout 0
|
||||||
|
goto ${selected}
|
||||||
|
|
||||||
|
:CustomInstallPlaceHolder
|
||||||
|
kernel
|
||||||
|
initrd
|
||||||
|
boot
|
||||||
|
|
||||||
|
###################### Linux Tool menu ####################################
|
||||||
|
:MenuLinuxTools
|
||||||
|
menu Linux Depolyment server - Tools
|
||||||
|
#item CloneZilla CloneZilla
|
||||||
|
#item GParted GParted
|
||||||
|
#item SystemRescueCD SystemRescueCD x64
|
||||||
|
#item PartedMagic32 Parted Magic x86
|
||||||
|
#item PartedMagic64 Parted Magic x64
|
||||||
|
#item AcronisTrueImage32 Acronis True Image x86
|
||||||
|
#item AcronisTrueImage64 Acronis True Image x64
|
||||||
|
|
||||||
|
item
|
||||||
|
item start Back to the main menu <--
|
||||||
|
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
|
||||||
|
set menu-timeout 0
|
||||||
|
goto ${selected}
|
||||||
|
|
||||||
|
:CloneZilla
|
||||||
|
kernel http://${next-server}/Tools/CloneZilla/vmlinuz initrd=initrd.img boot=live username=user union=overlay config components noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=http://${next-server}/Tools/CloneZilla/filesystem.squashfs
|
||||||
|
initrd http://${next-server}/Tools/CloneZilla/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:GParted
|
||||||
|
kernel http://${next-server}/Tools/Gparted/vmlinuz initrd=initrd.img boot=live config components union=overlay username=user noswap noeject fetch=http://${next-server}/Tools/Gparted/filesystem.squashfs
|
||||||
|
initrd http://${next-server}/Tools/Gparted/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:PartedMagic64
|
||||||
|
kernel http://${next-server}/Tools/PartedMagic/bzImage64 initrd=initrd.img initrd=PMAGIC_2013_08_01.SQFS.cgz edd=off load_ramdisk=1 prompt_ramdisk=0 rw loglevel=9 max_loop=256
|
||||||
|
initrd http://${next-server}/Tools/PartedMagic/initrd.img
|
||||||
|
initrd http://${next-server}/Tools/PartedMagic/PMAGIC_2013_08_01.SQFS.cgz
|
||||||
|
boot
|
||||||
|
|
||||||
|
:PartedMagic32
|
||||||
|
kernel http://${next-server}/Tools/PartedMagic/bzImage initrd=initrd.img initrd=PMAGIC_2013_08_01.SQFS.cgz edd=off load_ramdisk=1 prompt_ramdisk=0 rw loglevel=9 max_loop=256
|
||||||
|
initrd http://${next-server}/Tools/PartedMagic/initrd.img
|
||||||
|
initrd http://${next-server}/Tools/PartedMagic/PMAGIC_2013_08_01.SQFS.cgz
|
||||||
|
boot
|
||||||
|
|
||||||
|
:AcronisTrueImage64
|
||||||
|
kernel http://${next-server}/Tools/AcronisTrueImage/dat10.dat force_modules=usbhid quiet
|
||||||
|
initrd http://${next-server}/Tools/AcronisTrueImage/dat11.dat
|
||||||
|
initrd http://${next-server}/Tools/AcronisTrueImage/dat12.dat
|
||||||
|
boot
|
||||||
|
|
||||||
|
:AcronisTrueImage32
|
||||||
|
kernel http://${next-server}/Tools/AcronisTrueImage/dat2.dat force_modules=usbhid quiet
|
||||||
|
initrd http://${next-server}/Tools/AcronisTrueImage/dat3.dat
|
||||||
|
initrd http://${next-server}/Tools/AcronisTrueImage/dat4.dat
|
||||||
|
boot
|
||||||
|
|
||||||
|
:SystemRescueCD
|
||||||
|
kernel http://${next-server}/Tools/SystemRescueCD/vmlinuz archisobasedir=Tools/SystemRescueCD ip=dhcp archiso_http_srv=http://${next-server}/
|
||||||
|
initrd http://${next-server}/Tools/SystemRescueCD/intel_ucode.img
|
||||||
|
initrd http://${next-server}/Tools/SystemRescueCD/amd_ucode.img
|
||||||
|
initrd http://${next-server}/Tools/SystemRescueCD/sysresccd.img
|
||||||
|
boot
|
||||||
102
iPXE/LinuxInstallers.ipxe
Normal file
102
iPXE/LinuxInstallers.ipxe
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
#Vars
|
||||||
|
set DebianVer bullseye
|
||||||
|
set CentosStreamVer 9-stream
|
||||||
|
set AlmalVer 9
|
||||||
|
set RockyVer 8
|
||||||
|
set FedoraVer 36
|
||||||
|
set AlpineVer latest-stable
|
||||||
|
|
||||||
|
#LDS Linux install menu using external images
|
||||||
|
|
||||||
|
:start
|
||||||
|
menu Linux Depolyment server - Installers
|
||||||
|
#Variable items
|
||||||
|
|
||||||
|
item Debian Install Debian ${DebianVer} x64
|
||||||
|
item CentosStream Install CentOS ${CentosStreamVer} x64
|
||||||
|
item AlmaLinux Install Alma ${AlmalVer} x64
|
||||||
|
item RockyLinux Install Rocky ${RockyVer} x64
|
||||||
|
item OpenSuseLeap Install OpenSuse Leap x64
|
||||||
|
item Fedora Install Fedora ${FedoraVer} x64
|
||||||
|
item Alpine Install Alpine ${AlpineVer} x64
|
||||||
|
|
||||||
|
#Legacy static items
|
||||||
|
#item Debian10 Install Debian 10 x64
|
||||||
|
#item Ubuntu1804 Install Ubuntu 18.04 x64
|
||||||
|
#item Ubuntu2004 Install Ubuntu 20.04 x64
|
||||||
|
#item Centos7 Install CentOS 7 x64
|
||||||
|
#item Centos8Stream Install CentOS 8-Stream x64
|
||||||
|
|
||||||
|
item
|
||||||
|
item --key x LDSMain Back to the main menu <--
|
||||||
|
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
|
||||||
|
set menu-timeout 0
|
||||||
|
goto ${selected}
|
||||||
|
|
||||||
|
#Load LDS Main menu
|
||||||
|
:LDSMain
|
||||||
|
chain LDS.ipxe
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Debian
|
||||||
|
kernel http://ftp.nl.debian.org/debian/dists/${DebianVer}/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux initrd=initrd.gz
|
||||||
|
initrd http://ftp.nl.debian.org/debian/dists/${DebianVer}/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
|
||||||
|
boot
|
||||||
|
|
||||||
|
:CentosStream
|
||||||
|
kernel http://mirror.stream.centos.org/${CentosStreamVer}/BaseOS/x86_64/os/images/pxeboot/vmlinuz initrd=initrd.img inst.stage2=http://mirror.stream.centos.org/${CentosStreamVer}/BaseOS/x86_64/os/ devfs=nomount ip=dhcp
|
||||||
|
initrd http://mirror.stream.centos.org/${CentosStreamVer}/BaseOS/x86_64/os/images/pxeboot/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:AlmaLinux
|
||||||
|
kernel http://repo.almalinux.org/almalinux/${AlmalVer}/BaseOS/x86_64/os/images/pxeboot/vmlinuz initrd=initrd.img inst.stage2=http://repo.almalinux.org/almalinux/${AlmalVer}/BaseOS/x86_64/os/ devfs=nomount ip=dhcp
|
||||||
|
initrd http://repo.almalinux.org/almalinux/${AlmalVer}/BaseOS/x86_64/os/images/pxeboot/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:RockyLinux
|
||||||
|
kernel http://download.rockylinux.org/pub/rocky/${RockyVer}/BaseOS/x86_64/os/images/pxeboot/vmlinuz initrd=initrd.img inst.stage2=http://download.rockylinux.org/pub/rocky/${RockyVer}/BaseOS/x86_64/os/ devfs=nomount ip=dhcp
|
||||||
|
initrd http://download.rockylinux.org/pub/rocky/${RockyVer}/BaseOS/x86_64/os/images/pxeboot/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:OpenSuseLeap
|
||||||
|
kernel http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/boot/x86_64/loader/linux initrd=initrd showopts install=http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/
|
||||||
|
initrd http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/boot/x86_64/loader/initrd
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Fedora
|
||||||
|
kernel http://download.fedoraproject.org/pub/fedora/linux/releases/${FedoraVer}/Everything/x86_64/os/images/pxeboot/vmlinuz initrd=initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/${FedoraVer}/Everything/x86_64/os/ devfs=nomount ip=dhcp
|
||||||
|
initrd http://download.fedoraproject.org/pub/fedora/linux/releases/${FedoraVer}/Everything/x86_64/os/images/pxeboot/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Alpine
|
||||||
|
kernel http://dl-4.alpinelinux.org/alpine/${AlpineVer}/releases/x86_64/netboot/vmlinuz-lts modules=loop,squashfs quiet alpine_repo=http://dl-4.alpinelinux.org/alpine/${AlpineVer}/main modloop=http://dl-4.alpinelinux.org/alpine/${AlpineVer}/releases/x86_64/netboot/modloop-lts initrd=initramfs-lts
|
||||||
|
initrd http://dl-4.alpinelinux.org/alpine/${AlpineVer}/releases/x86_64/netboot/initramfs-lts
|
||||||
|
boot
|
||||||
|
|
||||||
|
#Legacy static items
|
||||||
|
:Debian10
|
||||||
|
kernel http://ftp.nl.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux initrd=initrd.gz
|
||||||
|
initrd http://ftp.nl.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Ubuntu1804
|
||||||
|
kernel http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz
|
||||||
|
initrd http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Ubuntu2004
|
||||||
|
kernel http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz
|
||||||
|
initrd http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64/initrd.gz
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Centos7
|
||||||
|
kernel http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/vmlinuz initrd=initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp
|
||||||
|
initrd http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/initrd.img
|
||||||
|
boot
|
||||||
|
|
||||||
|
:Centos8Stream
|
||||||
|
kernel http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/images/pxeboot/vmlinuz initrd=initrd.img method=http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/ devfs=nomount ip=dhcp
|
||||||
|
initrd http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/images/pxeboot/initrd.img
|
||||||
|
boot
|
||||||
54
iPXE/boot.ipxe
Normal file
54
iPXE/boot.ipxe
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#!ipxe
|
||||||
|
|
||||||
|
# Some menu defaults
|
||||||
|
set menu-timeout 50000
|
||||||
|
set submenu-timeout ${menu-timeout}
|
||||||
|
isset ${menu-default} || set menu-default exit
|
||||||
|
|
||||||
|
:start
|
||||||
|
menu iPXE boot menu for
|
||||||
|
item --gap -- ------------------------- Boot server selector ------------------------------
|
||||||
|
item --key l LDS Boot to LDS
|
||||||
|
item --key W WDS Boot to WDS
|
||||||
|
item --gap -- ------------------------- Advanced options -------------------------------
|
||||||
|
item shell Drop to iPXE shell
|
||||||
|
item poweroff Shutdown computer
|
||||||
|
item reboot Reboot computer
|
||||||
|
item
|
||||||
|
item --key x exit Exit iPXE and continue BIOS boot
|
||||||
|
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
|
||||||
|
set menu-timeout 0
|
||||||
|
goto ${selected}
|
||||||
|
|
||||||
|
:cancel
|
||||||
|
echo You cancelled the menu, dropping you to a shell
|
||||||
|
|
||||||
|
:shell
|
||||||
|
echo Type 'exit' to get the back to the menu
|
||||||
|
shell
|
||||||
|
set menu-timeout 0
|
||||||
|
set submenu-timeout 0
|
||||||
|
goto start
|
||||||
|
|
||||||
|
:failed
|
||||||
|
echo Booting failed, dropping to shell
|
||||||
|
goto shell
|
||||||
|
|
||||||
|
:poweroff
|
||||||
|
poweroff
|
||||||
|
|
||||||
|
:reboot
|
||||||
|
reboot
|
||||||
|
|
||||||
|
:exit
|
||||||
|
exit
|
||||||
|
|
||||||
|
#Load LDS
|
||||||
|
:LDS
|
||||||
|
chain LDS.ipxe
|
||||||
|
boot
|
||||||
|
|
||||||
|
#Set DHCP user class to "wds" and start networkboot
|
||||||
|
:WDS
|
||||||
|
set user-class wds
|
||||||
|
autoboot || goto failed
|
||||||
BIN
iPXE/ipxe.efi
Normal file
BIN
iPXE/ipxe.efi
Normal file
Binary file not shown.
BIN
iPXE/undionly.kpxe
Normal file
BIN
iPXE/undionly.kpxe
Normal file
Binary file not shown.
84
lighttpd.conf
Normal file
84
lighttpd.conf
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
#Basic lighttpd server with directory listing
|
||||||
|
server.modules = (
|
||||||
|
"mod_access",
|
||||||
|
"mod_accesslog",
|
||||||
|
"mod_dirlisting"
|
||||||
|
)
|
||||||
|
|
||||||
|
# {{{ mime types
|
||||||
|
mimetype.assign = (
|
||||||
|
".svg" => "image/svg+xml",
|
||||||
|
".svgz" => "image/svg+xml",
|
||||||
|
".pdf" => "application/pdf",
|
||||||
|
".sig" => "application/pgp-signature",
|
||||||
|
".spl" => "application/futuresplash",
|
||||||
|
".class" => "application/octet-stream",
|
||||||
|
".ps" => "application/postscript",
|
||||||
|
".torrent" => "application/x-bittorrent",
|
||||||
|
".dvi" => "application/x-dvi",
|
||||||
|
".gz" => "application/x-gzip",
|
||||||
|
".pac" => "application/x-ns-proxy-autoconfig",
|
||||||
|
".swf" => "application/x-shockwave-flash",
|
||||||
|
".tar.gz" => "application/x-tgz",
|
||||||
|
".tgz" => "application/x-tgz",
|
||||||
|
".tar" => "application/x-tar",
|
||||||
|
".zip" => "application/zip",
|
||||||
|
".dmg" => "application/x-apple-diskimage",
|
||||||
|
".mp3" => "audio/mpeg",
|
||||||
|
".m3u" => "audio/x-mpegurl",
|
||||||
|
".wma" => "audio/x-ms-wma",
|
||||||
|
".wax" => "audio/x-ms-wax",
|
||||||
|
".ogg" => "application/ogg",
|
||||||
|
".wav" => "audio/x-wav",
|
||||||
|
".gif" => "image/gif",
|
||||||
|
".jpg" => "image/jpeg",
|
||||||
|
".jpeg" => "image/jpeg",
|
||||||
|
".png" => "image/png",
|
||||||
|
".xbm" => "image/x-xbitmap",
|
||||||
|
".xpm" => "image/x-xpixmap",
|
||||||
|
".xwd" => "image/x-xwindowdump",
|
||||||
|
".css" => "text/css",
|
||||||
|
".html" => "text/html",
|
||||||
|
".htm" => "text/html",
|
||||||
|
".js" => "text/javascript",
|
||||||
|
".asc" => "text/plain",
|
||||||
|
".c" => "text/plain",
|
||||||
|
".h" => "text/plain",
|
||||||
|
".cc" => "text/plain",
|
||||||
|
".cpp" => "text/plain",
|
||||||
|
".hh" => "text/plain",
|
||||||
|
".hpp" => "text/plain",
|
||||||
|
".conf" => "text/plain",
|
||||||
|
".log" => "text/plain",
|
||||||
|
".text" => "text/plain",
|
||||||
|
".txt" => "text/plain",
|
||||||
|
".diff" => "text/plain",
|
||||||
|
".patch" => "text/plain",
|
||||||
|
".ebuild" => "text/plain",
|
||||||
|
".eclass" => "text/plain",
|
||||||
|
".rtf" => "application/rtf",
|
||||||
|
".bmp" => "image/bmp",
|
||||||
|
".tif" => "image/tiff",
|
||||||
|
".tiff" => "image/tiff",
|
||||||
|
".ico" => "image/x-icon",
|
||||||
|
".dtd" => "text/xml",
|
||||||
|
".xml" => "text/xml",
|
||||||
|
".mpeg" => "video/mpeg",
|
||||||
|
".mpg" => "video/mpeg",
|
||||||
|
".mov" => "video/quicktime",
|
||||||
|
".qt" => "video/quicktime",
|
||||||
|
".avi" => "video/x-msvideo",
|
||||||
|
".asf" => "video/x-ms-asf",
|
||||||
|
".asx" => "video/x-ms-asf",
|
||||||
|
".wmv" => "video/x-ms-wmv",
|
||||||
|
".bz2" => "application/x-bzip",
|
||||||
|
".tbz" => "application/x-bzip-compressed-tar",
|
||||||
|
".tar.bz2" => "application/x-bzip-compressed-tar"
|
||||||
|
)
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
server.document-root = "/opt/LDS/www"
|
||||||
|
server.pid-file = "/run/lighttpd.pid"
|
||||||
|
server.follow-symlink = "enable"
|
||||||
|
url.access-deny = ("~", ".inc")
|
||||||
|
dir-listing.activate = "enable"
|
||||||
Reference in New Issue
Block a user