diff --git a/Ansible/requirement-check.sh b/Ansible/requirement-check.sh index 71fff85..be91d82 100644 --- a/Ansible/requirement-check.sh +++ b/Ansible/requirement-check.sh @@ -106,9 +106,7 @@ if command -v python3 >/dev/null 2>&1; then else printf "${RED}Nicht gefunden ✗${NC}\n" python_pkg="python3" - if [ "$PKG_MANAGER" = "pacman" ]; then - python_pkg="python" - fi + [ "$PKG_MANAGER" = "pacman" ] && python_pkg="python" missing_packages="$missing_packages $python_pkg" fi @@ -123,15 +121,17 @@ fi # 4. 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 +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}Nicht gefunden ✗${NC}\n" missing_ssh=true ssh_pkg="openssh-server" - if [ "$PKG_MANAGER" = "pacman" ] || [ "$PKG_MANAGER" = "apk" ]; then - ssh_pkg="openssh" - fi + case $PKG_MANAGER in + pacman|apk) ssh_pkg="openssh" ;; + esac missing_packages="$missing_packages $ssh_pkg" fi @@ -141,6 +141,17 @@ if [ -n "$missing_packages" ]; then printf "${BLUE}Starte Installation der fehlenden Pakete...${NC}\n\n" check_root + # Bei Alpine: community-Repo für sudo aktivieren + if [ "$PKG_MANAGER" = "apk" ]; then + printf "${BLUE}Aktiviere community-Repository für sudo...${NC}\n" + # Alpine-Version ermitteln, z.B. "3.18" + ALPINE_VER=$(cut -d. -f1-2 /etc/alpine-release) + REPO_URL="http://dl-cdn.alpinelinux.org/alpine/v${ALPINE_VER}/community" + # Falls noch nicht vorhanden, hinzufügen + grep -qxF "$REPO_URL" /etc/apk/repositories || \ + echo "$REPO_URL" >> /etc/apk/repositories + fi + printf "${BLUE}Aktualisiere Paketlisten...${NC}\n" case $PKG_MANAGER in apt) @@ -165,6 +176,7 @@ if [ -n "$missing_packages" ]; then install_package "$PKG_MANAGER" "$pkg" done + # SSH-Server starten, falls nötig if [ "$missing_ssh" = "true" ]; then printf "${BLUE}Starte SSH-Server...${NC}\n" if command -v systemctl >/dev/null 2>&1; then @@ -177,42 +189,33 @@ if [ -n "$missing_packages" ]; then fi fi + # Abschließende Überprüfung echo 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 + command -v bash >/dev/null 2>&1 \ + && printf "${GREEN}Vorhanden ✓${NC}\n" \ + || { printf "${RED}Fehlt trotz Installationsversuch!${NC}\n"; all_requirements_met=false; } 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 + command -v python3 >/dev/null 2>&1 \ + && printf "${GREEN}Vorhanden ✓${NC}\n" \ + || { printf "${RED}Fehlt trotz Installationsversuch!${NC}\n"; all_requirements_met=false; } 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 + command -v sudo >/dev/null 2>&1 \ + && printf "${GREEN}Vorhanden ✓${NC}\n" \ + || { printf "${RED}Fehlt trotz Installationsversuch!${NC}\n"; all_requirements_met=false; } 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 + ( systemctl status sshd >/dev/null 2>&1 \ + || service ssh status >/dev/null 2>&1 \ + || ps aux | grep -v grep | grep -q sshd ) \ + && printf "${GREEN}Vorhanden ✓${NC}\n" \ + || { printf "${RED}Fehlt trotz Installationsversuch!${NC}\n"; all_requirements_met=false; } echo if $all_requirements_met; then @@ -222,6 +225,7 @@ if [ -n "$missing_packages" ]; then echo "Bitte installiere die fehlenden Pakete manuell." exit 1 fi + else echo printf "${GREEN}Alle Voraussetzungen sind bereits erfüllt. Keine Installation notwendig.${NC}\n"