5.2 KiB
🐧 Debian Base
✨ Scripts utiles pour préparer rapidement une base serveur Debian sans environnement graphique.
🎯 Objectif
Ce dépôt regroupe des scripts Bash pour automatiser les tâches courantes de préparation, configuration et maintenance d'une base serveur Debian minimaliste.
L'objectif est de garder une collection de scripts :
- 🧱 simples à lire et à auditer ;
- 🔐 exécutables explicitement avec les privilèges nécessaires ;
- 🧭 adaptés à des serveurs sans environnement graphique ;
- 📚 documentés dans ce README au fur et à mesure des ajouts.
🧰 Scripts disponibles
| Script | Rôle |
|---|---|
configure-debian-network.sh |
Configurer le hostname, l'IP statique, la gateway et les DNS |
install-docker-ce.sh |
Installer Docker CE depuis le dépôt officiel Docker |
Le script réseau cible une installation serveur Debian classique utilisant :
- 📄
/etc/network/interfaces - ⚙️ le service
networking - 🔐 une exécution en root via
sudo
Il ne vise pas les postes avec NetworkManager, interface graphique ou gestion réseau desktop.
Si dhcpcd est présent ou si /etc/resolv.conf est généré par dhcpcd, le script ajoute aussi un bloc statique dédié dans /etc/dhcpcd.conf et un hook /etc/dhcpcd.exit-hook afin que les DNS soient conservés après régénération.
Si systemd-resolved est détecté, le script écrit également une configuration persistante dans /etc/systemd/resolved.conf.d/99-configure-debian-network.conf.
🚀 Utilisation réseau
Configurer la base réseau :
sudo ./configure-debian-network.sh
Le script réseau demande les informations une par une :
Nom de la machine (laisser vide pour ne pas modifier):
Adresse IP avec préfixe CIDR (ex: 192.168.1.50/24, laisser vide pour ne pas modifier le réseau):
Gateway (ex: 192.168.1.1):
Utiliser la gateway 192.168.1.1 comme serveur DNS ? [Y/n]:
Exemples de cas d'usage :
| Besoin | Action |
|---|---|
| 🏷️ Modifier uniquement le hostname | Renseigner le hostname, laisser l'IP vide |
| 🌐 Modifier uniquement le réseau | Laisser le hostname vide, renseigner l'IP |
| 🛠️ Modifier hostname et réseau | Renseigner toutes les informations |
| 💤 Ne rien changer | Laisser hostname et IP vides |
Si le hostname est modifié, le script propose un redémarrage complet de la machine afin que le nouveau nom soit pris en compte par tous les services.
🐳 Installation Docker CE
Installer Docker CE depuis le dépôt officiel Docker :
sudo ./install-docker-ce.sh
Le script demande ensuite les utilisateurs à ajouter au groupe docker. Laisser la réponse vide permet de n'ajouter aucun utilisateur.
Installer Docker CE et ajouter directement un ou plusieurs utilisateurs au groupe docker :
sudo ./install-docker-ce.sh olivier
sudo ./install-docker-ce.sh olivier deploy
Le script Docker effectue les actions suivantes :
- 🧹 suppression des anciens paquets Docker conflictuels si présents ;
- 🔑 ajout de la clé GPG officielle Docker dans
/etc/apt/keyrings/docker.asc; - 📦 ajout du dépôt APT officiel via
/etc/apt/sources.list.d/docker.sources; - 🐳 installation de
docker-ce,docker-ce-clietcontainerd.io; - 🧩 installation des plugins
docker-buildx-pluginetdocker-compose-plugin; - ⚙️ activation et démarrage du service
docker; - 👥 ajout optionnel des utilisateurs choisis au groupe
docker.
Vérification après installation :
docker --version
docker compose version
systemctl status docker
Si un utilisateur est ajouté au groupe docker, il doit ouvrir une nouvelle session avant de pouvoir utiliser Docker sans sudo.
🛟 Sauvegardes
Avant modification, le script sauvegarde les fichiers concernés avec un suffixe date :
/etc/hostname.bak.YYYYMMDD-HHMMSS
/etc/hosts.bak.YYYYMMDD-HHMMSS
/etc/network/interfaces.bak.YYYYMMDD-HHMMSS
/etc/dhcpcd.conf.bak.YYYYMMDD-HHMMSS
/etc/dhcpcd.exit-hook.bak.YYYYMMDD-HHMMSS
/etc/systemd/resolved.conf.d/99-configure-debian-network.conf.bak.YYYYMMDD-HHMMSS
/etc/resolv.conf.bak.YYYYMMDD-HHMMSS
Seuls les fichiers nécessaires sont sauvegardés selon les options choisies.
✅ Validation
Vérification syntaxique :
bash -n configure-debian-network.sh
bash -n install-docker-ce.sh
Vérification manuelle recommandée après exécution :
hostnamectl
ip addr
ip route
cat /etc/resolv.conf
📝 Notes Debian
Le script est adapté aux serveurs Debian minimalistes. Sur une machine utilisant NetworkManager ou systemd-networkd, il faut utiliser le backend réseau correspondant plutôt que modifier directement /etc/network/interfaces.
⚖️ Licence
Ce projet est distribué sous licence GNU Affero General Public License v3.0.
Voir LICENSE pour le texte complet.