From e11a1b6b24b5684acc2dac85ef5d08d1675c7a1b Mon Sep 17 00:00:00 2001 From: admManuel Date: Wed, 7 May 2025 06:52:31 +0000 Subject: [PATCH] Update Ansible/requirement-check.sh --- Ansible/requirement-check.sh | 96 +++++++++++++++++------------------- 1 file changed, 45 insertions(+), 51 deletions(-) diff --git a/Ansible/requirement-check.sh b/Ansible/requirement-check.sh index 6bd69b3..5180d78 100644 --- a/Ansible/requirement-check.sh +++ b/Ansible/requirement-check.sh @@ -10,8 +10,8 @@ NC='\033[0m' # No Color # Prüfe, ob das Script mit Root-Rechten ausgeführt wird check_root() { if [ "$(id -u)" != "0" ]; then - echo "${RED}Dieses Script benötigt Root-Rechte für Installationen.${NC}" - echo "Bitte starte es erneut mit: sudo $0" + printf "${RED}Dieses Script benötigt Root-Rechte für Installationen.${NC}\n" + printf "Bitte starte es erneut mit: sudo $0\n" exit 1 fi } @@ -40,7 +40,7 @@ install_package() { local pkg_manager=$1 local pkg_name=$2 - echo "${BLUE}Installiere $pkg_name...${NC}" + printf "${BLUE}Installiere $pkg_name...${NC}\n" case $pkg_manager in apt) @@ -59,28 +59,27 @@ install_package() { apk add $pkg_name ;; *) - echo "${RED}Unbekannter Paketmanager. Installation nicht möglich.${NC}" + printf "${RED}Unbekannter Paketmanager. Installation nicht möglich.${NC}\n" return 1 ;; esac if [ $? -eq 0 ]; then - echo "${GREEN}$pkg_name erfolgreich installiert.${NC}" + printf "${GREEN}$pkg_name erfolgreich installiert.${NC}\n" return 0 else - echo "${RED}Fehler bei der Installation von $pkg_name.${NC}" + printf "${RED}Fehler bei der Installation von $pkg_name.${NC}\n" return 1 fi } # Hauptprogramm -echo "${BLUE}=== Überprüfung der Systemvoraussetzungen ===${NC}" -echo +printf "${BLUE}=== Überprüfung der Systemvoraussetzungen ===${NC}\n\n" # Erkenne den Paketmanager PKG_MANAGER=$(detect_package_manager) if [ "$PKG_MANAGER" = "unknown" ]; then - echo "${RED}Konnte keinen bekannten Paketmanager erkennen.${NC}" + printf "${RED}Konnte keinen bekannten Paketmanager erkennen.${NC}\n" echo "Bitte installiere fehlende Pakete manuell." need_manual_installation=true else @@ -93,21 +92,20 @@ missing_packages="" missing_ssh=false # 1. Prüfe bash -echo -n "Prüfe bash... " +printf "Prüfe bash... " if command -v bash >/dev/null 2>&1; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Nicht gefunden✗${NC}" + printf "${RED}Nicht gefunden✗${NC}\n" missing_packages="$missing_packages bash" fi # 2. Prüfe python3 -echo -n "Prüfe python3... " +printf "Prüfe python3... " if command -v python3 >/dev/null 2>&1; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Nicht gefunden✗${NC}" - # Paketname für verschiedene Distributionen anpassen + printf "${RED}Nicht gefunden✗${NC}\n" python_pkg="python3" if [ "$PKG_MANAGER" = "pacman" ]; then python_pkg="python" @@ -116,20 +114,20 @@ else fi # 3. Prüfe sudo -echo -n "Prüfe sudo... " +printf "Prüfe sudo... " if command -v sudo >/dev/null 2>&1; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Nicht gefunden✗${NC}" + printf "${RED}Nicht gefunden✗${NC}\n" missing_packages="$missing_packages sudo" fi # 4. Prüfe openssh-server -echo -n "Prüfe openssh-server... " +printf "Prüfe openssh-server... " if systemctl status sshd >/dev/null 2>&1 || service ssh status >/dev/null 2>&1 || ps aux | grep -v grep | grep -q sshd; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Nicht gefunden✗${NC}" + printf "${RED}Nicht gefunden✗${NC}\n" missing_ssh=true ssh_pkg="openssh-server" if [ "$PKG_MANAGER" = "pacman" ] || [ "$PKG_MANAGER" = "apk" ]; then @@ -141,26 +139,24 @@ fi # Installation nur durchführen, wenn tatsächlich Pakete fehlen if [ -n "$missing_packages" ] && [ "$need_manual_installation" = "false" ]; then echo - echo "${BLUE}Die folgenden Pakete müssen installiert werden:${NC}" + printf "${BLUE}Die folgenden Pakete müssen installiert werden:${NC}\n" echo "$missing_packages" echo # Frage nach Bestätigung - echo -n "Möchtest du diese Pakete jetzt installieren? (j/N): " + printf "Möchtest du diese Pakete jetzt installieren? (j/N): " read -r answer if [ "$answer" = "j" ] || [ "$answer" = "J" ] || [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then - # Check for root only if we need to install check_root - # Paketmanager aktualisieren - echo "${BLUE}Aktualisiere Paketlisten...${NC}" + printf "${BLUE}Aktualisiere Paketlisten...${NC}\n" case $PKG_MANAGER in apt) apt update ;; dnf|yum) - $PKG_MANAGER check-update || true # Ignoriere Exit-Code + $PKG_MANAGER check-update || true ;; pacman) pacman -Sy @@ -174,66 +170,64 @@ if [ -n "$missing_packages" ] && [ "$need_manual_installation" = "false" ]; then esac echo - # Installiere alle fehlenden Pakete for pkg in $missing_packages; do install_package "$PKG_MANAGER" "$pkg" done - # SSH-Server starten falls nötig if [ "$missing_ssh" = "true" ]; then - echo "${BLUE}Starte SSH-Server...${NC}" + printf "${BLUE}Starte SSH-Server...${NC}\n" if command -v systemctl >/dev/null 2>&1; then systemctl enable --now sshd || systemctl enable --now ssh elif command -v service >/dev/null 2>&1; then service ssh start || service sshd start else - echo "${YELLOW}Konnte SSH-Server nicht automatisch starten.${NC}" + printf "${YELLOW}Konnte SSH-Server nicht automatisch starten.${NC}\n" echo "Bitte starte den SSH-Server manuell." fi fi echo - echo "${BLUE}=== Abschließende Überprüfung ===${NC}" + printf "${BLUE}=== Abschließende Überprüfung ===${NC}\n" all_requirements_met=true - echo -n "bash: " + printf "bash: " if command -v bash >/dev/null 2>&1; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Fehlt trotz Installationsversuch!${NC}" + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" all_requirements_met=false fi - echo -n "python3: " + printf "python3: " if command -v python3 >/dev/null 2>&1; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Fehlt trotz Installationsversuch!${NC}" + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" all_requirements_met=false fi - echo -n "sudo: " + printf "sudo: " if command -v sudo >/dev/null 2>&1; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Fehlt trotz Installationsversuch!${NC}" + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" all_requirements_met=false fi - echo -n "openssh-server: " + printf "openssh-server: " if systemctl status sshd >/dev/null 2>&1 || service ssh status >/dev/null 2>&1 || ps aux | grep -v grep | grep -q sshd; then - echo "${GREEN}Vorhanden✓${NC}" + printf "${GREEN}Vorhanden✓${NC}\n" else - echo "${RED}Fehlt trotz Installationsversuch!${NC}" + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" all_requirements_met=false fi echo if $all_requirements_met; then - echo "${GREEN}Alle Voraussetzungen sind erfüllt. System ist bereit!${NC}" + printf "${GREEN}Alle Voraussetzungen sind erfüllt. System ist bereit!${NC}\n" else - echo "${RED}Nicht alle Voraussetzungen konnten installiert werden.${NC}" + printf "${RED}Nicht alle Voraussetzungen konnten installiert werden.${NC}\n" echo "Bitte installiere die fehlenden Pakete manuell." exit 1 fi @@ -242,10 +236,10 @@ if [ -n "$missing_packages" ] && [ "$need_manual_installation" = "false" ]; then fi elif [ -z "$missing_packages" ]; then echo - echo "${GREEN}Alle Voraussetzungen sind bereits erfüllt. Keine Installation notwendig.${NC}" + printf "${GREEN}Alle Voraussetzungen sind bereits erfüllt. Keine Installation notwendig.${NC}\n" else echo - echo "${YELLOW}Fehlende Pakete:${NC}" + printf "${YELLOW}Fehlende Pakete:${NC}\n" echo "$missing_packages" - echo "${YELLOW}Bitte installiere diese Pakete manuell mit deinem Paketmanager.${NC}" -fi \ No newline at end of file + printf "${YELLOW}Bitte installiere diese Pakete manuell mit deinem Paketmanager.${NC}\n" +fi