prod/ansible/install_fail2ban.sh

33 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Vérifie si Zenity est installé, sinon l'installe
if ! command -v zenity &> /dev/null; then
echo "Zenity non trouvé, installation..."
sudo apt update && sudo apt install -y zenity
fi
# Demande les infos via Zenity
IP_SERVER=$(zenity --entry --title "Configuration Serveur" --text "Entrez l'adresse IP du serveur :")
SSH_USER=$(zenity --entry --title "Configuration Serveur" --text "Entrez l'utilisateur SSH :")
SSH_PASS=$(zenity --password --title "Configuration Serveur" --text "Entrez le mot de passe SSH :")
SSH_PORT=$(zenity --entry --title "Configuration Serveur" --text "Entrez le port SSH (ex: 22) :" --entry-text "22")
MATTERMOST_WEBHOOK=$(zenity --entry --title "Mattermost" --text "Entrez l'URL du webhook Mattermost :")
# Vérifie si les variables sont vides
if [[ -z "$IP_SERVER" || -z "$SSH_USER" || -z "$SSH_PASS" || -z "$SSH_PORT" || -z "$MATTERMOST_WEBHOOK" ]]; then
zenity --error --title "Erreur" --text "Toutes les informations sont requises !"
exit 1
fi
# Crée le fichier d'inventaire dynamique
cat > inventory.ini <<EOL
[servers]
$IP_SERVER ansible_host=$IP_SERVER ansible_user=$SSH_USER ansible_password=$SSH_PASS ansible_port=$SSH_PORT ansible_become_password=$SSH_PASS
EOL
# Lancer le playbook Ansible
ansible-playbook -i inventory.ini playbooks/fail2ban.yml --extra-vars "ssh_port=$SSH_PORT mattermost_webhook=$MATTERMOST_WEBHOOK"
zenity --info --title "Installation terminée" --text "Fail2ban a été installé et configuré sur $IP_SERVER."