VDIs verbessert

This commit is contained in:
2024-08-22 21:03:01 +02:00
parent 572a78597c
commit 28c2feee98
8 changed files with 1430 additions and 172 deletions

View File

@@ -48,6 +48,57 @@ generate_rdp_port() {
echo "$rdp_port"
}
# Funktion zum Suchen einer VDI-Datei basierend auf einem Muster
find_vdi_files() {
local vdi_dir="$1"
find "$vdi_dir" -type f -name "*.vdi" | sort
}
# Funktion, um das Betriebssystem basierend auf der VDI-Datei zu identifizieren
identify_os() {
local vdi_file="$1"
case "$(basename "$vdi_file")" in
*ubu*_GUI_*)
echo "Ubuntu_64"
;;
*ubuntu*desktop*)
echo "Ubuntu_64"
;;
*debian*)
echo "Debian_64"
;;
*rhel*)
echo "RedHat_64"
;;
*CentOS*)
echo "RedHat_64"
;;
*Fedora-Workstation*)
echo "Fedora_64"
;;
*Fedora-Server*)
echo "Fedora_64"
;;
*kali-linux*)
echo "kali-linux"
;;
*linuxmint*)
echo "Linux_64"
;;
*openSUSE*)
echo "OpenSUSE_64"
;;
*manjaro*)
echo "ArchLinux_64"
;;
*)
echo "Unbekannt"
;;
esac
}
# %--------------------end/Funktionen--------------------%
echo "User / Passwort: user00/Start1234"
@@ -92,38 +143,51 @@ do
break
done
COLUMNS=8
PS3='Bitte wählen Sie die VM-Option: '
OPTIONS=("Ubuntu 2204 GUI BASE" "Ubuntu 2204 GUI BASE EXT" "Ubuntu 2204 SRV" "Ubuntu 2204 GUI GER" "Ubuntu 2204 GUI GER EXT" "Beenden")
select opt in "${OPTIONS[@]}"
VDI_DIR="/srv/data/VDI"
echo "Verfügbare VDI-Dateien werden durchsucht..."
echo
# Vorhandene VDI-Dateien finden und zur Auswahl anbieten
vdi_files=($(find_vdi_files "$VDI_DIR"))
if [ ${#vdi_files[@]} -eq 0 ]; then
echo "Keine VDI-Dateien im Verzeichnis $VDI_DIR gefunden."
exit
fi
# VDI-Dateinamen extrahieren
vdi_names=()
for vdi_file in "${vdi_files[@]}"; do
vdi_names+=("$(basename "$vdi_file")")
done
S3="Bitte wählen Sie eine VDI-Datei aus: "
select vdi_name in "${vdi_names[@]}" "Beenden"
do
case $opt in
"Ubuntu 2204 GUI BASE")
VAR_OS="Ubuntu_64"
VAR_VDI="ubu2204_GUI_BASE.vdi"
;;
"Ubuntu 2204 GUI BASE EXT")
VAR_OS="Ubuntu_64"
VAR_VDI="ubu2204_GUI_BASE_EXT.vdi"
;;
"Ubuntu 2204 SRV")
VAR_OS="Ubuntu_64"
VAR_VDI="ubu2204_SRV.vdi"
;;
"Ubuntu 2204 GUI GER")
VAR_OS="Ubuntu_64"
VAR_VDI="ubu2204_GUI_GER.vdi"
;;
"Ubuntu 2204 GUI GER EXT")
VAR_OS="Ubuntu_64"
VAR_VDI="ubu2204_GUI_GER_EXT.vdi"
;;
"Beenden")
exit
;;
esac
default_name=$(get_random_name)
if [[ "$vdi_name" == "Beenden" ]]; then
exit 0
fi
if [ -n "$vdi_name" ]; then
selected_vdi="$VDI_DIR/$vdi_name"
break
else
echo "Ungültige Auswahl. Bitte versuchen Sie es erneut."
fi
done
# Betriebssystem auf Basis der ausgewählten VDI identifizieren
os_name=$(identify_os "$selected_vdi")
if [ "$os_name" == "Unbekannt" ]; then
echo "Das Betriebssystem konnte nicht automatisch erkannt werden."
read -p "Bitte geben Sie das Betriebssystem manuell ein: " os_name
fi
# Benutzerdefinierte Werte anfordern
default_name=$(get_random_name)
# Benutzereingaben
read -p "Wie viele VMs werden benötigt? [1]: " VAR_QUANTITY