VDIs verbessert
This commit is contained in:
126
vdi_create.sh
126
vdi_create.sh
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user