scripte/client_startup.sh

256 lines
6.8 KiB
Bash

#!/bin/bash
# Überprüfen, ob das Skript als Root ausgeführt wird
if [ "$(id -u)" -ne 0 ]; then
echo "Dieses Skript muss als Root ausgeführt werden!" >&2
exit 1
fi
# Systemaktualisierung
apt-get update
apt-get upgrade
apt-get dist-upgrade
# Prüfen, ob 'software-properties-common' installiert ist (notwendig für add-apt-repository)
if ! dpkg -l | gr<ep -q software-properties-common; then
apt-get install -y software-properties-common
fi
# Die Datei, in der der Fortschritt gespeichert wird
PROGRESS_FILE="/var/script_progress.txt"
# Prüfen, ob eine Fortschrittsdatei existiert
if [ -f "$PROGRESS_FILE" ]; then
# Wenn die Datei existiert, lesen wir den Fortschritt
STEP=$(cat "$PROGRESS_FILE")
else
touch "@PROGRESS_FILE"
echo "Die Datei '$FILENAME' wurde erstellt."
echo "1" > "$PROGRESS_FILE"
# Wenn keine Fortschrittsdatei existiert, starten wir bei Schritt 1
STEP=1
fi
# Schritt 1: Domänenbeitritt
if [ "$STEP" -eq 1 ]; then
# PPA hinzufügen und notwendige Pakete installieren
add-apt-repository ppa:univention-dev/ppa
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install univention-domain-join
echo "Bitte treten Sie nun mit der Desktop-Anwendung der Domäne bei"
# Pause, bis der Benutzer eine Taste drückt
read -p "Drücken Sie Enter, um fortzufahren..."
echo "2" > "$PROGRESS_FILE"
reboot
fi
# Schritt 2: LDAP-Gruppe für Sudo-Rechte und SSH-Zugriff konfigurieren
if [ "$STEP" -eq 2 ]; then
# LDAP-Gruppen anzeigen
echo "Alle LDAP-Gruppen:"
getent group
# LDAP-Gruppe für Sudo-Rechte hinzufügen (Ändere 'Administrators' auf die gewünschte Gruppe)
GRUPPE="Administrators"
echo "Füge Gruppe $GRUPPE zu Sudo-Rechten hinzu..."
# Sicherstellen, dass die Gruppe existiert
if ! getent group $GRUPPE > /dev/null; then
echo "Die Gruppe '$GRUPPE' existiert nicht. Bitte sicherstellen, dass die Gruppe korrekt ist."
exit 1
fi
# Benutzer zur Sudo-Gruppe hinzufügen
usermod -aG sudo $GRUPPE
# Überprüfen, ob der SSH-Daemon installiert ist
if ! dpkg -l | grep -q openssh-server; then
echo "OpenSSH-Server ist nicht installiert. Installiere es jetzt..."
apt update && apt install -y openssh-server
fi
# SSH-Zugriff für diese Gruppe aktivieren
echo "SSH-Zugriff für Gruppe $GRUPPE erlauben..."
echo "AllowGroups $GRUPPE" >> /etc/ssh/sshd_config
# SSH-Dienst neu starten
systemctl restart ssh
# Root-Rechte der Gruppe zuweisen (sudo erlauben)
echo "Root-Rechte für Gruppe $GRUPPE (über Sudo) zuweisen..."
echo "%$GRUPPE ALL=(ALL:ALL) ALL" >> /etc/sudoers
# Änderungen anwenden
echo "Skript abgeschlossen. Bitte testen Sie die Änderungen."
# Fortschritt speichern
echo "3" > "$PROGRESS_FILE"
fi
# Schritt 3: Snap-Pakete installieren
if [ "$STEP" -eq 3 ]; then
# Liste der zu installierenden Snap-Pakete
SNAP_PACKAGES=(
"vlc"
"spotify"
"thunderbird"
"remmina"
"okular"
"libreoffice"
"gimp"
"nextcloud-desktop-client"
"gnucash-jz"
"bitwarden"
"whatsapp-linux-app"
"notes"
"chatgpt-desktop"
"bw"
"chromium"
)
# Snap-Pakete installieren
for SNAP in "${SNAP_PACKAGES[@]}"; do
echo "Installiere $SNAP..."
snap install "$SNAP" --classic
done
# Snap-Verbindungen konfigurieren (z.B. Remmina)
snap connect remmina:audio-record :audio-record
snap connect remmina:avahi-observe :avahi-observe
snap connect remmina:cups-control :cups-control
snap connect remmina:mount-observe :mount-observe
snap connect remmina:password-manager-service :password-manager-service
snap connect remmina:ssh-keys :ssh-keys
snap connect remmina:ssh-public-keys :ssh-public-keys
# Fortschritt speichern
echo "4" > "$PROGRESS_FILE"
fi
# Schritt 4: Repository hinzufügen und installieren
if [ "$STEP" -eq 4 ]; then
# URL der Paketquelle
REPO_URL="deb http://www.ecodms.de/ecodms_240164/noble /"
# Datei, in der die Quelle hinzugefügt wird
SOURCES_LIST_FILE="/etc/apt/sources.list.d/ecodms.list"
# Füge die Quelle hinzu
echo "$REPO_URL" | tee "$SOURCES_LIST_FILE" > /dev/null
# GPG-Schlüssel hinzufügen
wget -qO /etc/apt/trusted.gpg.d/ecodms.asc http://www.ecodms.de/gpg/ecodms.key || { echo "Download des GPG-Schlüssels fehlgeschlagen"; exit 1; }
# Paketquellen aktualisieren und Pakete installieren
apt update
apt upgrade -y
apt-get install -y ecodmsclient
apt-get install -y ecodmsprinter
systemctl daemon-reload
# Automatisch fehlende Abhängigkeiten installieren
apt-get install -f -y
# Unnötige Pakete entfernen
apt-get autoremove -y
# Fortschritt speichern
echo "5" > "$PROGRESS_FILE"
echo "Installation abgeschlossen!"
fi
# Schritt 5: Software installieren
if [ "$STEP" -eq 5 ]; then
mkdir /mnt/software
echo "Passwort: Et48^nSGRh6644"
sshfs root@192.168.176.6:/mnt/synology/software/ubuntu_client /mnt/software
cp /mnt/software/* /home/sebastian/Downloads
umount /mnt/software
rmdir /mnt/software
cd /home/sebastian/Downloads/
dpkg -i rustdesk-1.3.5-x86_64.deb
apt-get install -f -y
dpkg -i BricsCAD-V24.2.07-1-de_DE-amd64.deb
apt-get install -f -y
dpkg -i Installer_Fakturama_linux_x64_2.2.0-BETA.deb
apt-get install -f -y
dpkg -i shadow-amd64.deb
apt-get install -f -y
sudo dpkg -i nomachine_8.14.2_1_amd64.deb
apt-get install -f -y
sudo apt install wine
dpkg --add-architecture i386 && apt-get update && apt-get install wine32:i386
# Unnötige Pakete entfernen
apt-get autoremove -y
mkdir -p /var/bricsys
mkdir -p /var/tmp
chmod -R 777 /var/bricsys
chmod -R 777 /var/tmp
# Fortschritt speichern
echo "6" > "$PROGRESS_FILE"
fi
# Schritt 6: Wireguard client
if [ "$STEP" -eq 6 ]; then
cd /home/sebastian/Downloads/
wget https://github.com/UnnoTed/wireguird/releases/download/v1.0.0/wireguird_amd64.deb
sudo dpkg -i ./wireguird_amd64.deb
apt-get install -f -y
# Fortschritt speichern
echo "7" > "$PROGRESS_FILE"
fi
# Schritt 7: NFS
if [ "$STEP" -eq 7 ]; then
sudo apt install autofs -y
echo "/net /etc/auto.net --timeout=600" | sudo tee -a /etc/auto.master
systemctl restart autofs
systemctl enable autofs
~/symlink_manager.sh
# Fortschritt speichern
echo "8" > "$PROGRESS_FILE"
fi
# Schritt 8: offene arbeiten
if [ "$STEP" -eq 8 ]; then
echo "- Drucuker installieren"
echo "- Bricscad installieren mit dem lizenzserver.zell-cloud.de"
echo "- Wireguard conf importieren"
echo "- SQL Server konfigurieren für Fakturama"
echo "- SQL Server konfigurieren für Gnu-Cash"
# Fortschritt speichern
echo "9" > "$PROGRESS_FILE"
fi
echo "Installation abgeschlossen!"