Inital commit

This commit is contained in:
2022-06-27 19:20:21 +02:00
commit 5b80ab75d9
23 changed files with 565 additions and 0 deletions

89
Installer-ProxmoxVE.sh Normal file
View File

@@ -0,0 +1,89 @@
#!/bin/bash
#Check if config is in current directory
if [[ ! -f Locations.conf ]];then
echo "Location config not found, Please got to the Project directory"
exit 10
fi
#Check if runnning in bash, else restart script in bash
if [[ "$SHELL" != *"bash"* ]]; then
SHELL=/bin/bash
bash "$(basename $0)"
exit
fi
source Locations.conf
cat << EOF
#########################################################################################################
# Create PXE bootable Proxmox image including ISO #
# Make sure to install required packages: zstd genisoimage cpio #
# #
# Author: mrballcb @ Proxmox Forum (06-12-2012) #
# Thread: http://forum.proxmox.com/threads/8484-Proxmox-installation-via-PXE-solution?p=55985#post55985 #
# Modified: morph027 @ Proxmox Forum (23-02-2015) to work with 3.4 #
# Modified: brammp @ 24-06-2022 to download latest image for use with LDS #
#########################################################################################################
EOF
#Set folder vars
WorkDir=/opt/TMPLDSIDWD
TargetDir="$WWWStore/Installer/Proxmox"
#Check if folder exists
[ -d "$TargetDir" ] || mkdir -p "$TargetDir"
[ -d "$WorkDir" ] || mkdir -p "$WorkDir"
#Download latest version of Proxmox VE
wget -O "$WorkDir"/proxmox.iso $(wget -d -r -np -N -P "$WorkDir"/TmpDownload --spider -e robots=off http://download.proxmox.com/iso/ 2>&1 | grep " -> " | grep -Ev "\/\?C=" | sed "s/.* -> //" | grep "http[^\']*" | grep proxmox-ve | grep -v UTF-8 | tail -1)
##
pushd "$WorkDir" >/dev/null || exit 1
[ -L "proxmox.iso" ] && rm proxmox.iso &>/dev/null
for ISO in *.iso; do
if [ "$ISO" = "*.iso" ]; then continue; fi
if [ "$ISO" = "proxmox.iso" ]; then continue; fi
echo "Using ${ISO}..."
ln -s "$ISO" proxmox.iso
done
if [ ! -f "proxmox.iso" ]; then
echo "Couldn't find a proxmox iso, aborting."
echo "Add /path/to/iso_dir to the commandline."
exit 2
fi
[ -d pxeboot ] || mkdir pxeboot
pushd pxeboot >/dev/null || exit 1
echo "extracting kernel..."
isoinfo -i ../proxmox.iso -R -x /boot/linux26 > linux26 || exit 3
echo "extracting initrd..."
isoinfo -i ../proxmox.iso -R -x /boot/initrd.img > /tmp/initrd.img
mimetype="$(file --mime-type --brief /tmp/initrd.img)"
case "${mimetype##*/}" in
"zstd"|"x-zstd")
decompress="zstd -d /tmp/initrd.img -c"
;;
"gzip"|"x-gzip")
decompress="gzip -S img -d /tmp/initrd.img -c"
;;
*)
echo "unable to detect initrd compression method, exiting"
exit 1
;;
esac
$decompress > initrd || exit 4
echo "adding iso file ..."
echo "../proxmox.iso" | cpio -L -H newc -o >> initrd || exit 5
popd >/dev/null 2>&1 || exit 1
#echo "Finished! pxeboot files can be found in ${PWD}."
popd >/dev/null 2>&1 || true # don't care if these pops fail
popd >/dev/null 2>&1 || true
##
echo "Finished! Proxmox pxeboot files are added to LDS."
mv "$WorkDir"/pxeboot/* "$TargetDir"
rm -rf "$WorkDir"