133 lines
4.0 KiB
Markdown
133 lines
4.0 KiB
Markdown
# 🐧 Debian Base
|
|
|
|

|
|

|
|

|
|

|
|
|
|
✨ Scripts utiles pour preparer rapidement une base serveur Debian sans environnement graphique.
|
|
|
|
## 🎯 Objectif
|
|
|
|
Ce depot regroupe des scripts Bash pour automatiser les taches courantes de preparation, configuration et maintenance d'une base serveur Debian minimaliste.
|
|
|
|
L'objectif est de garder une collection de scripts :
|
|
|
|
- 🧱 simples a lire et a auditer ;
|
|
- 🔐 executables explicitement avec les privileges necessaires ;
|
|
- 🧭 adaptes a des serveurs sans environnement graphique ;
|
|
- 📚 documentes dans ce README au fur et a mesure des ajouts.
|
|
|
|
## 🧰 Scripts disponibles
|
|
|
|
| Script | Role |
|
|
| --- | --- |
|
|
| `configure-debian-network.sh` | Configurer le hostname, l'IP statique, la gateway et les DNS |
|
|
| `install-docker-ce.sh` | Installer Docker CE depuis le depot officiel Docker |
|
|
|
|
Le script reseau cible une installation serveur Debian classique utilisant :
|
|
|
|
- 📄 `/etc/network/interfaces`
|
|
- ⚙️ le service `networking`
|
|
- 🔐 une execution en root via `sudo`
|
|
|
|
Il ne vise pas les postes avec NetworkManager, interface graphique ou gestion reseau desktop.
|
|
|
|
## 🚀 Utilisation reseau
|
|
|
|
Configurer la base reseau :
|
|
|
|
```bash
|
|
sudo ./configure-debian-network.sh
|
|
```
|
|
|
|
Le script reseau demande les informations une par une :
|
|
|
|
```text
|
|
Nom de la machine (laisser vide pour ne pas modifier):
|
|
Adresse IP avec prefixe CIDR (ex: 192.168.1.50/24, laisser vide pour ne pas modifier le reseau):
|
|
```
|
|
|
|
Exemples de cas d'usage :
|
|
|
|
| Besoin | Action |
|
|
| --- | --- |
|
|
| 🏷️ Modifier uniquement le hostname | Renseigner le hostname, laisser l'IP vide |
|
|
| 🌐 Modifier uniquement le reseau | Laisser le hostname vide, renseigner l'IP |
|
|
| 🛠️ Modifier hostname et reseau | Renseigner toutes les informations |
|
|
| 💤 Ne rien changer | Laisser hostname et IP vides |
|
|
|
|
## 🐳 Installation Docker CE
|
|
|
|
Installer Docker CE depuis le depot 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 presents ;
|
|
- 🔑 ajout de la cle GPG officielle Docker dans `/etc/apt/keyrings/docker.asc` ;
|
|
- 📦 ajout du depot 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 demarrage du service `docker`.
|
|
|
|
Verification apres installation :
|
|
|
|
```bash
|
|
docker --version
|
|
docker compose version
|
|
systemctl status docker
|
|
```
|
|
|
|
Si un utilisateur est ajoute au groupe `docker`, il doit ouvrir une nouvelle session avant de pouvoir utiliser Docker sans `sudo`.
|
|
|
|
## 🛟 Sauvegardes
|
|
|
|
Avant modification, le script sauvegarde les fichiers concernes 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 necessaires sont sauvegardes selon les options choisies.
|
|
|
|
## ✅ Validation
|
|
|
|
Verification syntaxique :
|
|
|
|
```bash
|
|
bash -n configure-debian-network.sh
|
|
bash -n install-docker-ce.sh
|
|
```
|
|
|
|
Verification manuelle recommandee apres execution :
|
|
|
|
```bash
|
|
hostnamectl
|
|
ip addr
|
|
ip route
|
|
cat /etc/resolv.conf
|
|
```
|
|
|
|
## 📝 Notes Debian
|
|
|
|
Le script est adapte aux serveurs Debian minimalistes. Sur une machine utilisant NetworkManager ou systemd-networkd, il faut utiliser le backend reseau correspondant plutot que modifier directement `/etc/network/interfaces`.
|
|
|
|
## ⚖️ Licence
|
|
|
|
Ce projet est distribue sous licence GNU Affero General Public License v3.0.
|
|
|
|
Voir [LICENSE](LICENSE) pour le texte complet.
|