Automatiser la configuration initiale de machines physiques

2 réponses
Avatar
Olivier
--000000000000793fa9057b0146eb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Bonjour,

J'utilise intensivement des machines virtuelles KVM pour mettre au point la
configuration de serveurs physiques.
Le serveur host KVM est sous Debian Stretch (pas d'environnement graphique)=
.
Les cibles sont aussi sous Debian Stretch et sans environnement graphique.

Je proc=C3=A8de en r=C3=A9digeant un script d'installation que j'adapte et =
relance
r=C3=A9guli=C3=A8rement sur une machine virtuelle.
Quand j'estime que ce script est au point :
1. je lance l'installeur Debian sur mon serveur physique avec un
partitionnement standard
2. je modifie le partitionnement standard avec une cl=C3=A9 RescueCD (*)
3. je copie mon script d'installation sur mon serveur physique
4. je lance mon script d'installation en corrigeant les =C3=A9ventuelles er=
reurs
r=C3=A9siduelles.

(*) Les modifications que j'apporte au partitionnement standard sont de
diminuer la taille de la partition /home et d'augmenter celle d=C3=A9di=C3=
=A9e =C3=A0 /var.
Je trouve plus simple de faire ces op=C3=A9rations en ligne de commande ave=
c
lvreduce/lxextend.

J'aimerai am=C3=A9liorer ce processus particuli=C3=A8rement sur les =C3=A9t=
apes 1 et 2 au
terme desquelles je dispose d'une machine physique, dont :
- le partitionnement correspond =C3=A0 mes besoins (en gros, la place du di=
sque
est r=C3=A9partie =C3=A9quitablement entre /var et /home),
- le r=C3=A9seau est correctement configur=C3=A9
- le hostname est configur=C3=A9
- le SSH est install=C3=A9 (avec la copie d'une ou deux cl=C3=A9s SSH)
- les comptes sont configur=C3=A9s
- le clavier/la langue sont configur=C3=A9s.

J'ai not=C3=A9 l'existence de plusieurs technologies qui pourrait am=C3=A9l=
iorer ce
processus:
- preseed
- vagrant
- packer

Mes rares et anciens essais avec preseed =C3=A9taient assez d=C3=A9primants=
.
Je n'ai jamais essay=C3=A9 les deux autres.

Qu'en pensez-vous ?
Que conseillez-vous ?

Slts.

--000000000000793fa9057b0146eb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Bonjour,</div><div><br></div><div>J&#39;utilise inten=
sivement des machines virtuelles KVM pour mettre au point la configuration =
de serveurs physiques.</div><div>Le serveur host KVM est sous Debian Stretc=
h (pas d&#39;environnement graphique).</div><div>Les cibles sont aussi sous=
Debian Stretch=C2=A0 et sans environnement graphique.</div><div><br></div>=
<div>Je proc=C3=A8de en r=C3=A9digeant un script d&#39;installation que j&#=
39;adapte et relance r=C3=A9guli=C3=A8rement sur une machine virtuelle.</di=
v><div>Quand j&#39;estime que ce script est au point :</div><div>1. je lanc=
e l&#39;installeur Debian sur mon serveur physique avec un partitionnement =
standard</div><div>2. je modifie le partitionnement standard avec une cl=C3=
=A9 RescueCD (*)<br></div><div>3. je copie mon script d&#39;installation su=
r mon serveur physique</div><div>4. je lance mon script d&#39;installation =
en corrigeant les =C3=A9ventuelles erreurs r=C3=A9siduelles.</div><div><br>=
</div><div>(*) Les modifications que j&#39;apporte au partitionnement stand=
ard sont de diminuer la taille de la partition /home et d&#39;augmenter cel=
le d=C3=A9di=C3=A9e =C3=A0 /var.</div><div>Je trouve plus simple de faire c=
es op=C3=A9rations en ligne de commande avec lvreduce/lxextend.</div><div><=
br></div><div>J&#39;aimerai am=C3=A9liorer ce processus particuli=C3=A8reme=
nt sur les =C3=A9tapes 1 et 2 au terme desquelles je dispose d&#39;une mach=
ine physique, dont :</div><div>- le partitionnement correspond =C3=A0 mes b=
esoins (en gros, la place du disque est r=C3=A9partie =C3=A9quitablement en=
tre /var et /home),</div><div>- le r=C3=A9seau est correctement configur=C3=
=A9</div><div>- le hostname est configur=C3=A9</div><div>- le SSH est insta=
ll=C3=A9 (avec la copie d&#39;une ou deux cl=C3=A9s SSH)</div><div>- les co=
mptes sont configur=C3=A9s</div><div>- le clavier/la langue sont configur=
=C3=A9s.</div><div><br></div><div>J&#39;ai not=C3=A9 l&#39;existence de plu=
sieurs technologies qui pourrait am=C3=A9liorer ce processus:</div><div>- p=
reseed</div><div>- vagrant</div><div>- packer<br></div><div><br></div><div>=
Mes rares et anciens essais avec preseed =C3=A9taient assez d=C3=A9primants=
.</div><div>Je n&#39;ai jamais essay=C3=A9 les deux autres.</div><div><br><=
/div><div>Qu&#39;en pensez-vous ?</div><div>Que conseillez-vous ?</div><div=
><br></div><div>Slts.</div><div><br></div><div><br></div><div><br></div><di=
v><br></div></div>

--000000000000793fa9057b0146eb--

2 réponses

Avatar
=c3
Olivier, au 2018-11-19 :
J'utilise intensivement des machines virtuelles KVM pour
mettre au point la configuration de serveurs physiques.
Le serveur host KVM est sous Debian Stretch (pas
d'environnement graphique).
Les cibles sont aussi sous Debian Stretch et sans
environnement graphique.
Je procède en rédigeant un script d'installation que j'adapte
et relance régulièrement sur une machine virtuelle.
Quand j'estime que ce script est au point :
1. je lance l'installeur Debian sur mon serveur physique avec
un partitionnement standard
2. je modifie le partitionnement standard avec une clé
RescueCD (*)
3. je copie mon script d'installation sur mon serveur physique
4. je lance mon script d'installation en corrigeant les
éventuelles erreurs résiduelles.

[...]
J'aimerai améliorer ce processus particulièrement sur les
étapes 1 et 2 au terme desquelles je dispose d'une machine
physique

[...]
Qu'en pensez-vous ?
Que conseillez-vous ?

Bonsoir Olivier,
À vous lire, et si vous avez à maintenir plus de machines
physiques que vous ne pouvez en compter avec vos doigts, qui
plus est, des machines qui se ressemblent comme deux goûtes
d'eau, alors je pense que vous êtes mûr pour un déploiement de
serveur FAI (Fully Automated Installation) :
http://fai-project.org/
http://fai-project.org/fai-guide/
Avant installation, vous allez définir une ou plusieurs classes
de machines. Une arborescence d'exemple est disponible pour
vous mettre le pied à l'étrier ; elle vous sera recommandée lors
de la configuration de l'infrastructure, après installation des
paquets.
Pour procéder à une installation, vous allez démarrer vos
machines physiques via PXE, le système de base pour
l'installation sera fourni par une racine NFS depuis votre
serveur FAI, racine qui hébergera également des scripts qui se
lanceront automatiquement dans cet environnement dédié à
l'installation. Le déroulé de l'installation sera journalisé et
envoyé via SSH au serveur FAI à la fin de l'installation. La
machine reste joignable en cours d'opération et des options
peuvent être passées pour ouvrir l'accès aux terminaux annexes,
pendant les phases de débogage de vos classes.
Les classes de machines peuvent être assez longues à mettre au
point, mais une fois qu'un script d'installation est rodé, des
grappes de machines entières peuvent être installées en assez
peu de temps.
Voilà ce que j'en pense et ce que je vous conseille, en
particulier vis-à-vis de l'amélioration des points 1 et 2 ;
c'est similaire au preseed, mais sous stéroïdes.
Si c'est pour une poignée de machines qui ne sont réinstallées
que très occasionnellement, alors c'est peut-être un peu
surdimensionné par contre.
Amicalement,
--
Étienne Mollier
Avatar
=c3
Bonjour Olivier,
TL;DR: Si TFTP est un problème parce que le WAN est très morcelé
et cloisonné, alors peut-être que preseed sera plus adapté à
votre environnement. Mais n'ayant pas travaillé avec preseed,
je ne me rend pas compte de la charge de travail qu'il
représente, en terme de déploiement et maintenance.
Olivier, au 2018-12-11 :
1. Je trouve preseed extrêmement difficile à maîtriser. FAI
simplifie-t-il les choses à cet égard ?

Étant tombé dans FAI étant petit, je n'ai pas pris le temps de
m'intéresser à preseed et aurai du mal à répondre. N'ayant que
survolé la page de Wiki, je serais à côté de la plaque si je me
risquait à répondre :
https://wiki.debian.org/DebianInstaller/Preseed
Le déploiement initial de FAI demande beaucoup de travail avant
d'arriver à la première installation selon le modèle voulu. Une
fois que le système roule, l'ajout de nouvelles configurations
se fait sans trop de difficultés, pour peu que le résultat voulu
soit bien défini par le demandeur, et l'ajout de nouvelles
machines au parc existant est trivial.
Il est éventuellement possible de maintenir la configuration des
machines avec fai-update, mais ça sous-entend de respecter le
caractère idempotent des scripts (si c'est déjà fait, le
résultat doit être le même), ce qui peut rapidement ne plus être
le cas, au fur et à mesure que le temps passe. Une solution
comme Ansible serait préférable pour maintenir la configuration
après installation.
2. Est-il exact de penser que FAI est adapté une installation
sur un réseau local, pas sur un WAN, à cause de l'utilisation
de TFTP ou bien est-ce inexact ?

S'il n'y a que deux ou trois réseaux à gérer, il y a moyen de se
rattraper avec des relais. Mais si le WAN est très morcelé,
cette configuration devient ingérable. En effet il faudra
prévoir un serveur TFTP local par réseau, pour distribuer les
noyaux, initrd et options de démarrage adéquates. L'export du
NFS root aura peut-être besoin d'être revus, ainsi que les
règles de pare feux. Avoir un réseau dédié à l'administration
peut aider dans ce cas.
Sinon, il est aussi possible de se rattraper avec fai-cd, pour
produire une ISO à partir de la configuration existante, à
coller sur une clé USB sur laquelle démarrer, et qui va
configurer la machine proprement, sans avoir besoin du moindre
réseau. L'ajout de nouvelles configurations au serveur FAI va
nécessiter de régénérer les clés, ce qui rend la solution moins
souple. Peut-être qu'à ce stade preseed sera plus simple que de
gérer la quasi-totalité du parc avec fai-cd.
Si à cause de la limitation inhérente à TFTP, vous considéreriez
fai-cd pour l'essentiel de votre parc, alors /peut-être/ que
votre temps serait mieux investit à l'étude de preseed.
Si toutefois FAI vous intéresse toujours, la liste de diffusion
peut être d'un grand secours, quand vous allez buter sur des
écueils lors du déploiement :
http://fai-project.org/mailinglist/
https://lists.uni-koeln.de/pipermail/linux-fai/
PS: Désolé pour le temps mis pour réagir aux messages mais
j'ai été happé par d'autres priorités.

Ce n'est pas bien grave, on a tout notre temps sur la liste des
utilisateurs de Debian. :^)
Amicalement,
--
Étienne Mollier