133 lines
4.1 KiB
Markdown
133 lines
4.1 KiB
Markdown
# 🐧 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.
|
|
|
|
## 🚀 Utilisation réseau
|
|
|
|
Configurer la base réseau :
|
|
|
|
```bash
|
|
sudo ./configure-debian-network.sh
|
|
```
|
|
|
|
Le script réseau demande les informations une par une :
|
|
|
|
```text
|
|
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):
|
|
```
|
|
|
|
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 |
|
|
|
|
## 🐳 Installation Docker CE
|
|
|
|
Installer Docker CE depuis le dépôt officiel Docker :
|
|
|
|
```bash
|
|
sudo ./install-docker-ce.sh
|
|
```
|
|
|
|
Installer Docker CE et ajouter un utilisateur au groupe `docker` :
|
|
|
|
```bash
|
|
sudo ./install-docker-ce.sh olivier
|
|
```
|
|
|
|
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-cli` et `containerd.io` ;
|
|
- 🧩 installation des plugins `docker-buildx-plugin` et `docker-compose-plugin` ;
|
|
- ⚙️ activation et démarrage du service `docker`.
|
|
|
|
Vérification après installation :
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```text
|
|
/etc/hostname.bak.YYYYMMDD-HHMMSS
|
|
/etc/hosts.bak.YYYYMMDD-HHMMSS
|
|
/etc/network/interfaces.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
|
|
bash -n configure-debian-network.sh
|
|
bash -n install-docker-ce.sh
|
|
```
|
|
|
|
Vérification manuelle recommandée après exécution :
|
|
|
|
```bash
|
|
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](LICENSE) pour le texte complet.
|