TP – Déployer une machine Debian par installation automatisée
BTS SIO SISR 2e année – Bloc 2 – S07 – binôme : un tape, l'autre lit ; on échange les rôles à chaque partie
Note
But. Tu choisis une méthode de déploiement selon un besoin, tu écris un fichier preseed, tu le sers par HTTP, tu déploies une machine virtuelle sans intervention et tu vérifies qu'elle est conforme.
Durée : 2 h 45 (parties A à D), plus le bilan. Prérequis : cours S07 lu ; S06 ; l'image ISO « netinst » de Debian ; une connexion Internet pour le miroir de paquets.
Note
Comment ce TP fonctionne. Avant de manipuler, tu écris ce que tu anticipes, puis tu testes et tu notes ce que tu constates. Un bilan de compétences clôt la séance.
Binôme : ____________ / ____________
Contraintes
- Le déploiement efface le disque de la VM neuve : c'est voulu.
- Le mot de passe du compte
utilisateurestlab-S07(mot de passe de laboratoire). - La partie C suppose que tu disposes d'une VM Debian existante (
modeleouVM-Ade S06) qui sert de serveur de déploiement (appelons-laDEPLOI).
Partie A – Choisir la méthode (≈ 20 min)
Pour chaque cas, choisis la ou les méthodes de déploiement et justifie.
| Cas | Méthode(s) | Justification |
|---|---|---|
| 1. 25 postes Windows identiques à installer pour la rentrée | ||
| 2. 3 serveurs Linux différents, installés une seule fois | ||
| 3. 10 VM Debian à créer chaque semaine pour des tests | ||
| 4. Une agence distante sans technicien, 8 postes à réinstaller |
Éléments de réponse
Plusieurs réponses sont acceptables si elles sont justifiées. Exemples :
- Image (clonage) ou déploiement réseau WDS/MDT avec un
autounattend.xml: machines identiques, volume élevé. - Installation manuelle documentée, ou preseed léger : le gain de l'automatisation est faible pour trois machines différentes, mais la documentation reste indispensable.
- Modèle + clone (S06) ou preseed/cloud-init : fréquence élevée, reproductibilité.
- PXE + installation automatisée : aucun support à manipuler sur place, réinstallation à distance.
Je comprends. Pourquoi l'automatisation n'est-elle pas toujours rentable ? ______________________
Éléments de réponse
Écrire, tester et maintenir l'automatisation coûte du temps. Pour peu de machines, ou des machines toutes différentes, ce coût dépasse le gain. Plus le nombre de déploiements augmente, plus l'automatisation devient rentable.
Partie B – Écrire le fichier preseed (≈ 40 min)
1. Sur DEPLOI, crée un dossier de travail et génère l'empreinte du mot de passe :
Copie la ligne obtenue (elle commence par $6$).
2. Crée preseed.cfg avec le contenu suivant (remplace EMPREINTE par la ligne obtenue) :
# Installation automatique Debian - S07
d-i debian-installer/locale string fr_FR.UTF-8
d-i keyboard-configuration/xkb-keymap select fr
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string deb-auto
d-i netcfg/get_domain string lab.local
d-i mirror/country string manual
d-i mirror/http/hostname string deb.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
d-i passwd/root-login boolean false
d-i passwd/make-user boolean true
d-i passwd/user-fullname string Utilisateur
d-i passwd/username string utilisateur
d-i passwd/user-password-crypted password EMPREINTE
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Paris
d-i clock-setup/ntp boolean true
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
tasksel tasksel/first multiselect standard, ssh-server
d-i pkgsel/include string sudo curl
d-i pkgsel/upgrade select full-upgrade
popularity-contest popularity-contest/participate boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/bootdev string default
d-i preseed/late_command string in-target sh -c 'echo "installe par preseed le $(date -I)" > /etc/motd'
d-i finish-install/reboot_in_progress note
3. Vérifie la syntaxe du fichier :
J'anticipe. Que fait la ligne passwd/root-login boolean false ? Que se passe-t-il sans elle ? ______________________
Éléments de réponse
Elle désactive le compte root (connexion directe) ; l'utilisateur créé reçoit les droits sudo. Sans elle, l'installateur demanderait un mot de passe root. La vérification -c ne contrôle que la syntaxe, pas la validité des réponses vis-à-vis de l'installateur : seul un test réel le confirme.
Je comprends. Pourquoi stocker l'empreinte du mot de passe et non le mot de passe ? Est-ce suffisant en production ? ______________________
Éléments de réponse
Quiconque lit le fichier ne voit pas le mot de passe directement. Ce n'est pas suffisant : l'empreinte d'un mot de passe faible se casse facilement, et le fichier est accessible à tous les clients du réseau de déploiement. En production, on évite les mots de passe communs : clé SSH, mot de passe changé à la première connexion, ou gestionnaire de secrets.
Partie C – Servir et déployer (≈ 70 min)
1. Place DEPLOI et la future machine sur un réseau NAT commun (Internet pour le miroir) :
VBoxManage natnetwork add --netname lab-nat --network 10.0.2.0/24 --enable --dhcp on
VBoxManage modifyvm DEPLOI --nic1 natnetwork --nat-network1 lab-nat
Redémarre DEPLOI, relève son adresse (ip -br a), puis sers le dossier :
2. Sur l'hôte, crée la machine à déployer (disque vide) :
VBoxManage createvm --name DEB-AUTO --ostype Debian_64 --register
VBoxManage modifyvm DEB-AUTO --memory 2048 --cpus 2 --nic1 natnetwork --nat-network1 lab-nat
VBoxManage createmedium disk --filename ~/DEB-AUTO.vdi --size 12288
VBoxManage storagectl DEB-AUTO --name SATA --add sata
VBoxManage storageattach DEB-AUTO --storagectl SATA --port 0 --device 0 --type hdd --medium ~/DEB-AUTO.vdi
VBoxManage storageattach DEB-AUTO --storagectl SATA --port 1 --device 0 --type dvddrive --medium /chemin/vers/debian-netinst.iso
3. Démarre DEB-AUTO. Au menu de démarrage de l'installateur, ne choisis pas l'installation graphique : modifie la ligne de démarrage (touche Tab en BIOS, e en UEFI) et ajoute à la fin :
(remplace ADRESSE-DEPLOI par l'adresse relevée).
J'anticipe. Qu'attends-tu de voir sur l'écran de DEB-AUTO pendant l'installation ? Et sur le terminal de DEPLOI ? ______________________
Éléments de réponse
Sur DEB-AUTO : l'installateur défile sans poser de question (réseau, partitionnement, installation des paquets), puis redémarre. Sur DEPLOI : le serveur web affiche une ligne GET /preseed.cfg HTTP/1.1" 200 : la preuve que le fichier de réponses a été téléchargé.
Note l'heure de début et de fin : durée du déploiement = ______ min.
Point de contrôle : la machine redémarre sur un écran de connexion Debian ; la ligne GET /preseed.cfg … 200 apparaît côté DEPLOI.
Si l'installateur pose quand même des questions : note laquelle (elle manque au preseed) ; ajoute la réponse correspondante et recommence. C'est la méthode normale de mise au point.
Partie D – Vérifier la conformité et documenter (≈ 35 min)
1. Connecte-toi à DEB-AUTO (compte utilisateur, mot de passe lab-S07) et vérifie :
hostname -f # deb-auto.lab.local
cat /etc/motd # message ajouté par late_command
sudo -l | head -3 # droits sudo
dpkg -l sudo curl | tail -2 # paquets demandés
systemctl is-active ssh # active
timedatectl | grep "Time zone"
Complète :
| Contrôle attendu | Constaté | Conforme ? |
|---|---|---|
Nom d'hôte deb-auto.lab.local |
||
Message dans /etc/motd |
||
Droits sudo |
||
Paquets sudo et curl installés |
||
Service ssh actif |
||
Fuseau Europe/Paris |
2. Rédige une fiche de procédure d'une demi-page : prérequis, étapes (avec les commandes), durée mesurée, vérifications, problèmes rencontrés.
Éléments de réponse
Tous les contrôles doivent être conformes. Une bonne fiche permet à un tiers de refaire le déploiement seul : où est le fichier, comment le servir, la ligne à ajouter au démarrage, comment vérifier.
Je comprends. Que faudrait-il ajouter à ce déploiement pour que la machine soit prête à l'emploi dans l'entreprise (sécurité, configuration) ? ______________________
Éléments de réponse
Une étape de configuration après installation (Ansible, voir S08) : pare-feu, clés SSH, services, supervision, mises à jour automatiques, et suppression ou renouvellement du mot de passe de déploiement.
Pour aller plus loin
- Ajoute à
late_commandl'installation d'une clé SSH publique pourutilisateur. - Décris (sans la monter) la chaîne PXE : quelles options DHCP, quel serveur TFTP, quel fichier de démarrage ?
Retour en entreprise (si ta situation le permet)
- Observer : comment l'entreprise installe-t-elle ses postes et ses serveurs ? Existe-t-il une image, un fichier de réponses, un outil ?
- Documenter : la procédure d'installation d'un poste type, avec sa durée.
Rendu
Compte rendu PDF, nommé RENDU-B2A2-S07-NOM.pdf, contenant : le fichier preseed.cfg (empreinte masquée), la capture de la ligne GET /preseed.cfg … 200, la capture de la machine installée, le tableau de conformité, la fiche de procédure.
Bilan de la séance
Niveau : Non maîtrisé, Maîtrise partielle, Bonne maîtrise ou Excellente maîtrise, ou Non évalué.
| Compétence du référentiel | Ce que j'ai fait dans cette séance | Niveau |
|---|---|---|
| B2.2 – Installer, tester et déployer une solution d'infrastructure réseau |
Note
Les codes sont ceux du référentiel.
Je sais faire, sans aide :
- Comparer les méthodes de déploiement et choisir selon un besoin ;
- Écrire un fichier preseed et en vérifier la syntaxe ;
- Servir le fichier et déclencher une installation sans intervention ;
- Contrôler la conformité de la machine déployée ;
- Documenter la procédure.
Ce que je dois reprendre : ______________________
Ma question à poser à l'enseignant : ______________________