Install de serveur dédié dans un chroot
Le mercredi 18 mai 2022 par Benjamin BoudoirJ'ai migré il y a peu mon serveur dédié, abandonnant ma vieille config (10 ans tout de même) pour une moins chère et un peu plus performante.
Mon hébergeur (OVH) ne me propose pas d'image pour installer ma distribution (Devuan), je n'ai donc accès qu'à un système de base en PXE et accès à debootstrap pour ça. Mon objectif et donc d'avoir une base minimale pour pouvoir gérer ensuite le reste avec ansible. Go ?
Configurer les disques
Première chose à faire : configurer les disques.
En l'occurence, ma config a 3 disques et je fais donc un joli RAID1 avec 3 disques et du LVM.
Je vais pas décrire le processus ici, y'a des tutos partout et ça aurait pas d'intérêt.
Par contre, il faut faire attention à deux choses :
- Vérifier que le système démarre via un UEFI ou un BIOS (vérifier si /sys/firmware/efi/ existe)
- Si c'est un bios et qu'on met en place une partition GPT (recommandé) : bien penser à ajouter une partition de démarrage bios
Pour créer une partition de démarrage bios, il suffit de faire une petite partition (j'ai fait 32mo et c'est déjà overkill, mais bon, c'est pas ce qui coûte le plus cher sur 2To) n'importe où sur le disque et lui ajouter le flag bios_grub dessus. Pas besoin de formater avec un fs.
Ça se fait avec parted :
(parted)$ mkpart BIOSBOOT 1000GB 1000.032GB
(parted)$ set 4 bios_grub on
Une fois fait, on peut créer la cible d'installation, ajoutez déjà les différents sous-volumes si besoin :
root@rescue$ mkdir -p /target/var/log
root@rescue$ mount /dev/md1 /target
root@rescue$ mount /dev/system/var_log /target/var/log
Créer une configuration debootstrap
Pour celà on peut faire une copie du script de la debian compatible (pour chimaera : bullseye) :
root@rescue$ cp /usr/share/debootstrap/scripts/bullseye /usr/share/debootstrap/scripts/chimaera
On a aussi besoin du keyring de Devuan :
root@rescue$ wget https://pkgmaster.devuan.org/devuan/pool/main/d/devuan-keyring/devuan-keyring_2017.10.03_all.deb
root@rescue$ dpkg -i devuan-keyring_2017.10.03_all.deb
Et on modifie le fichier afin de remplacer '/usr/share/keyrings/debian-archive-keyring.gpg' par '/usr/share/keyrings/devuan-archive-keyring.gpg'.
Installer le système de base
Bon, on a besoin d'un peu plus que juste le système de base. Notamment, on a besoin d'un noyau et d'un grub.
ARCH="amd64"
PKG="make,gcc,login,passwd,less,emacs-nox,netbase,wget,cpio,binutils,dpkg,cron,e2fsprogs,dpkg,apt,apt-utils,python3,python3-apt,grub-pc,linux-image-$ARCH,locales,aptitude,mdadm,lvm2"
mkdir /target
debootstrap --include="$PKG" --arch $ARCH chimaera /target http://deb.devuan.org/merged
Je préfère installer le serveur SSH à part pour éviter qu'il ne vienne avec plein de dépendances :
root@rescue$ chroot /target aptitude -R install task-ssh-server
Configuration du système
Avant de repartir on a besoin de configurer plusieurs choses, dans l'ordre :
- Les disques (/etc/fstab)
- Le réseau (/etc/network/interfaces)
- Le gestionnaire de démarrage
- copier vos clefs ssh publiques
- changer le hostname
Pour le premier, normalement tout le monde sait faire, pour le second il peut y avoir des surprises (très surpris qu'OVH me fournisse qu'un /128 pour l'IPv6, je savais pas que ça se faisait)
Pour installer grub avec les outils du système, on a besoin d'exporter quelques dossiers :
for dir in dev sys proc
do
mount -o bind /$dir /target/$dir
done
chroot /target
Et depuis là, on peut faire un grub-install sur tous les disques du RAID.
Pour la copie des clefs SSH je fais un rappel, y'a des droits spécifiques sinon votre clef ne sera pas lue :
root@rescue$ mkdir /root/.ssh
root@rescue$ chmod 700 /root/.ssh
root@rescue$ echo "$CLEFPUB" > /root/.ssh/authorized_keys
Pour le hostname, bien penser à modifier /etc/mailname et pas juste /etc/hostname.
Touche finale
Normalement, là c'est safe de redémarrer, vous aurez un système minimal sur lequel vous connecter pour finir.
Mais pourriez aimer faires d'autres trucs avant de redémarrer, comme :
- avoir un autre utilisateur que root pour vous connecter
- vérifier les repos (vous avez que main de renseigné donc faut penser à ajouter security à minima)
- tout ce qui pourrait vous passer par la tête