Installer un serveur de réseau local Slackware 14.2

Cet article décrit l’installation de Slackware Linux 14.2 sur un serveur de réseau local comme par exemple le HP Proliant Microserver. Ce modèle de serveur ne contient pas de lecteur optique. Il faut donc confectionner une clé USB bootable au préalable.

Démarrer sur le support d’installation

Options de démarrage :

  • huge.s (64-bit)
  • hugesmp.s (32-bit)
  • vga=788 (affichage 800×600)
  • vga=791 (affichage 1024×768)

Choix du clavier : azerty/fr-latin1.map pour un clavier AZERTY français.

Faire le ménage sur les disques

Avant de faire quoi que ce soit, désactiver d’éventuels vestiges d’assemblages RAID provenant d’une installation antérieure :

# mdadm --stop --scan

Effacer les métadonnées RAID persistantes sur les partitions, comme ceci par exemple :

# mdadm --zero-superblock /dev/sda1
# mdadm --zero-superblock /dev/sda2
# mdadm --zero-superblock /dev/sda3
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb2
# mdadm --zero-superblock /dev/sdb3
...

Remettre les tables de partitions à zéro :

# dd if=/dev/zero of=/dev/sda bs=512 count=64
# dd if=/dev/zero of=/dev/sdb bs=512 count=64

Partitionnement et définition des assemblages RAID

Partitionner les disques :

# cfdisk /dev/sdX

Schéma de partitionnement :

  • un disque RAID pour /boot, de 100 Mo, formaté en ext2
  • un disque RAID pour la partition swap, équivalent à la RAM disponible
  • un disque RAID pour /, formaté en ext4

Les partitions RAID sont de type FD (Linux raid autodetect).

Deux disques en RAID 1 :

# mdadm --create /dev/md1 --level=1 --raid-devices=2 \
  --metadata=0.90 /dev/sda1 /dev/sdb1
# mdadm --create /dev/md2 --level=1 --raid-devices=2 \
  --metadata=0.90 /dev/sda2 /dev/sdb2
# mdadm --create /dev/md3 --level=1 --raid-devices=2 \
  --metadata=0.90 /dev/sda3 /dev/sdb3

Quatre disques en RAID 5 :

# mdadm --create /dev/md1 --level=1 --raid-devices=4 \
  --metadata=0.90 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
# mdadm --create /dev/md2 --level=1 --raid-devices=4 \
  --metadata=0.90 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
# mdadm --create /dev/md3 --level=5 --raid-devices=4 \
  --metadata=0.90 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3
  • Les grappes /dev/md1 et /dev/md2 sont assemblées en RAID 1.
  • La grappe /dev/md3 est assemblée en RAID 5.

Formater la partition swap pour que l’installateur la reconnaisse :

# mkswap /dev/md2

Lancer l’installation

Démarrer le programme d’installation :

# setup
  • L’installateur proposera les disques RAID /dev/mdX au formatage.

Sélectionner les séries de paquets :

  • [*] A
  • [*] AP
  • [*] D
  • [ ] E (désélectionner)
  • [*] F
  • [*] K
  • [ ] KDE (désélectionner)
  • [ ] KDEI
  • [*] L
  • [*] N
  • [*] T
  • [*] TCL
  • [*] X
  • [ ] XAP (désélectionner)
  • [ ] XFCE (désélectionner)
  • [*] Y

Le groupe T est bizarrement nécessaire pour compiler le paquet ffmpeg dont on pourra éventuellement avoir besoin sur un serveur de flux audio.

SELECT PROMPTING MODE : full. Alternativement, le mode terse offre un résultat identique mais avec une présentation plus compacte.

MAKE USB FLASH BOOT : Skip making a USB boot stick

INSTALL LILO : Try to install LILO automatically

CONFIGURE LILO TO USE FRAME BUFFER CONSOLE : standard

Pour la résolution de la console et les paramètres à passer au kernel (prochain écran), on peut très bien ne rien mettre et peaufiner le tout en éditant /etc/lilo.conf plus tard.

OPTIONAL LILO append="" LINE : nomodeset quiet ipv6.disable=1

USE UTF-8 TEXT CONSOLE : Yes – UTF8 a beau avoir quelques petits problèmes
avec certains utilitaires en mode console, notamment avec des pages man en langue étrangère qui s’affichent mal, il n’empêche qu’il est dorénavant établi comme standard un peu partout. Le choix par défaut No s’explique uniquement par un excès de prudence de la part du distributeur.

