diff --git a/Ansible/requirement-check.sh b/Ansible/requirement-check.sh index 7f70f4c..71fff85 100644 --- a/Ansible/requirement-check.sh +++ b/Ansible/requirement-check.sh @@ -81,10 +81,9 @@ PKG_MANAGER=$(detect_package_manager) if [ "$PKG_MANAGER" = "unknown" ]; then printf "${RED}Konnte keinen bekannten Paketmanager erkennen.${NC}\n" echo "Bitte installiere fehlende Pakete manuell." - need_manual_installation=true + exit 1 else echo "Erkannter Paketmanager: $PKG_MANAGER" - need_manual_installation=false fi # Initialisiere Variable für fehlende Pakete @@ -136,110 +135,94 @@ else missing_packages="$missing_packages $ssh_pkg" fi -# Installation nur durchführen, wenn tatsächlich Pakete fehlen -if [ -n "$missing_packages" ] && [ "$need_manual_installation" = "false" ]; then +# Installation der fehlenden Pakete (ohne Rückfrage) +if [ -n "$missing_packages" ]; then echo - printf "${BLUE}Die folgenden Pakete müssen installiert werden:${NC}\n" - echo "$missing_packages" + printf "${BLUE}Starte Installation der fehlenden Pakete...${NC}\n\n" + check_root + + printf "${BLUE}Aktualisiere Paketlisten...${NC}\n" + case $PKG_MANAGER in + apt) + apt update + ;; + dnf|yum) + $PKG_MANAGER check-update || true + ;; + pacman) + pacman -Sy + ;; + zypper) + zypper refresh + ;; + apk) + apk update + ;; + esac echo - # Frage nach Bestätigung - printf "Möchtest du diese Pakete jetzt installieren? (j/N): " - read -r answer + for pkg in $missing_packages; do + install_package "$PKG_MANAGER" "$pkg" + done - if [ "$answer" = "j" ] || [ "$answer" = "J" ] || [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then - check_root - - printf "${BLUE}Aktualisiere Paketlisten...${NC}\n" - case $PKG_MANAGER in - apt) - apt update - ;; - dnf|yum) - $PKG_MANAGER check-update || true - ;; - pacman) - pacman -Sy - ;; - zypper) - zypper refresh - ;; - apk) - apk update - ;; - esac - echo - - for pkg in $missing_packages; do - install_package "$PKG_MANAGER" "$pkg" - done - - if [ "$missing_ssh" = "true" ]; then - 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 - printf "${YELLOW}Konnte SSH-Server nicht automatisch starten.${NC}\n" - echo "Bitte starte den SSH-Server manuell." - fi - fi - - echo - printf "${BLUE}=== Abschließende Überprüfung ===${NC}\n" - - all_requirements_met=true - - printf "bash: " - if command -v bash >/dev/null 2>&1; then - printf "${GREEN}Vorhanden ✓${NC}\n" + if [ "$missing_ssh" = "true" ]; then + 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 - printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" - all_requirements_met=false + printf "${YELLOW}Konnte SSH-Server nicht automatisch starten.${NC}\n" + echo "Bitte starte den SSH-Server manuell." fi - - printf "python3: " - if command -v python3 >/dev/null 2>&1; then - printf "${GREEN}Vorhanden ✓${NC}\n" - else - printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" - all_requirements_met=false - fi - - printf "sudo: " - if command -v sudo >/dev/null 2>&1; then - printf "${GREEN}Vorhanden ✓${NC}\n" - else - printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" - all_requirements_met=false - fi - - 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 - printf "${GREEN}Vorhanden ✓${NC}\n" - else - printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" - all_requirements_met=false - fi - - echo - if $all_requirements_met; then - printf "${GREEN}Alle Voraussetzungen sind erfüllt. System ist bereit!${NC}\n" - else - printf "${RED}Nicht alle Voraussetzungen konnten installiert werden.${NC}\n" - echo "Bitte installiere die fehlenden Pakete manuell." - exit 1 - fi - else - echo "Installation abgebrochen." fi -elif [ -z "$missing_packages" ]; then + echo - printf "${GREEN}Alle Voraussetzungen sind bereits erfüllt. Keine Installation notwendig.${NC}\n" + printf "${BLUE}=== Abschließende Überprüfung ===${NC}\n\n" + + all_requirements_met=true + + printf "bash: " + if command -v bash >/dev/null 2>&1; then + printf "${GREEN}Vorhanden ✓${NC}\n" + else + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" + all_requirements_met=false + fi + + printf "python3: " + if command -v python3 >/dev/null 2>&1; then + printf "${GREEN}Vorhanden ✓${NC}\n" + else + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" + all_requirements_met=false + fi + + printf "sudo: " + if command -v sudo >/dev/null 2>&1; then + printf "${GREEN}Vorhanden ✓${NC}\n" + else + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" + all_requirements_met=false + fi + + 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 + printf "${GREEN}Vorhanden ✓${NC}\n" + else + printf "${RED}Fehlt trotz Installationsversuch!${NC}\n" + all_requirements_met=false + fi + + echo + if $all_requirements_met; then + printf "${GREEN}Alle Voraussetzungen sind erfüllt. System ist bereit!${NC}\n" + else + printf "${RED}Nicht alle Voraussetzungen konnten installiert werden.${NC}\n" + echo "Bitte installiere die fehlenden Pakete manuell." + exit 1 + fi else echo - printf "${YELLOW}Fehlende Pakete:${NC}\n" - echo "$missing_packages" - printf "${YELLOW}Bitte installiere diese Pakete manuell mit deinem Paketmanager.${NC}\n" + printf "${GREEN}Alle Voraussetzungen sind bereits erfüllt. Keine Installation notwendig.${NC}\n" fi