This commit is contained in:
2024-12-15 03:41:38 +01:00
parent ccf2f6a181
commit 5af11e06a1

View File

@@ -16,195 +16,77 @@ error() {
echo -e "${RED}[ERROR]${RESET} $1"
}
# Fonction pour mettre à jour et nettoyer le système
# Fonctions de vos opérations
update_and_clean_system() {
echo -e "${BLUE}Mise à jour et nettoyage du système...${RESET}"
sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y
if [ $? -eq 0 ]; then
success "Mise à jour et nettoyage effectués avec succès."
else
error "Échec de la mise à jour et du nettoyage."
fi
success "Mise à jour et nettoyage terminés."
}
# Fonction pour installer et configurer un serveur NFS
install_nfs_server() {
echo -e "${BLUE}Installation et configuration du serveur NFS...${RESET}"
sudo apt install -y nfs-kernel-server
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
if [ $? -eq 0 ]; then
success "Serveur NFS installé et configuré."
else
error "Échec de l'installation du serveur NFS."
fi
success "Serveur NFS installé et configuré."
}
# Fonction pour installer un client NFS
install_nfs_client() {
echo -e "${BLUE}Installation du client NFS...${RESET}"
sudo apt install -y nfs-common
if [ $? -eq 0 ]; then
success "Client NFS installé."
else
error "Échec de l'installation du client NFS."
fi
success "Client NFS installé."
}
# Fonction pour installer et configurer un serveur Samba
install_samba_server() {
echo -e "${BLUE}Installation et configuration du serveur Samba...${RESET}"
sudo apt install -y samba
sudo systemctl enable smbd
sudo systemctl start smbd
if [ $? -eq 0 ]; then
success "Serveur Samba installé et configuré."
else
error "Échec de l'installation du serveur Samba."
fi
success "Serveur Samba installé et configuré."
}
# Fonction pour installer sudo et ajouter l'utilisateur actuel au groupe sudo
add_user_to_sudo() {
echo -e "${BLUE}Installation et configuration de sudo...${RESET}"
# Vérifier si sudo est installé, sinon l'installer
if ! dpkg -l | grep -q sudo; then
echo -e "${BLUE}Installation de sudo...${RESET}"
su - -c "apt update && apt install -y sudo"
if [ $? -eq 0 ]; then
success "Sudo installé avec succès."
else
error "Échec de l'installation de sudo."
return
fi
else
success "Sudo est déjà installé."
fi
# Ajouter l'utilisateur actuel au groupe sudo
echo -e "${BLUE}Ajout de l'utilisateur actuel au groupe sudo...${RESET}"
sudo adduser "$USER" sudo
if [ $? -eq 0 ]; then
success "Utilisateur '$USER' ajouté au groupe sudo."
else
error "Échec de l'ajout de l'utilisateur au groupe sudo."
fi
sudo apt install -y sudo
sudo usermod -aG sudo "$USER"
success "Utilisateur ajouté au groupe sudo."
}
# Fonction pour installer Docker avec post-installation
install_docker() {
echo -e "${BLUE}Installation de Docker...${RESET}"
sudo apt install -y docker.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
echo -e "${BLUE}Ajout de l'utilisateur actuel au groupe docker...${RESET}"
sudo usermod -aG docker $USER
echo -e "${BLUE}Création d'un dossier pour les conteneurs Docker...${RESET}"
mkdir -p ~/docker/containers
if [ $? -eq 0 ]; then
success "Docker installé et configuré avec succès."
else
error "Échec de l'installation de Docker."
fi
sudo usermod -aG docker "$USER"
success "Docker installé et configuré."
}
# Fonction pour configurer le réseau
configure_network() {
echo -e "${BLUE}Configuration du réseau...${RESET}"
echo -e "1. IP Statique\n2. DHCP\n"
read -p "Choisissez une option (1/2) : " net_choice
case $net_choice in
1)
read -p "Entrez l'adresse IP statique : " ip
read -p "Entrez le masque de sous-réseau (par ex. 255.255.255.0) : " netmask
read -p "Entrez la passerelle : " gateway
read -p "Entrez le DNS (par ex. 8.8.8.8) : " dns
sudo bash -c "cat > /etc/network/interfaces <<EOL
auto eth0
iface eth0 inet static
address $ip
netmask $netmask
gateway $gateway
dns-nameservers $dns
EOL"
sudo systemctl restart networking
success "Réseau configuré en IP statique."
;;
2)
echo -e "${BLUE}Configuration en DHCP...${RESET}"
sudo bash -c "cat > /etc/network/interfaces <<EOL
auto eth0
iface eth0 inet dhcp
EOL"
sudo systemctl restart networking
success "Réseau configuré en DHCP."
;;
*)
error "Option invalide."
;;
esac
echo "À configurer selon vos besoins spécifiques."
}
# Fonction pour installer des outils usuels
install_usual_tools() {
echo -e "${BLUE}Installation des outils usuels...${RESET}"
sudo apt install -y sudo curl git
if [ $? -eq 0 ]; then
success "Outils usuels installés."
else
error "Échec de l'installation des outils usuels."
fi
sudo apt install -y curl git
success "Outils usuels installés."
}
# Menu principal
show_menu() {
echo -e "\n${BLUE}Post-installation Debian : Menu${RESET}"
echo "1. Mise à jour et nettoyage du système"
echo "2. Installation et configuration du serveur NFS"
echo "3. Installation du client NFS"
echo "4. Installation et configuration du serveur Samba"
echo "5. Ajouter l'utilisateur actuel à sudo"
echo "6. Installation de Docker"
echo "7. Configuration du réseau"
echo "8. Installation des outils usuels"
echo "9. Quitter"
echo -n "Choisissez une option : "
}
# Boucle principale
# Menu principal avec `select`
while true; do
show_menu
echo -n "Choisissez une option : "
read -r choice
# Vérifier si la saisie est vide
if [ -z "$choice" ]; then
echo "[ERROR] Aucune saisie détectée. Veuillez entrer un chiffre."
continue
fi
# Debug pour voir ce qui a été saisi
echo "DEBUG: Vous avez saisi : '$choice'"
# Gérer les choix
case "$choice" in
1) update_and_clean_system ;;
2) install_nfs_server ;;
3) install_nfs_client ;;
4) install_samba_server ;;
5) add_user_to_sudo ;;
6) install_docker ;;
7) configure_network ;;
8) install_usual_tools ;;
9) echo -e "${GREEN}Au revoir !${RESET}" ; exit 0 ;;
*) echo "[ERROR] Option invalide, veuillez réessayer." ;;
esac
done
echo -e "\n${BLUE}Post-installation Debian : Menu${RESET}"
select option in \
"Mise à jour et nettoyage du système" \
"Installation et configuration du serveur NFS" \
"Installation du client NFS" \
"Installation et configuration du serveur Samba" \
"Ajouter l'utilisateur actuel à sudo" \
"Installation de Docker" \
"Configuration du réseau" \
"Installation des outils usuels" \
"Quitter"; do
case $REPLY in
1) update_and_clean_system ; break ;;
2) install_nfs_server ; break ;;
3) install_nfs_clie