SELECT LILO DESTINATION : MBR - Install to Master Boot Record

MOUSE CONFIGURATION : imps2- Microsoft PS/2 Intellimouse

La configuration de la souris ne concerne que son utilisation en mode console, avec GPM. On peut simplement accepter le choix par défaut, qui correspond à toutes les souris modernes.

GPM CONFIGURATION : No. Le service GPM permet de copier/coller du texte avec la souris en mode console. Étant donné que nous nous servons de Vim pour cela, nous décidons de ne pas le démarrer.

CONFIGURE NETWORK: Yes

ENTER HOSTNAME : il s’agit de choisir un nom d’hôte pour le serveur. Choisissez-en un à votre convenance et écrivez-le en minuscules, comme ceci :

  • slackbox
  • grossebertha
  • serveur-linux
  • etc.

ENTER DOMAINNAME FOR <machine> : choisissez un nom de domaine “en bois”, comme par exemple :

  • local
  • microlinux.lan
  • crpconsulting.montpellier
  • etc.

CONFIGURATION TYPE FOR <machine.domaine> : static IP. Renseigner les paramètres réseau “côté Internet”.

SET DHCP HOSTNAME : Laisser vide tout simplement.

CONFIRM STARTUP SERVICES TO RUN :

  • [ ] rc.fuse (désélectionner)
  • [ ] rc.inetd (désélectionner)
  • [ ] rc.messagebus (désélectionner)
  • [*] rc.syslog
  • [*] rc.sshd

CONSOLE FONT CONFIGURATION : No

HARDWARE CLOCK SET TO UTC ? YES - Hardware clock is set to UTC

TIMEZONE CONFIGURATION : Europe/Paris

SELECT DEFAULT WINDOW MANAGER FOR X : xinitrc.twm

Le gestionnaire de fenêtres rudimentaire TWM est installé avec le groupe de paquets X. Même si nous le définissons comme environnement par défaut, nous ne l’utiliserons pas.

Définir un mot de passe pour root. On ne le verra pas apparaître à l’écran.

Ne pas redémarrer avant d’avoir configuré LILO pour le RAID, faute de quoi on plante le système !

Sortir de l’installateur (EXIT) et chrooter dans le système nouvellement installé :

# chroot /mnt

Construire l’initrd et configurer LILO

Sur un système en RAID 5, attendre la synchronisation complète de la grappe :

# watch cat /proc/mdstat

Cette astuce permet d’accélérer la synchronisation des disques de façon significative :

# echo 50000 > /proc/sys/dev/raid/speed_limit_min

Créer le fichier de configuration pour la grappe RAID :

# mdadm --examine --scan > /etc/mdadm.conf

Préparer l’initrd :

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

Détecter les modules nécessaires au démarrage :

# /usr/share/mkinitrd/mkinitrd_command_generator.sh

Éditer /etc/mkinitrd.conf en utilisant l’option :set nobackup de Vim :

# /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="ext4"
ROOTDEV="/dev/md3"
ROOTFS="ext4"
RESUMEDEV="/dev/md2"
RAID="1"
LVM="0"
UDEV="1"
MODCONF="0"
WAIT="1"
  • Ici, RAID="1" ne désigne pas un quelconque niveau de RAID, mais signifie simplement que l’on utilise le RAID.

Il faudra éventuellement ajouter explicitement les modules pour le contrôleur de disques. Exemple sur un serveur IBM XServer 225 :

MODULE_LIST="ext4:mptbase:mptscsih:mptspi"

Générer l’initrd :

# mkinitrd -F

Éditer /etc/lilo.conf :

# /etc/lilo.conf 
...
append="nomodeset quiet vt.default_utf8=1 ipv6.disable=1"
boot=/dev/md1
compact
lba32
raid-extra-boot = mbr-only
...
timeout = 30
...
image = /boot/vmlinuz-generic-3.10.17
  initrd = /boot/initrd.gz
  root = /dev/md3
  label = MLES-14.1-64bit
  read-only

Là aussi, activer l’option :set nobackup dans Vim pour ne pas se retrouver avec une copie de sauvegarde lilo.conf~.

# lilo

