5 mars 2017

Microlinux Enterprise Server 14.1 Guide d’Installation

MLEDCe document vous guide pas à pas dans l’installation du serveur Microlinux Enterprise Server 14.1. Il part du principe que vous savez déjà installer et configurer Slackware Linux. Lisez-le attentivement. Les paragraphes sur lesquels vous décidez de faire l’impasse reviendront vous mordre les fesses.
Si vous n’êtes pas trop familiarisé avec Slackware, allez faire un tour sur le Projet de Documentation Slackware. La plupart des pages de ce site sont disponibles en français. Lisez les deux articles suivants dans la section Débuter avec Slackware :

Notez que cette page traite uniquement les aspects spécifiques à MLES de l’installation. Pour les sujets plus généraux comme le RAID, LVM, Apache, MySQL, Postfix, Dovecot, Samba, Squid, etc. il faudra se reporter soit à la documentation officielle de Slackware, soit à mon blog professionnel.

MLES s’installe par-dessus une base Slackware judicieusement choisie et n’est pas fourni sur un ISO d’installation à part. Tout ce qu’il vous faut, c’est un support d’installation Slackware classique (DVD, CD-Rom, clé USB) et une connexion Internet.

Microlinux Enterprise Server

 

Installer le système de base Slackware Linux

Démarrez sur le support d’installation de Slackware : DVD, premier CD-Rom ou clé USB. Sélectionnez votre disposition clavier, connectez-vous en tant que root, partitionnez le disque dur et démarrez l’installateur.

root@slackware:/# setup
  • PACKAGE SERIES SELECTION : décochez les groupes de paquets E, KDE, KDEI, XAP et XFCE. Même si MLES est censé être installé en niveau d’exécution 3, assurez-vous de garder les groupes de paquets T et X, étant donné qu’ils contiennent une série de dépendances pour d’autres paquets ;
  • SELECT PROMPTING MODE : full ou terse
  • USE UTF-8 TEXT CONSOLE : Yes
  • CONFIRM STARTUP SERVICES TO RUN : confirmez les services par défaut
  • SELECT DEFAULT WINDOW MANAGER FOR X : xinitrc.twm

Terminez l’installation du système Slackware de base, quittez l’installateur et redémarrez. Ne définissez pas encore le ou les utilisateurs. Nous attendrons que les profils MLES soient installés.

 

Télécharger les scripts Microlinux

Microlinux fournit une collection de scripts pour accélérer le processus d’installation. Téléchargez cette arborescence de fichiers vers votre répertoire /root en utilisant la commande suivante :

# cd 
# git clone https://github.com/kikinovak/microlinux

 

Configurer slackpkg

Dans la configuration par défaut, le gestionnaire de paquets slackpkg ne fonctionne qu’avec les dépôts officiels de Slackware. Nous devons télécharger et installer le plugin slackpkg+ de Matteo Rossini pour activer l’utilisation de dépôts de paquets tiers. Microlinux vous évite la corvée en fournissant un paquet slackpkg+ préconfiguré pour l’utilisation des dépôts MLED.

Utilisez le navigateur Links pour accéder aux dépôts distants :

# links http://www.microlinux.fr/microlinux/

Sur un système 32-bits, naviguez vers le répertoire server-14.1-32bit/slackware/ap. Si vous utilisez un système 64-bits, allez dans server-14.1-64bit/slackware64/ap/. Téléchargez le paquet slackpkg+ depuis le dépôt (en utilisant la touche [D] comme Download dans le navigateur Links) et installez-le :

# installpkg slackpkg+-1.3.2-noarch-5_microlinux.txz

Éditez /etc/slackpkg/mirrors et sélectionnez un miroir Slackware en fonction de votre pays, par exemple :

# /etc/slackpkg/mirrors
...
# SWITZERLAND (CH)
ftp://mirror.switch.ch/mirror/slackware/slackware-14.1/
...

Sur un système 64-bit :

# /etc/slackpkg/mirrors
...
# SWITZERLAND (CH)
ftp://mirror.switch.ch/mirror/slackware/slackware64-14.1/
...

Assurez-vous de ne choisir qu’un seul miroir pour Slackware stable. Si vous utilisez MLES en France, optez pour le miroir mirror.switch.ch. Le miroir OVH est inutilisable comme à peu près tout ce qui vient de chez OVH.

Récupérez les clés GPG :

# slackpkg update gpg

Mettez à jour les informations sur les paquets disponibles :

