49 lines
2.1 KiB
Bash
Executable File
49 lines
2.1 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 "")
|
|
MATTERMOST_WEBHOOK=$(zenity --entry --title "Mattermost" --text "Entrez l'URL du webhook Mattermost :" --entry-text "https://mattermost.yeagerdan.com/hooks/c5nmzrf64fd33b1iqnm6zmt48o")
|
|
|
|
# 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 un fichier d'inventaire temporaire
|
|
INVENTORY_FILE=$(mktemp)
|
|
|
|
# Crée le fichier d'inventaire avec les informations fournies
|
|
cat > "$INVENTORY_FILE" <<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
|
|
|
|
# Lance le playbook avec forçage de l'authentification par mot de passe
|
|
SSH_AUTH_SOCK= ansible-playbook -i "$INVENTORY_FILE" playbooks/fail2ban.yml \
|
|
--extra-vars "ssh_port=$SSH_PORT mattermost_webhook=$MATTERMOST_WEBHOOK" \
|
|
-e 'ansible_ssh_common_args="-o PreferredAuthentications=password -o PubkeyAuthentication=no"' \
|
|
--ask-vault-pass
|
|
|
|
# Supprimer le fichier temporaire après utilisation
|
|
rm -f "$INVENTORY_FILE"
|
|
|
|
# Affiche un message de succès
|
|
zenity --info --title "Installation terminée" --text "Fail2ban a été installé et configuré sur $IP_SERVER."
|
|
|
|
if [ ! -f "$INVENTORY_FILE" ]; then
|
|
echo "Le fichier inventaire a été supprimé avec succès."
|
|
else
|
|
echo "Erreur : le fichier inventaire n'a pas pu être supprimé."
|
|
fi
|
|
|