client_install_programme_ubuntu.sh aktualisiert
This commit is contained in:
parent
4fc59c2f80
commit
02cf824a55
|
|
@ -1,27 +1,24 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# ================================
|
# ================================
|
||||||
# Skript zur Konfiguration von Debian
|
# Skript zur Konfiguration von Ubuntu 24.04 (Noble)
|
||||||
# ================================
|
# ================================
|
||||||
# Beschreibung:
|
|
||||||
# Dieses Skript aktualisiert die Quellenliste, fügt neue Repositorys hinzu,
|
|
||||||
# installiert notwendige Softwarepakete über APT und Flatpak, und installiert
|
|
||||||
# zusätzliche .deb-Pakete.
|
|
||||||
|
|
||||||
# Farben für farbige Terminalausgaben definieren
|
# Farben
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
NC='\033[0m' # Keine Farbe
|
NC='\033[0m' # Keine Farbe
|
||||||
|
|
||||||
# System aktualisieren
|
# ================================
|
||||||
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
|
# KONFIGURATION & VARIABLEN
|
||||||
|
# ================================
|
||||||
|
|
||||||
# Variablen
|
# ecoDMS Repository für Ubuntu 24.04 (Noble)
|
||||||
SOURCES_FILE="/etc/apt/sources.list"
|
ECODMS_REPO="deb http://www.ecodms.de/ecodms_250264/noble /"
|
||||||
NEW_CONTENT=$(cat <<EOF
|
ECODMS_LIST="/etc/apt/sources.list.d/ecodms.list"
|
||||||
deb http://www.ecodms.de/ecodms_240264/noble /
|
|
||||||
EOF
|
DOWNLOAD_DIR="$HOME/deb_packages"
|
||||||
)
|
|
||||||
|
|
||||||
APT_PACKAGES=(
|
APT_PACKAGES=(
|
||||||
"vlc"
|
"vlc"
|
||||||
|
|
@ -32,7 +29,7 @@ APT_PACKAGES=(
|
||||||
"gimp"
|
"gimp"
|
||||||
"nextcloud-desktop"
|
"nextcloud-desktop"
|
||||||
"gnucash"
|
"gnucash"
|
||||||
"chromium"
|
"chromium-browser" # Bei Ubuntu heißt das Paket oft chromium-browser (oder ist ein Snap transition package)
|
||||||
"curl"
|
"curl"
|
||||||
"ttf-mscorefonts-installer"
|
"ttf-mscorefonts-installer"
|
||||||
"ecodmsclient"
|
"ecodmsclient"
|
||||||
|
|
@ -40,6 +37,8 @@ APT_PACKAGES=(
|
||||||
"wine64"
|
"wine64"
|
||||||
"terminator"
|
"terminator"
|
||||||
"gedit"
|
"gedit"
|
||||||
|
"network-manager"
|
||||||
|
"software-properties-common" # Für add-apt-repository
|
||||||
)
|
)
|
||||||
|
|
||||||
SNAP_PACKAGES=(
|
SNAP_PACKAGES=(
|
||||||
|
|
@ -53,147 +52,197 @@ SNAP_PACKAGES=(
|
||||||
|
|
||||||
FLATPAK_PACKAGES=()
|
FLATPAK_PACKAGES=()
|
||||||
|
|
||||||
DOWNLOAD_DIR="$HOME/deb_packages"
|
|
||||||
|
|
||||||
# ================================
|
# ================================
|
||||||
# Funktionen
|
# FUNKTIONEN
|
||||||
# ================================
|
# ================================
|
||||||
|
|
||||||
# Funktion: Quellenliste aktualisieren
|
# 1. Quellenliste aktualisieren & ecoDMS
|
||||||
update_sources() {
|
update_sources() {
|
||||||
echo -e "${GREEN}Aktualisiere die Quellenliste...${NC}"
|
echo -e "${GREEN}System wird aktualisiert...${NC}"
|
||||||
echo "$NEW_CONTENT" | sudo tee "$SOURCES_FILE" > /dev/null
|
|
||||||
|
# Standard-Updates
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
|
||||||
|
echo -e "${GREEN}Füge ecoDMS Repository (Noble) hinzu...${NC}"
|
||||||
|
|
||||||
|
# GPG Key holen
|
||||||
|
wget -qO - http://www.ecodms.de/gpg/ecodms.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/ecodms.gpg
|
||||||
|
|
||||||
|
# Repo Datei erstellen
|
||||||
|
echo "$ECODMS_REPO" | sudo tee "$ECODMS_LIST" > /dev/null
|
||||||
|
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
echo -e "${RED}Fehler beim Aktualisieren der Quellenliste.${NC}"
|
echo -e "${RED}Fehler beim Hinzufügen des ecoDMS Repositories.${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${GREEN}GPG-Schlüssel hinzufügen...${NC}"
|
sudo apt update
|
||||||
wget -qO /etc/apt/trusted.gpg.d/ecodms.asc http://www.ecodms.de/gpg/ecodms.key || {
|
|
||||||
echo -e "${RED}Download des GPG-Schlüssels fehlgeschlagen.${NC}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion: System aktualisieren und Pakete installieren
|
# 2. APT Pakete installieren
|
||||||
install_apt_packages() {
|
install_apt_packages() {
|
||||||
echo -e "${GREEN}System wird aktualisiert...${NC}"
|
|
||||||
sudo apt update && sudo apt upgrade -y || {
|
|
||||||
echo -e "${RED}Fehler bei Systemaktualisierung.${NC}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
echo -e "${GREEN}Installiere APT-Pakete...${NC}"
|
echo -e "${GREEN}Installiere APT-Pakete...${NC}"
|
||||||
for PACKAGE in "${APT_PACKAGES[@]}"; do
|
for PACKAGE in "${APT_PACKAGES[@]}"; do
|
||||||
if sudo apt install -y "$PACKAGE"; then
|
# Check ob installiert
|
||||||
echo -e "${GREEN}$PACKAGE erfolgreich installiert.${NC}"
|
if dpkg -l | grep -q "^ii $PACKAGE "; then
|
||||||
|
echo -e "${GREEN}$PACKAGE ist bereits installiert.${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${RED}Fehler bei der Installation von $PACKAGE.${NC}"
|
sudo apt install -y "$PACKAGE" || echo -e "${RED}Fehler bei $PACKAGE (evtl. existiert es nur als Snap?).${NC}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion: Snap installieren und Pakete einrichten
|
# 3. Snap Pakete installieren
|
||||||
install_snap_packages() {
|
install_snap_packages() {
|
||||||
|
# Snap ist bei Ubuntu Standard, aber sicherheitshalber prüfen
|
||||||
if ! command -v snap &> /dev/null; then
|
if ! command -v snap &> /dev/null; then
|
||||||
echo -e "${GREEN}Snap wird installiert...${NC}"
|
echo -e "${GREEN}Snap wird installiert...${NC}"
|
||||||
sudo apt install -y snapd || {
|
sudo apt install -y snapd
|
||||||
echo -e "${RED}Fehler bei der Snap-Installation.${NC}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${GREEN}Installiere Snap-Pakete...${NC}"
|
echo -e "${GREEN}Installiere Snap-Pakete...${NC}"
|
||||||
for SNAP in "${SNAP_PACKAGES[@]}"; do
|
for SNAP in "${SNAP_PACKAGES[@]}"; do
|
||||||
if sudo snap install "$SNAP" --classic; then
|
sudo snap install "$SNAP" || sudo snap install "$SNAP" --classic
|
||||||
echo -e "${GREEN}$SNAP erfolgreich installiert.${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}Fehler bei der Installation von $SNAP.${NC}"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion: Flatpak installieren und Pakete einrichten
|
# 4. Flatpak installieren
|
||||||
install_flatpak_packages() {
|
install_flatpak_packages() {
|
||||||
if ! command -v flatpak &> /dev/null; then
|
if ! command -v flatpak &> /dev/null; then
|
||||||
echo -e "${GREEN}Flatpak wird installiert...${NC}"
|
echo -e "${GREEN}Flatpak wird installiert...${NC}"
|
||||||
sudo apt install -y flatpak || {
|
sudo apt install -y flatpak
|
||||||
echo -e "${RED}Fehler bei der Flatpak-Installation.${NC}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${GREEN}Installiere Flatpak-Pakete...${NC}"
|
|
||||||
for PACKAGE in "${FLATPAK_PACKAGES[@]}"; do
|
|
||||||
if flatpak install -y flathub "$PACKAGE"; then
|
|
||||||
echo -e "${GREEN}$PACKAGE erfolgreich installiert.${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}Fehler bei der Installation von $PACKAGE.${NC}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion: Zusätzliche .deb-Pakete herunterladen und installieren
|
# 5. DEB Pakete installieren
|
||||||
install_deb_packages() {
|
install_deb_packages() {
|
||||||
echo -e "${GREEN}Lade zusätzliche .deb-Pakete herunter...${NC}"
|
echo -e "${GREEN}Lade zusätzliche .deb-Pakete herunter...${NC}"
|
||||||
mkdir -p "$DOWNLOAD_DIR"
|
mkdir -p "$DOWNLOAD_DIR"
|
||||||
|
|
||||||
declare -A DEB_URLS=(
|
declare -A DEB_URLS=(
|
||||||
["shadow-amd64.deb"]="https://update.shadow.tech/launcher/prod/linux/x86_64/shadow-amd64.deb"
|
["shadow-amd64.deb"]="https://update.shadow.tech/launcher/prod/linux/x86_64/shadow-amd64.deb"
|
||||||
["nomachine.deb"]="https://download.nomachine.com/download/8.14/Linux/nomachine_8.14.2_1_amd64.deb"
|
["nomachine.deb"]="https://web9001.nomachine.com/download/9.3/Linux/nomachine_9.3.7_1_amd64.deb"
|
||||||
["xpipe.deb"]="https://github.com/xpipe-io/xpipe/releases/latest/download/xpipe-installer-linux-x86_64.deb"
|
["xpipe.deb"]="https://github.com/xpipe-io/xpipe/releases/latest/download/xpipe-installer-linux-x86_64.deb"
|
||||||
["rustdesk.deb"]="https://github.com/rustdesk/rustdesk/releases/download/1.3.6/rustdesk-1.3.6-x86_64.deb"
|
["rustdesk.deb"]="https://github.com/rustdesk/rustdesk/releases/download/1.4.4/rustdesk-1.4.4-x86_64.deb"
|
||||||
)
|
)
|
||||||
|
|
||||||
for FILE in "${!DEB_URLS[@]}"; do
|
for FILE in "${!DEB_URLS[@]}"; do
|
||||||
wget -O "$DOWNLOAD_DIR/$FILE" "${DEB_URLS[$FILE]}" || {
|
wget -O "$DOWNLOAD_DIR/$FILE" "${DEB_URLS[$FILE]}" || echo -e "${RED}Fehler bei Download von $FILE.${NC}"
|
||||||
echo -e "${RED}Fehler beim Herunterladen von $FILE.${NC}"
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
done
|
done
|
||||||
|
|
||||||
echo -e "${GREEN}Installiere .deb-Pakete...${NC}"
|
echo -e "${GREEN}Installiere .deb-Pakete...${NC}"
|
||||||
for DEB_FILE in "$DOWNLOAD_DIR"/*.deb; do
|
for DEB_FILE in "$DOWNLOAD_DIR"/*.deb; do
|
||||||
if sudo apt install -y "$DEB_FILE"; then
|
sudo apt install -y "$DEB_FILE" || sudo apt --fix-broken install -y
|
||||||
echo -e "${GREEN}$DEB_FILE erfolgreich installiert.${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}Fehler bei der Installation von $DEB_FILE.${NC}"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion: autofs einrichten
|
# 6. Netzwerk konfigurieren (NetworkManager)
|
||||||
autofs() {
|
configure_network() {
|
||||||
echo -e "${GREEN}Richte autofs ein...${NC}"
|
echo -e "${YELLOW}=== Netzwerkkonfiguration ===${NC}"
|
||||||
sudo apt install -y autofs || {
|
|
||||||
echo -e "${RED}Fehler bei der Installation von autofs.${NC}"
|
# Aktives Interface finden
|
||||||
exit 1
|
INTERFACE=$(ip -o -4 route show to default | awk '{print $5}' | head -n1)
|
||||||
}
|
|
||||||
echo "/net /etc/auto.net --timeout=600" | sudo tee -a /etc/auto.master
|
if [ -z "$INTERFACE" ]; then
|
||||||
systemctl restart autofs
|
echo -e "${RED}Kein aktives Netzwerk-Interface gefunden! Überspringe Netzwerkkonfiguration.${NC}"
|
||||||
systemctl enable autofs
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "Aktives Interface erkannt: ${GREEN}$INTERFACE${NC}"
|
||||||
|
|
||||||
|
# Verbindungsprofil ermitteln
|
||||||
|
CON_NAME=$(nmcli -t -f NAME,DEVICE connection show --active | grep ":$INTERFACE" | cut -d: -f1 | head -n1)
|
||||||
|
|
||||||
|
if [ -z "$CON_NAME" ]; then
|
||||||
|
echo -e "${RED}Kein NetworkManager-Profil für $INTERFACE gefunden.${NC}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "Bearbeite Verbindung: ${GREEN}$CON_NAME${NC}"
|
||||||
|
|
||||||
|
# Eingabe der letzten Ziffer
|
||||||
|
while true; do
|
||||||
|
read -p "Bitte die letzte Zahl der IP-Adresse eingeben (192.168.176.XXX): " IP_SUFFIX
|
||||||
|
if [[ "$IP_SUFFIX" =~ ^[0-9]+$ ]] && [ "$IP_SUFFIX" -ge 1 ] && [ "$IP_SUFFIX" -le 254 ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo -e "${RED}Ungültige Eingabe. Bitte eine Zahl zwischen 1 und 254 eingeben.${NC}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
NEW_IP="192.168.176.$IP_SUFFIX"
|
||||||
|
GATEWAY="192.168.176.1"
|
||||||
|
DNS="192.168.176.101 192.168.174.101 1.1.1.1"
|
||||||
|
|
||||||
|
echo -e "${GREEN}Setze IP auf $NEW_IP...${NC}"
|
||||||
|
|
||||||
|
# Konfiguration anwenden
|
||||||
|
sudo nmcli con mod "$CON_NAME" \
|
||||||
|
ipv4.addresses "$NEW_IP/24" \
|
||||||
|
ipv4.gateway "$GATEWAY" \
|
||||||
|
ipv4.dns "$DNS" \
|
||||||
|
ipv4.method manual
|
||||||
|
|
||||||
|
echo -e "${GREEN}Netzwerkeinstellungen gespeichert.${NC}"
|
||||||
|
echo -e "${YELLOW}ACHTUNG: Die neuen Einstellungen werden erst nach einem Neustart der Verbindung aktiv.${NC}"
|
||||||
|
|
||||||
|
read -p "Soll die Verbindung jetzt neu gestartet werden? (j/n): " RESTART_NET
|
||||||
|
if [[ "$RESTART_NET" =~ ^[jJ]$ ]]; then
|
||||||
|
sudo nmcli con up "$CON_NAME"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion: Gemeinsamen Ordner einrichten
|
# 7. Univention Domain Join installieren (Ubuntu PPA Methode)
|
||||||
shared_dir() {
|
install_univention_join() {
|
||||||
SHARED_DIR="/home/shared"
|
echo -e "${YELLOW}=== Univention Domain Join Installation ===${NC}"
|
||||||
|
|
||||||
echo -e "${GREEN}Erstelle den gemeinsamen Ordner unter $SHARED_DIR...${NC}"
|
echo -e "${GREEN}Füge Univention PPA hinzu...${NC}"
|
||||||
|
# -y flag akzeptiert automatisch die Bestätigung
|
||||||
|
sudo add-apt-repository -y ppa:univention-dev/ppa
|
||||||
|
|
||||||
|
echo -e "${GREEN}Aktualisiere Paketquellen...${NC}"
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
|
echo -e "${GREEN}Installiere univention-domain-join...${NC}"
|
||||||
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y univention-domain-join
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}Univention Domain Join erfolgreich installiert.${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}Fehler bei der Installation von Univention Domain Join.${NC}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 8. Autofs & Shared Dir
|
||||||
|
setup_system_extras() {
|
||||||
|
echo -e "${GREEN}Richte autofs ein...${NC}"
|
||||||
|
sudo apt install -y autofs
|
||||||
|
if ! grep -q "/net /etc/auto.net" /etc/auto.master; then
|
||||||
|
echo "/net /etc/auto.net --timeout=600" | sudo tee -a /etc/auto.master
|
||||||
|
fi
|
||||||
|
systemctl restart autofs
|
||||||
|
systemctl enable autofs
|
||||||
|
|
||||||
|
SHARED_DIR="/home/shared"
|
||||||
|
if [ ! -d "$SHARED_DIR" ]; then
|
||||||
sudo mkdir -p "$SHARED_DIR"
|
sudo mkdir -p "$SHARED_DIR"
|
||||||
sudo chmod 1777 "$SHARED_DIR"
|
sudo chmod 1777 "$SHARED_DIR"
|
||||||
echo -e "${GREEN}Der Ordner $SHARED_DIR wurde erfolgreich erstellt und konfiguriert.${NC}"
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# ================================
|
# ================================
|
||||||
# Hauptskript
|
# HAUPTABLAUF
|
||||||
# ================================
|
# ================================
|
||||||
update_sources
|
update_sources
|
||||||
install_apt_packages
|
install_apt_packages
|
||||||
install_snap_packages
|
install_snap_packages
|
||||||
install_flatpak_packages
|
install_flatpak_packages
|
||||||
install_deb_packages
|
install_deb_packages
|
||||||
autofs
|
setup_system_extras
|
||||||
shared_dir
|
|
||||||
|
|
||||||
echo -e "${GREEN}Skript abgeschlossen.${NC}"
|
# Interaktive Teile am Ende
|
||||||
|
configure_network
|
||||||
|
install_univention_join
|
||||||
|
|
||||||
|
echo -e "${GREEN}Skript vollständig abgeschlossen.${NC}"
|
||||||
Loading…
Reference in New Issue