# slackpkg update

 

Élaguer et mettre à jour l’installation de base

Les sous-répertoires server-14.1-32bit/tools/ et server-14.1-64bit/tools/ fournissent chacun un script trim.sh qui se charge de deux choses :

  1. installer les paquets de base requis
  2. supprimer les paquets de base superflus

Élaguez votre système Slackware de base :

# cd /root/microlinux/server-14.1-32bit/tools/ 
# ./trim.sh

Ou alors :

# cd /root/microlinux/server-14.1-64bit/tools/ 
# ./trim.sh

Notez en passant que les scripts trim.sh et les choix de paquets dans les arborescences respectives 32bit et 64bit sont identiques.

À présent, lancez la mise à jour du système de base Slackware :

# slackpkg upgrade-all

 

Installer les paquets MLES

Installez le jeu complet de paquets MLES comme ceci :

# slackpkg install microlinux-server

Maintenant que nous sommes arrivés au terme de l’installation initiale, il reste encore plusieurs choses à faire avant de pouvoir utiliser notre nouveau système. Les explications qui suivent concernent une série de détails cruciaux dans la configuration. Là encore, n’hésitez pas à faire un tour sur le Projet de Documentation Slackware pour vous renseigner de manière plus approfondie.

 

Vérifier les variables d’environnement

Dans une installation par défaut, les variables LANG et LC_COLLATE sont déjà définies comme fr_FR.UTF8, étant donné que MLES est surtout utilisé en France. Si vous souhaitez changer ceci, il faudra éditer le fichier /etc/profile.d/lang.sh :

# /etc/profile.d/lang.sh 
...
export LANG=fr_FR.utf8
export LC_COLLATE=fr_FR.utf8

 

Basculer vers le noyau GENERIC

Lors du premier redémarrage, vous avez peut-être jeté un oeil distrait sur les messages affichés à l’écran, et vous avez été vaguement inquiété par quelque chose qui ressemble à ceci :

(sda3): error: couldn't mount because of unsupported optional features

Jetons un oeil sur l’unique stance actuellement configurée dans le chargeur de démarrage LILO, vers la fin du fichier /etc/lilo.conf :

# /etc/lilo.conf
...
image = /boot/vmlinuz
  root = /dev/sda3
  label = Linux
  read-only

Regardons de près tout ce qu’il y a comme noyaux dans le répertoire /boot :

# ls -l /boot/vmlinuz* 
lrwxrwxrwx 1 ... /boot/vmlinuz -> vmlinuz-huge-smp-3.10.104-smp
-rw-r--r-- 1 ... /boot/vmlinuz-generic-3.10.104
-rw-r--r-- 1 ... /boot/vmlinuz-generic-smp-3.10.104-smp
-rw-r--r-- 1 ... /boot/vmlinuz-huge-3.10.104
-rw-r--r-- 1 ... /boot/vmlinuz-huge-smp-3.10.104-smp

Nous utilisons actuellement le noyau vmlinuz-huge-smp-3.10.104-smp, la cible du lien symbolique /boot/vmlinuz. Il s’agit d’un noyau « prêt-à-porter » avec toutes les options compilées « en dur ».

La bonne pratique, recommandée par Patrick Volkerding, consiste à utiliser le noyau « générique » avec un initrd. Si vous ne savez pas ce que c’est qu’un initrd, imaginez une sorte de besace virtuelle contenant les modules nécessaires pour le démarrage du système. On y trouve notamment le support des systèmes de fichiers comme ext3, ext4, etc.

Dans un premier temps, nous devons savoir quels sont les modules à inclure dans notre initrd. Notre système fournit un utilitaire assez pratique pour cela. Rendez-vous dans le répertoire /usr/share/mkinitrd et lancez le script mkinitrd_command_generator.sh :

# cd /usr/share/mkinitrd 
# ./mkinitrd_command_generator.sh

Le script nous affiche une commande avec toute une série de paramètres, comme ceci :

mkinitrd -c -k 3.10.104-smp -f ext4 -r /dev/sda3 -m mbcache:jbd2:ext4 
  -u -o /boot/initrd.gz

Retenons les arguments qui suivent l’option -m, c’est-à-dire mbcache:jbd2:ext4. Ce sont là les modules dont notre machine a besoin pour démarrer, séparés par des :. Notons-les dans un coin de notre tête ou sur un bout de papier, et éditons un fichier /etc/mkinitrd.conf avec notre éditeur préféré. Le répertoire /etc contient déjà un modèle (sample) que nous allons adapter à nos besoins :

