diff --git a/.gitignore b/.gitignore index 54bcf30..ae1d6dc 100755 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -~ +rdp_port.txt diff --git a/Hilfs_Text b/Hilfs_Text deleted file mode 100644 index de6ad3f..0000000 --- a/Hilfs_Text +++ /dev/null @@ -1,20 +0,0 @@ -"Ubuntu_64 ubuntu-*-live-server-amd64.iso" -"Ubuntu_64 ubuntu-*-desktop-amd64.iso" -"Debian_64 debian-*.iso" -"RedHat_64 rhel-*.iso" -"Fedora_64 Fedora-*.iso" -"Linux_64 kali-linux-*.iso" -"Linux_64 linuxmint-*.iso" -"OpenSUSE_64 openSUSE-*.iso" -"ArchLinux_64 manjaro-xfce-*.iso" - - - # VBox-Befehle ausführen - sudo -u $user vboxmanage createvm --name $vm_name --register - sudo -u $user vboxmanage modifyvm $vm_name --memory $ram_size --cpus $num_cpus - sudo -u $user vboxmanage createhd --filename "$basefolder/$user/$vm_name/$vm_name.vdi" --size $hdd_size - sudo -u $user vboxmanage storagectl $vm_name --name "SATA Controller" --add sata --controller IntelAhci - sudo -u $user vboxmanage storageattach $vm_name --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "$basefolder/$user/$vm_name/$vm_name.vdi" - sudo -u $user vboxmanage modifyvm $vm_name --boot1 disk --boot2 dvd --boot3 none --boot4 none - sudo -u $user vboxmanage modifyvm $vm_name --natpf1 "guestssh,tcp,,222$i,,22" - \ No newline at end of file diff --git a/rdp.sh b/dev/rdp.sh similarity index 100% rename from rdp.sh rename to dev/rdp.sh diff --git a/vbox_api.py b/dev/vbox_api.py similarity index 100% rename from vbox_api.py rename to dev/vbox_api.py diff --git a/vbox_create.py b/dev/vbox_create.py similarity index 100% rename from vbox_create.py rename to dev/vbox_create.py diff --git a/vbox_ip.sh b/dev/vbox_ip.sh similarity index 100% rename from vbox_ip.sh rename to dev/vbox_ip.sh diff --git a/vbox_ip2.sh b/dev/vbox_ip2.sh similarity index 100% rename from vbox_ip2.sh rename to dev/vbox_ip2.sh diff --git a/hdd_vdi_create.sh b/hdd_vdi_create.sh deleted file mode 100755 index 0e3e2a7..0000000 --- a/hdd_vdi_create.sh +++ /dev/null @@ -1,241 +0,0 @@ -#!/bin/bash - -# Autor: Branislav Zeljak v0.7 -# Beschreibung: Dieses Skript erstellt VirtualBox-VMs und klonet Festplatten parallel. -# Verwendung: Führen Sie das Skript aus und befolgen Sie die Eingabeaufforderungen. - -clear - -# %--------------------start/Funktionen--------------------% - -# Funktion zum Überprüfen der Benutzerexistenz -check_user_existence() { - local VAR_USER_IN_GROUP="$1" - if ! grep -q "^$VAR_USER_IN_GROUP:" /etc/passwd; then - echo "Der Benutzer $VAR_USER_IN_GROUP existiert nicht auf diesem System." - exit 1 - fi -} - -get_group_users() { - local groupname="$1" - local members - - members=$(getent group "$groupname" | cut -d: -f4) - - if [[ -n "$members" ]]; then - echo "$members" | tr ',' '\n' - else - echo "Die Gruppe $groupname existiert nicht oder hat keine Mitglieder." - 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" "dori" "frodo") - - # Zufälligen Index auswählen - local random_index=$((RANDOM % ${#names[@]})) - echo "${names[random_index]}" - -} - -# Funktion zur Generierung eines eindeutigen RDP-Ports -generate_rdp_port() { - local rdp_port - rdp_port=$(shuf -i 3390-49151 -n 1) - echo "$rdp_port" -} - -# %--------------------end/Funktionen--------------------% - -echo "User / Passwort: user00/Start1234" -echo "Welches VDI-OS soll installiert werden" -echo - -echo "Für wen soll es sein?" -echo -COLUMNS=10 -PS3="Ihre Auswahl: " -options=("Aktueller Benutzer" "Anderer Benutzer" "Mitglieder einer Gruppe" "Beenden") -select opt in "${options[@]}" -do - case $opt in - "Aktueller Benutzer") - VAR_GROUP_MEMBERS=$(whoami) - ;; - "Anderer Benutzer") - read -p "Bitte geben Sie einen Benutzernamen ein: " VAR_GROUP_MEMBERS - if grep -q "^$VAR_GROUP_MEMBERS:" /etc/passwd; then - echo "Der Benutzer $VAR_GROUP_MEMBERS existiert auf diesem System." - else - echo "Der Benutzer $VAR_GROUP_MEMBERS existiert nicht auf diesem System." - exit 1 - fi - ;; - "Mitglieder einer Gruppe") - read -p "Bitte geben Sie den Gruppennamen ein: " VAR_GROUP - if getent group "$VAR_GROUP" &>/dev/null; then - echo "Mitglieder der Gruppe $VAR_GROUP:" - get_group_users "$VAR_GROUP" - VAR_GROUP_MEMBERS=($(get_group_users "$VAR_GROUP")) - else - echo "Die Gruppe $VAR_GROUP existiert nicht auf diesem System." - exit 1 - fi - ;; - "Beenden") - exit - ;; - esac - break -done - -COLUMNS=8 -PS3='Bitte wählen Sie die VM-Option: ' -OPTIONS=("Ubuntu 2204 GUI BASE" "Ubuntu 2204 SRV" "Ubuntu 2204 GUI" "openSUSE GUI" "Kali Linux" "Debian" "Fedora" "Beenden") -select opt in "${OPTIONS[@]}" -do - case $opt in - "Ubuntu 2204 GUI BASE") - VAR_OS="Ubuntu_64" - VAR_VDI="ubu2204-GUI-BASE.vdi" - ;; - "Ubuntu 2204 SRV") - VAR_OS="Ubuntu_64" - VAR_VDI="ubu2204-SRV.vdi" - ;; - "Ubuntu 2204 GUI") - VAR_OS="Ubuntu_64" - VAR_VDI="ubu2204-GUI-EXT.vdi" - ;; - "openSUSE GUI") - VAR_OS="OpenSUSE_Tumbleweed_64" - VAR_VDI="openSUSE-GUI.vdi" - ;; - "Kali Linux") - VAR_OS="Linux_64" - VAR_VDI="kali_linux-GUI.vdi" - ;; - "Debian") - VAR_OS="Debian_64" - VAR_VDI="debian-GUI.vdi" - ;; - "Fedora") - VAR_OS="Fedora_64" - VAR_VDI="fedora.vdi" - ;; - "Beenden") - exit - ;; - esac - - default_name=$(get_random_name) - - # Benutzereingaben - read -p "Wie viele VMs werden benötigt? [1]: " VAR_QUANTITY - VAR_QUANTITY=${VAR_QUANTITY:-1} - read -p "Präfix Host Name (Vorgabe: $default_name): " VAR_NAME_PREFIX - read -p "CPUs [2]: " VAR_CPU - VAR_CPU=${VAR_CPU:-2} - read -p "Memory [2048]: " VAR_MEM - VAR_MEM=${VAR_MEM:-2048} - read -p "Anzahl der zusätzlichen HDDs (Standard: 0): " VAR_ADDITIONAL_HDD - VAR_ADDITIONAL_HDD=${VAR_ADDITIONAL_HDD:-0} - - # Variablen - VAR_PATH_TO_VDI="/srv/data/VDI" - VAR_VIDEO_RAM=64 - VAR_NIC=bridged - #VAR_NET=enp4s0f1 - VAR_NET=$(ip addr show | grep "^2: " | awk '{print $2}' | sed 's/://') - VAR_NAME_PREFIX=${VAR_NAME_PREFIX:-$default_name} - - # Schleife zur Erzeugung der VMs für jeden Benutzer in der Gruppe - for VAR_USER_IN_GROUP in "${VAR_GROUP_MEMBERS[@]}" - do - - # Generiere einen eindeutigen RDP-Port - VAR_RDP_PORT=$(generate_rdp_port) - - # Schleife zur Erzeugung der angeforderten Anzahl von VMs - for ((i = 1; i <= VAR_QUANTITY; i++)) - do - # VM erstellen - VM_NAME="${VAR_NAME_PREFIX}-${VAR_USER_IN_GROUP}-VM$(printf "%02d" $i)" - VM_DIR="/srv/vbox/$VAR_USER_IN_GROUP" - - sudo -u "$VAR_USER_IN_GROUP" VBoxManage createvm \ - --name "$VM_NAME" \ - --ostype "$VAR_OS" \ - --register \ - --basefolder "$VM_DIR" - - # VM-Konfigurieren - sudo -u "$VAR_USER_IN_GROUP" VBoxManage modifyvm "$VM_NAME" \ - --ioapic on \ - --memory "$VAR_MEM" \ - --cpus "$VAR_CPU" \ - --vram "$VAR_VIDEO_RAM" \ - --nic1 Nat \ - --nic2 ${VAR_NIC} \ - --bridgeadapter2 ${VAR_NET} \ - --graphicscontroller vmsvga \ - --vrde on \ - --vrdemulticon on \ - --vrdeport "$VAR_RDP_PORT" - - # Festplattencontroller hinzufügen - sudo -u "$VAR_USER_IN_GROUP" VBoxManage storagectl "$VM_NAME" \ - --name "SATA Controller" \ - --add sata \ - --controller IntelAhci - - # IDE-Controller für DVD - sudo -u "$VAR_USER_IN_GROUP" VBoxManage storagectl "$VM_NAME" \ - --name "IDE Controller" \ - --add ide \ - --controller PIIX4 - - # Host Name und RDP Port - echo "${VM_NAME}-${VAR_RDP_PORT}" >> /srv/data/GIT/Virtualbox/rdp_port.txt - - # Schleife zur Erzeugung von zusätzlichen Festplatten - for ((j = 1; j <= VAR_ADDITIONAL_HDD; j++)) - do - HDD_NUM=$(printf "%02d" $j) - HDD_NAME="${VM_NAME}-disk${HDD_NUM}.vdi" - - sudo -u "$VAR_USER_IN_GROUP" VBoxManage createhd \ - --filename "$VM_DIR/$HDD_NAME" \ - --size 102400 \ - --format VDI - - sudo -u "$VAR_USER_IN_GROUP" VBoxManage storageattach "$VM_NAME" \ - --storagectl "SATA Controller" \ - --port "$HDD_NUM" \ - --device 0 \ - --type hdd \ - --medium "$VM_DIR/$VM_NAME/$HDD_NAME" - done - - # Klonen der ersten Festplatte und Registrieren (in Hintergrundprozessen) - { - sudo -u "$VAR_USER_IN_GROUP" VBoxManage clonehd "${VAR_PATH_TO_VDI}/${VAR_VDI}" "$VM_DIR/$VM_NAME/${VM_NAME}-disk00.vdi" - sudo -u "$VAR_USER_IN_GROUP" VBoxManage storageattach "$VM_NAME" \ - --storagectl "SATA Controller" \ - --port 0 \ - --device 0 \ - --type hdd \ - --medium "$VM_DIR/$VM_NAME/${VM_NAME}-disk00.vdi" - } & - done - done - - # Warten auf das Ende der Hintergrundprozesse - wait - - echo "VMs wurden für alle wie angegeben erstellt." - break -done diff --git a/rdp_port.txt b/rdp_port.txt index 92ed681..31b25f2 100644 --- a/rdp_port.txt +++ b/rdp_port.txt @@ -62,3 +62,17 @@ ubuntu2204-vhs07-VM01-32912 ubuntu2204-vhs08-VM01-41812 ubuntu2204-vhs09-VM01-39403 ubuntu2204-vhs10-VM01-21627 +eowyn-braniz-VM01-39319 +elrond-braniz-VM01-34985 +radagast-braniz-VM01-10158 +treebeard-braniz-VM01-26087 +denethor-braniz-VM01-8817 +thranduil-braniz-VM01-19013 +gandalf-braniz-VM01-39209 +faramir-braniz-VM01-22243 +bilbo-braniz-VM01-44112 +aragorn-braniz-VM01-6054 +glorfindel-braniz-VM01-32391 +faramir-braniz-VM01-25799 +treebeard-braniz-VM01-20495 +radagast-braniz-VM01-33014