44 lines
1.6 KiB
Bash
Executable File
44 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Demander les informations avec Zenity
|
|
USER_INPUT=$(zenity --forms --title="Configuration Fail2ban" \
|
|
--text="Remplissez les informations pour l'installation" \
|
|
--add-entry="Adresse IP du serveur" \
|
|
--add-entry="Utilisateur SSH" \
|
|
--add-entry="Mot de passe SSH" \
|
|
--add-entry="Port SSH" \
|
|
--add-entry="Webhook Mattermost" \
|
|
--separator=",")
|
|
|
|
# Vérifier si l'utilisateur a annulé
|
|
if [ $? -ne 0 ]; then
|
|
echo "Opération annulée."
|
|
exit 1
|
|
fi
|
|
|
|
# Extraire les valeurs
|
|
IP_SERVER=$(echo "$USER_INPUT" | cut -d',' -f1)
|
|
SSH_USER=$(echo "$USER_INPUT" | cut -d',' -f2)
|
|
SSH_PASS=$(echo "$USER_INPUT" | cut -d',' -f3)
|
|
SSH_PORT=$(echo "$USER_INPUT" | cut -d',' -f4)
|
|
MATTERMOST_WEBHOOK=$(echo "$USER_INPUT" | cut -d',' -f5)
|
|
|
|
# Vérifier que toutes les valeurs sont renseignées
|
|
if [[ -z "$IP_SERVER" || -z "$SSH_USER" || -z "$SSH_PASS" || -z "$SSH_PORT" || -z "$MATTERMOST_WEBHOOK" ]]; then
|
|
zenity --error --text="Toutes les informations doivent être remplies !" --width=300
|
|
exit 1
|
|
fi
|
|
|
|
# Générer un 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 avec les variables dynamiques
|
|
ansible-playbook -i inventory.ini playbooks/fail2ban.yml --extra-vars "ssh_port=$SSH_PORT mattermost_webhook=$MATTERMOST_WEBHOOK"
|
|
|
|
# Informer l'utilisateur que l'installation est terminée
|
|
zenity --info --text="Fail2ban a été installé et configuré sur $IP_SERVER !" --width=300
|
|
|