# cd /etc 
# cp mkinitrd.conf.sample mkinitrd.conf

Décommentons l’ensemble des options des fichiers et éditons-les en fonction de notre configuration. Voici un exemple :

# /etc/mkinitrd.conf
SOURCE_TREE="/boot/initrd-tree"
CLEAR_TREE="1" 
OUTPUT_IMAGE="/boot/initrd.gz"
KERNEL_VERSION="$(uname -r)"
KEYMAP="fr-latin1"
MODULE_LIST="mbcache:jbd2:ext4"
ROOTDEV="/dev/sda3"
ROOTFS="ext4"
RESUMEDEV="/dev/sda2"
RAID="0"
LVM="0"
UDEV="1"
MODCONF="0"
WAIT="1"

Vous aurez probablement deviné que KEYMAP, c’est la disposition du clavier dans la console. MODULE_LIST contient la liste des modules mentionnée plus haut, séparés par des :. Attention à ne pas inclure d’espace, ce qui peut entraîner des conséquences fatales. ROOTDEV désigne ici la partition principale de notre système (/dev/sda3), et ROOTFS le système de fichiers (ext4) utilisé sur celle-ci. RESUMEDEV, c’est notre partition d’échange ou swap (/dev/sda2). Une remarque au passage sur une source de confusion potentielle. RAID="0" signifie tout simplement que nous n’utilisons pas le RAID, et non pas que nous utilisons du RAID niveau 0. Enfin, si vous n’encryptez pas vos partitions, vous pouvez allègrement supprimer toutes les lignes LUKS*.

Créons maintenant notre initrd :

# mkinitrd -F 

Remarque : il se peut que certains modules apparaissent « en double ». Cela n’a pas de conséquence sur le bon fonctionnement du système.

Il ne nous reste plus qu’à ajouter une stance au chargeur de démarrage LILO pour utiliser le noyau « générique » avec notre initrd nouvellement créé. Éditez /etc/lilo.conf, regardez la stance vers la fin du fichier pour la syntaxe, et ajoutez une deuxième stance juste après, comme ceci :

# /etc/lilo.conf 
...
image = /boot/vmlinuz
  root = /dev/sda3
  label = LinuxHuge 
  read-only
image = /boot/vmlinuz-generic-smp-3.10.104-smp
  initrd = /boot/initrd.gz
  root = /dev/sda3
  label = LinuxGeneric
  read-only

Sur un système 64-bit (ou un système non-SMP), la stance ressemblera à ceci :

image = /boot/vmlinuz-generic-3.10.104 
  initrd = /boot/initrd.gz
  root = /dev/sda3
  label = Generic
  read-only

Prenons en compte la nouvelle configuration de LILO :

# lilo 
Added LinuxHuge  *
Added LinuxGeneric  +

LILO nous affiche Added pour chacune des stances définies. À partir de là, nous pouvons déjà démarrer sur le nouveau noyau, en prenant soin de choisir LinuxGeneric dans l’écran de sélection de LILO. Si tout se passe bien, les erreurs concernant d’éventuelles fonctionnalités non supportées au démarrage auront cédé la place au message suivant :

/boot/initrd.gz: Loading kernel modules from initrd image

Il ne nous reste plus qu’à finaliser la configuration de LILO. Retournez dans /etc/lilo.conf et supprimez allègrement la stance initiale. Renommez éventuellement la stance pointant vers le noyau GENERIC, comme ceci :

image = /boot/vmlinuz-generic-smp-3.10.104-smp
  initrd = /boot/initrd.gz
  root = /dev/sda3
  label = Linux 
  read-only

N’oubliez pas de prendre en compte les modifications :

# lilo 
Added Linux *

 

Maintenance de base

Voici quelques conseils pour la maintenance de votre installation MLES. Lisez les fichiers ChangeLog.txt à la racine de chaque dépôt de paquets pour vous tenir au courant des mises à jour et des ajouts. Si vous souhaitez en savoir plus sur l’état de votre système, à savoir qu’est-ce qui est installé, qu’est-ce qui ne l’est pas, quelles sont les mises à jour disponibles etc., vous pouvez faire tout cela en une poignée de commandes :

# slackpkg update 
# slackpkg search microlinux-server

Régalez-vous bien avec votre serveur MLES flambant neuf !

— Nicolas Kovacs