From 9be08af6caa10c119f72e30a9716987522948af2 Mon Sep 17 00:00:00 2001 From: braniz Date: Sun, 1 Oct 2023 15:06:11 +0200 Subject: [PATCH] . --- chat_user.sh | 49 ----------------------- neu_vdi_create.sh | 99 ++++++++++++++++++++++++++++++++++++++++++++++ vbox_create.sh | 37 +++++++++++++++-- vbox_neu_create.sh | 0 4 files changed, 133 insertions(+), 52 deletions(-) delete mode 100644 chat_user.sh create mode 100755 neu_vdi_create.sh create mode 100644 vbox_neu_create.sh diff --git a/chat_user.sh b/chat_user.sh deleted file mode 100644 index e9fe346..0000000 --- a/chat_user.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -clear - -# Funktion zum Benutzer erstellen -create_user() { - local username="$1" - local password="$2" - local groups="$3" - - # Benutzer erstellen mit Passwort - sudo useradd -m "$username" -G "$groups" - echo "$username:$password" | sudo chpasswd -} - -# Anzahl der zu erstellenden Benutzer abfragen -read -p "Geben Sie die Anzahl der zu erstellenden Benutzer an: " num_users - -# Überprüfen, ob die Eingabe eine positive ganze Zahl ist -if ! [[ "$num_users" =~ ^[1-9][0-9]*$ ]]; then - echo "Ungültige Eingabe. Bitte geben Sie eine positive ganze Zahl ein." - exit 1 -fi - -# Benutzername für alle Benutzer festlegen -read -p "Geben Sie den gemeinsamen Benutzernamen für alle Benutzer ein: " common_username - -# Passwort für alle Benutzer festlegen -read -s -p "Geben Sie das gemeinsame Passwort für alle Benutzer ein: " common_password -echo # Neue Zeile für die Eingabeaufforderung - -# Abfrage, ob die Benutzer zusätzliche Gruppen erhalten sollen -read -p "Möchten Sie zusätzliche Gruppen für alle Benutzer hinzufügen? (j/n): " add_groups - -groups="" -if [[ "$add_groups" == "j" ]]; then - read -p "Geben Sie die zusätzlichen Gruppen für alle Benutzer (kommagetrennt) ein: " groups -fi - -# Schleife zur Erstellung der Benutzer -for ((i = 1; i <= num_users; i++)); do - username="${common_username}$(printf "%02d" "$i")" - - create_user "$username" "$common_password" "$groups" - echo "Benutzer $username wurde erstellt." -done - -echo "Die Benutzer wurden erfolgreich erstellt." - diff --git a/neu_vdi_create.sh b/neu_vdi_create.sh new file mode 100755 index 0000000..0f03435 --- /dev/null +++ b/neu_vdi_create.sh @@ -0,0 +1,99 @@ +#!/bin/bash +# +# @Branislav Zeljak v0.1 +# +# Create VBox +user=$(whoami) +clear +echo User / Passwort "user00/Start1234" +echo "Welches VDI-OS soll Installiert werden" +echo +COLUMNS=8 +PS3='Please enter your choice: ' +options=("Ubuntu 2204 SRV" "Ubuntu 2204 GUI" "Quit") +select opt in "${options[@]}" +do + case $opt in + "Ubuntu 2204 SRV") + VAR_OS="Ubuntu_64" + VAR_VDI="ubu2204-SRV.vdi" + ;; + "Ubuntu 2204 GUI") + VAR_OS="Ubuntu_64" + VAR_VDI="ubu2204-GUI.vdi" + ;; + *) + echo "invalid option $REPLY" + ;; + esac + +# Eingabe Auffoderung +read -p "Wievile VMs werden benoetigt? [1]: " VAR_QUAN +read -p "Praefix Host Name : " VAR_NAME +read -p "CPUs [1]: " VAR_CPU +read -p "Memory [2048] : " VAR_MEM + +# Variablen: +IFS=" +" + +VAR_PATH="/srv/data/VDI" +VAR_VB="/srv/vbox/${user}" + +VAR_CPU=${VAR_CPU:-1} +VAR_MEM=${VAR_MEM:-1024} +VAR_VID=64 +VAR_RDP=339 +VAR_NIC=bridged +VAR_NET=enp4s0f1 + +# Schleife +for N in $(seq 1 $VAR_QUAN) +do + VBoxManage createvm \ + --name ${VAR_NAME}-${N} \ + --ostype ${VAR_OS} \ + --register \ + --basefolder ${VAR_VB} + + VBoxManage modifyvm ${VAR_NAME}-${N} \ + --ioapic on \ + --memory ${VAR_MEM} \ + --cpus=${VAR_CPU} \ + --vram ${VAR_VID} \ + --nic1 Nat \ + --graphicscontroller vmsvga \ + --nic2 ${VAR_NIC} \ + --bridgeadapter2 ${VAR_NET} \ + --vrde on \ + --vrdemulticon on \ + --vrdeport ${VAR_RDP}${N} + + VBoxManage storagectl ${VAR_NAME}-${N} \ + --name "SATA Controller" \ + --add sata \ + --controller IntelAhci + + done + +# Damit das Clonen der HDDs paralell vorgenommen wird. +#echo > clonehd.txt + +for N in $(seq 1 $VAR_QUAN) +do + +echo "VBoxManage clonehd ${VAR_PATH}/${VAR_VDI} ${VAR_VB}/${VAR_NAME}-${N}/${VAR_NAME}-${N}-disk0.vdi" >> clonehd.txt + +done + +cat clonehd.txt | parallel + +VBoxManage storageattach ${VAR_NAME}-${N} \ + --storagectl "SATA Controller" \ + --port 0 \ + --device 0 \ + --type hdd \ + --medium ${VAR_VB}/${VAR_NAME}-${N}/${VAR_NAME}-${N}-disk0.vdi +break +done +rm /srv/data/GIT/Virtualbox/clonehd.txt diff --git a/vbox_create.sh b/vbox_create.sh index 4f7ccd8..062c81a 100755 --- a/vbox_create.sh +++ b/vbox_create.sh @@ -4,11 +4,38 @@ # # Create VBox +clear + # Vorgabe für Variablen VAR_USER=$(whoami) VAR_PATH="/srv/data/ISO/" -clear +# %--------------------start/Funktionen--------------------% + +# Funktion zum Überprüfen der Benutzerexistenz +check_user_existence() { + local VAR_USER="$1" + if ! grep -q "^$VAR_USER:" /etc/passwd; then + echo "Der Benutzer $VAR_USER existiert nicht auf diesem System." + exit 1 + fi +} + +# Funktion, um einen zufälligen Host-Namen aus der Liste auszuwählen +get_random_name() { + # Liste der Namen + local names=("frodo" "samweis" "gandalf" "aragorn" "legolas" "gimli" "boromir" "meriadoc" "peregrin" "arwen" "galadriel" "celeborn" "elrond" "glorfindel" "faramir" "eowyn" "theoden" "treebeard" "gollum" "sauron" "saruman" "bilbo" "denethor" "radagast" "thranduil" "bard" "fíli" "kíli" "dori" "frodo") + + # Zufälligen Index auswählen + local random_index=$((RANDOM % ${#names[@]})) + echo "${names[random_index]}" + +} + + +# %--------------------end/Funktionen--------------------% + + echo "Für wenn soll es sein?" echo COLUMNS=10 @@ -76,9 +103,11 @@ do ;; esac +default_name=$(get_random_name) + # Benutzereingabe für VM-Konfiguration read -p "Geben Sie die Anzahl der VMs an (Standard: 1): " VAR_QUAN - read -p "Praefix Host Name : " VAR_NAME + read -p "Praefix Host Name (Vorgabe: $default_name): " VAR_NAME read -p "CPUs (Standard: 2 CPU): " VAR_CPU read -p "Memory (Standard: 2048 MB-RAM) : " VAR_MEM read -p "Bitte die Anzahl der HDD (Standard: 1-HDD) : " VAR_HDD @@ -93,7 +122,9 @@ VAR_MEM=${VAR_MEM:-2048} VAR_VID=64 VAR_RDP=339 VAR_NIC=bridged -VAR_NET=enp4s0f1 +#VAR_NET=enp4s0f1 +VAR_NET=$(ip addr show | grep "2: " | awk '{print $2}' | sed 's/://') +VAR_NAME=${VAR_NAME:-$default_name} # Schliefe zur erzeugung der VMs for N in $(seq 1 $VAR_QUAN) diff --git a/vbox_neu_create.sh b/vbox_neu_create.sh new file mode 100644 index 0000000..e69de29