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" echo -e "${RED}[ERROR]${RESET} $1"
} }
# Fonction pour mettre à jour et nettoyer le système # Fonctions de vos opérations
update_and_clean_system() { update_and_clean_system() {
echo -e "${BLUE}Mise à jour et nettoyage du système...${RESET}" 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 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 terminés."
success "Mise à jour et nettoyage effectués avec succès."
else
error "Échec de la mise à jour et du nettoyage."
fi
} }
# Fonction pour installer et configurer un serveur NFS
install_nfs_server() { install_nfs_server() {
echo -e "${BLUE}Installation et configuration du serveur NFS...${RESET}" echo -e "${BLUE}Installation et configuration du serveur NFS...${RESET}"
sudo apt install -y nfs-kernel-server sudo apt install -y nfs-kernel-server
sudo systemctl enable nfs-server sudo systemctl enable nfs-server
sudo systemctl start nfs-server sudo systemctl start nfs-server
if [ $? -eq 0 ]; then success "Serveur NFS installé et configuré."
success "Serveur NFS installé et configuré."
else
error "Échec de l'installation du serveur NFS."
fi
} }
# Fonction pour installer un client NFS
install_nfs_client() { install_nfs_client() {
echo -e "${BLUE}Installation du client NFS...${RESET}" echo -e "${BLUE}Installation du client NFS...${RESET}"
sudo apt install -y nfs-common sudo apt install -y nfs-common
if [ $? -eq 0 ]; then success "Client NFS installé."
success "Client NFS installé."
else
error "Échec de l'installation du client NFS."
fi
} }
# Fonction pour installer et configurer un serveur Samba
install_samba_server() { install_samba_server() {
echo -e "${BLUE}Installation et configuration du serveur Samba...${RESET}" echo -e "${BLUE}Installation et configuration du serveur Samba...${RESET}"
sudo apt install -y samba sudo apt install -y samba
sudo systemctl enable smbd sudo systemctl enable smbd
sudo systemctl start smbd sudo systemctl start smbd
if [ $? -eq 0 ]; then success "Serveur Samba installé et configuré."
success "Serveur Samba installé et configuré."
else
error "Échec de l'installation du serveur Samba."
fi
} }
# Fonction pour installer sudo et ajouter l'utilisateur actuel au groupe sudo
add_user_to_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}" echo -e "${BLUE}Ajout de l'utilisateur actuel au groupe sudo...${RESET}"
sudo adduser "$USER" sudo sudo apt install -y sudo
if [ $? -eq 0 ]; then sudo usermod -aG sudo "$USER"
success "Utilisateur '$USER' ajouté au groupe sudo." success "Utilisateur ajouté au groupe sudo."
else
error "Échec de l'ajout de l'utilisateur au groupe sudo."
fi
} }
# Fonction pour installer Docker avec post-installation
install_docker() { install_docker() {
echo -e "${BLUE}Installation de Docker...${RESET}" echo -e "${BLUE}Installation de Docker...${RESET}"
sudo apt install -y docker.io docker-compose sudo apt install -y docker.io docker-compose
sudo systemctl enable docker sudo systemctl enable docker
sudo systemctl start docker sudo systemctl start docker
sudo usermod -aG docker "$USER"
echo -e "${BLUE}Ajout de l'utilisateur actuel au groupe docker...${RESET}" success "Docker installé et configuré."
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
} }
# Fonction pour configurer le réseau
configure_network() { configure_network() {
echo -e "${BLUE}Configuration du réseau...${RESET}" echo -e "${BLUE}Configuration du réseau...${RESET}"
echo -e "1. IP Statique\n2. DHCP\n" echo "À configurer selon vos besoins spécifiques."
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
} }
# Fonction pour installer des outils usuels
install_usual_tools() { install_usual_tools() {
echo -e "${BLUE}Installation des outils usuels...${RESET}" echo -e "${BLUE}Installation des outils usuels...${RESET}"
sudo apt install -y sudo curl git sudo apt install -y curl git
if [ $? -eq 0 ]; then success "Outils usuels installés."
success "Outils usuels installés."
else
error "Échec de l'installation des outils usuels."
fi
} }
# Menu principal # Menu principal avec `select`
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
while true; do while true; do
show_menu echo -e "\n${BLUE}Post-installation Debian : Menu${RESET}"
echo -n "Choisissez une option : " select option in \
read -r choice "Mise à jour et nettoyage du système" \
"Installation et configuration du serveur NFS" \
# Vérifier si la saisie est vide "Installation du client NFS" \
if [ -z "$choice" ]; then "Installation et configuration du serveur Samba" \
echo "[ERROR] Aucune saisie détectée. Veuillez entrer un chiffre." "Ajouter l'utilisateur actuel à sudo" \
continue "Installation de Docker" \
fi "Configuration du réseau" \
"Installation des outils usuels" \
# Debug pour voir ce qui a été saisi "Quitter"; do
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
case $REPLY in
1) update_and_clean_system ; break ;;
2) install_nfs_server ; break ;;
3) install_nfs_clie