On peut tranquillement ignorer le message d’erreur qui dit que “/dev/sdb n’est pas sur le premier disque” :o)

Quitter l’environnement chrooté et redémarrer :

# exit
# reboot

Premier redémarrage

Tester la connexion à Internet :

# ping -c 4 www.google.fr

Éventuellement, utiliser Links pour télécharger et installer le paquet user-settings-console sur le dépôt de Microlinux (obsolète), dans le répertoire server-$VERSION-$ARCH/slackware{64}/profile :

# links http://slackware.uk/microlinux/

Téléchargez le paquet user-settings-console (en utilisant la touche [D] comme Download dans le navigateur Links) et installez-le :

# installpkg user-settings-console-14.2-noarch-1_microlinux.txz 

Si l’on n’a pas accès au réseau au premier redémarrage, on peut éventuellement permuter l’affectation des interfaces réseau eth0 et eth1, en éditant /etc/udev/rules.d/70-persistent-net.rules.

Procéder à un réglage initial de l’horloge système :

# ntpdate pool.ntp.org

Télécharger les scripts Microlinux (obsolète)

Je fournis une collection de scripts et de fichiers de configuration prêts à l’emploi pour accélérer le processus d’installation. Récupérez toute cette arborescence en utilisant la commande suivante :

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

Configurer slackpkg (obsolète)

Dans la configuration par défaut, le gestionnaire de paquets slackpkg ne fonctionne qu’avec les dépôts officiels de Slackware. Nous devons 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 des paquets slackpkg+ préconfigurés pour l’utilisation des dépôts MLES.

Là encore, utilisez le navigateur Links pour accéder aux dépôts distants :

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

Téléchargez le paquet slackpkg+ dans le répertoire server-$VERSION-$ARCH/slackware{64}/ap et installez-le :

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

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

# /etc/slackpkg/mirrors 
...
# GERMANY (DE)
ftp://ftp.fu-berlin.de/unix/linux/slackware/slackware64-14.2/
...

Assurez-vous de ne choisir qu’un seul miroir pour Slackware stable. Si vous êtes en France, optez pour le miroir ftp.fu-berlin.de ou 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 installer les paquets MLES (obsolète)

Chaque sous-répertoire server-$VERSION-$ARCH/tools/ fournit un script trim.sh qui se charge de deux choses :

  1. supprimer quelques paquets superflus
  2. installer quelques paquets supplémentaires

Élaguez votre système Slackware de base :

# cd microlinux/server-$VERSION-$ARCH/tools/
# ./trim.sh
  • Le script dans l’arborescence 64-bit n’est qu’un lien symbolique vers la version 32-bit.

Lancer la mise à jour du système de base Slackware :

# slackpkg upgrade-all

À partir de là, les paquets MLES peuvent être installés comme ceci :

# slackpkg install microlinux-server

Peaufiner la configuration du réseau

Éditer /etc/rc.d/rc.inet1.conf et ajouter la configuration de la carte côté réseau local :

# /etc/rc.d/rc.inet1.conf 

# Config information for eth0:
IPADDR[0]="192.168.1.2"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]="192.168.2.1"
NETMASK[1]="255.255.255.0"
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""

...

# Default gateway IP address:
GATEWAY="192.168.1.1"

Corriger la configuration de l’installateur dans /etc/hosts. Par exemple :

# /etc/hosts
127.0.0.1     localhost.localdomain localhost
192.168.2.1   nestor.microlinux.lan nestor

Prendre en compte les modifications :

# /etc/rc.d/rc.inet1 restart

Pare-feu

Dans ma collection de scripts, le répertoire template/firewall/ contient un modèle de pare-feu presque prêt à l’emploi :

# cd template/firewall/
# cp rc.firewall.router /etc/rc.d/rc.firewall

Adapter la configuration du script, puis :

# chmod +x /etc/rc.d/rc.firewall
# /etc/rc.d/rc.firewall start

Deux remarques :

  • Si le serveur n’est équipé que d’une seule carte réseau et qu’il ne fait donc pas office de routeur, on choisira le modèle de pare-feu rc.firewall.lan au lieu de rc.firewall.router.
  • Le script rc.firewall.router gère également le relais des paquets. On n’utilisera donc pas le script /etc/rc.d/rc.ip_forward proposé par Slackware.
Ce contenu a été publié dans Divers. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *