Logo CentOSCet article décrit pas à pas et de manière détaillée l’installation d’un poste de travail de qualité entreprise basé sur CentOS 7 et l’environnement de bureau KDE. En temps normal, je me base plutôt sur OpenSUSE Leap pour installer des postes clients. Or, dans certains contextes comme par exemple la salle informatique d’une école ou le réseau d’une TPE ou d’une PME, il vaut mieux opter pour une distribution plus conservatrice qui offre des mises à jour à faible risque avec un cycle de support étendu. De ce point de vue, CentOS fournit la base idéale, étant donné que la version 7 initialement publiée en 2014 est officiellement supportée jusqu’au 30 juin 2024. Pour plus de détails, lire la documentation officielle.

Présentation

Le poste de travail présenté ici offre une série d’améliorations par rapport à un poste de travail CentOS standard.

  • L’environnement de bureau GNOME est remplacé par KDE.
  • Le bureau KDE est préconfiguré de manière sobre et intuitive.
  • Une panoplie d’applications populaires est installée pour toutes les tâches courantes.
  • Certaines applications « usine à gaz » sont remplacées par des équivalents légers.
  • Les codecs et plug-ins multimédia permettent de gérer les contenus audio et vidéo.
  • Les polices TrueType offrent une meilleure interopérabilité avec l’univers Microsoft.

Le choix de KDE s’explique par une préférence marquée pour cet environnement de bureau, en dépit de l’annonce regrettable de Red Hat de ne plus supporter KDE à partir de la version 8.0. Le moment venu, il y a fort à parier que KDE Plasma 5 sera disponible pour Red Hat Enterprise Linux et CentOS 8.x par le biais du dépôts tiers EPEL.

Comment nous allons procéder

Nous allons construire pas à pas notre poste de travail CentOS personnalisé. Notre démarche sera la suivante.

  1. Installer et configurer le système de base.
  2. Installer et configurer le serveur graphique.
  3. Installer et configurer l’environnement de bureau KDE.

Pour chacune de ces étapes, je fournis une série de scripts qui permettent d’automatiser la plupart des opérations.

Support d’installation

On choisira le CD minimal, mais rien n’empêche d’utiliser le DVD.

  • CentOS-7-x86_64-Minimal-1810.iso
  • CentOS-7-x86_64-DVD-1810.iso

Graver le CD ou le DVD à partir de l’ISO téléchargé.

Sur les machines dépourvues de lecteur optique, il faudra confectionner une clé USB d’installation. L’image ISO est hybride et peut s’écrire directement sur une clé USB.

$ sudo dd if=CentOS-7-x86_64-Minimal-1810.iso of=/dev/sdX

Démarrage

Débrancher clés USB, disques externes et autres périphériques amovibles. Autrement l’installateur les proposera au formatage.

Langue et clavier

Dans l’écran de bienvenue, sélectionner la langue (Français) et la localisation (Français – France). La disposition du clavier sera définie par le biais de l’écran principal de l’installateur.

Réseau et nom d’hôte

Le réseau n’est pas activé par défaut, il faut donc songer à l’activer explicitement.

Les noms des interfaces réseau ont changé depuis CentOS 7.0. Désormais, on n’a plus affaire à eth0, eth1, eth2, wlan0, etc. En théorie, le nouveau schéma de nommage est moins arbitraire et offre davantage de consistance en se basant sur l’emplacement physique de la carte dans la machine. En pratique, les administrateurs du monde entier se sont gratté la tête face aux nouvelles dénominations pour le moins farfelues.

  • enp2s0
  • enp3s0
  • enp3s1
  • etc.

Si vous gérez les noms d’hôte de manière centralisée avec Dnsmasq, vous pouvez très bien laisser le nom d’hôte localhost.localdomain. Dans le cas contraire, choisissez-en un à votre convenance.  Ce n’est pas la peine de fournir un FQDN (Fully Qualified Domain Name). Un nom d’hôte simple comme centosbox, poste-01 ou bernadette suffit ici.

Date et heure

Vérifier si le fuseau horaire (Europe/Paris) est correctement configuré. Éventuellement, activer Heure du réseau et vérifier les serveurs NTP.

Désactivation de Kdump

Kdump est un mécanisme de capture lors du plantage d’un noyau. Il peut être désactivé.

Partitionnement manuel

L’outil de partitionnement graphique de CentOS n’est pas très intuitif. Voici un exemple de schéma de partitionnement courant.

  • une partition /boot de 500 MiB, formatée en ext2
  • une partition swap, équivalent à la RAM disponible
  • une partition principale, formatée en ext4

Sur une station de travail munie de deux disques durs, on choisira le RAID 1.

  1. Cliquer sur Destination de l’installation.
  2. Vérifier si le ou les disques durs sont bien sélectionnés.
  3. Cocher Je vais configurer le partitionnement et cliquer sur Terminé.
  4. Dans le menu déroulant, sélectionner Partition standard au lieu de LVM.

Partition EFI

Sur les systèmes UEFI, il faut d’abord créer un point de montage /boot/efi pour une partition de type EFI, au début du disque.

  1. Cliquer sur le bouton « + » pour créer un point de montage.
  2. Créer le point de montage /boot/efi et spécifier une taille de 100 MiB.
  3. Définir le type de périphérique standard.
  4. Choisir le système de fichiers EFI System Partition et l’étiquette efi.
  5. Confirmer Mise à jour des paramètres.

Partition /boot

La taille de la partition /boot sera relativement réduite. Il faudra veiller à ne pas laisser s’entasser les vieux kernels sous peine de la remplir assez rapidement.

  1. Cliquer sur le bouton « + » pour créer un nouveau point de montage.
  2. Créer le point de montage /boot avec une capacité de 500 MiB ou plus.
  3. Définir le type de périphérique standard ou RAID 1.
  4. Choisir le système de fichiers ext2 et l’étiquette boot.
  5. Confirmer Mise à jour des paramètres.

Partition swap

Dans certains cas, la partition swap pourra être reléguée à la fin du disque par l’installateur pour une utilisation optimale.

  1. Cliquer sur le bouton « + » pour créer un autre point de montage.
  2. Créer le point de montage swap en spécifiant sa capacité en GiB.
  3. Définir le type de périphérique standard ou RAID 1.
  4. Choisir l’étiquette swap.
  5. Confirmer Mise à jour des paramètres.

Partition principale

La partition principale occupera tout l’espace disque restant.

  1. Cliquer sur le bouton « + » pour créer un dernier point de montage.
  2. Créer le point de montage / sans spécifier la capacité souhaitée.
  3. Définir le type de périphérique standard ou RAID 1.
  4. Choisir le système de fichiers ext4 et l’étiquette root.
  5. Confirmer Mise à jour des paramètres, puis Terminé.

Choix des paquets

Dans l’écran de sélection des logiciels du DVD, on optera pour le groupe de paquets Installation minimale proposé par défaut. Le DVD minimal ne laisse pas le choix de toute façon.

Utilisateur initial

Créer un utilisateur normal (par exemple kikinovak ou microlinux) en prenant soin de cocher la case Faire de cet utilisateur un administrateur. L’utilisateur sera ajouté au groupe wheel et pourra se servir de la commande sudo.

Synchronisation de la grappe RAID

La synchronisation initiale d’une grappe RAID peut être assez longue. L’astuce suivante permet d’accélérer le processus de façon significative.

$ echo 50000 | sudo tee /proc/sys/dev/raid/speed_limit_min

Configuration provisoire du réseau

L’installation par défaut ne fournit pas la commande ifconfig, qui fait partie du paquet net-tools. Dans un premier temps, il faudra afficher la configuration réseau en utilisant la commande ip fournie par le paquet iproute2.

$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 ...
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
   qdisc mq state UP qlen 1000
 link/ether 2c:27:d7:15:54:a1 brd ff:ff:ff:ff:ff:ff
 inet 192.168.2.5/24 brd 192.168.2.255 scope global dynamic enp2s0
 ...
3: enp3s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
 ...
$ ip route
default via 192.168.2.1 dev enp2s0 proto dhcp metric 100

Récupérer les scripts de post-installation

L’utilitaire git ne fait pas partie d’une installation par défaut.

$ sudo yum install git

Récupérer le contenu de mon dépôt Github.

$ git clone https://github.com/kikinovak/centos

Le répertoire centos/el7/scripts fournit une série de scripts post-installation qui nous faciliteront la tâche. Notez que la première moitié de ces scripts sert également à peaufiner la configuration des serveurs, ce qui explique leur organisation un peu particulière.

$ cd centos/el7/scripts/
$ ls -1
00-activer-nat.sh
00-desactiver-ipv6.sh
00-elaguer-systeme.sh
00-logs-persistants.sh
00-restaurer-profil.sh
01-personnaliser-shell.sh
02-configurer-depots.sh
03-installer-base.sh
04-supprimer-paquets.sh
05-configurer-depots-x11.sh
06-installer-x11.sh
07-installer-kde.sh
08-personnaliser-menus.sh
09-installer-profil.sh
source.sh

Désactiver l’IPv6

Si nous n’utilisons pas l’IPv6, ce n’est pas une mauvaise idée de désactiver ce protocole.

$ sudo ./00-desactiver-ipv6.sh

Le script se charge de reconfigurer automatiquement certains services pour qu’ils fonctionnent correctement avec le seul protocole IPv4.

Personnaliser le shell

Le script 01-personnaliser-shell.sh installe une configuration personnalisée pour la console.

  • Il fournit une invite de commande distincte pour root et les utilisateurs.
  • Il installe une poignée d’alias pratiques.
  • Il modifie quelques options globales pour l’éditeur Vim.
$ sudo ./01-personnaliser-shell.sh

Configurer les dépôts de paquets

Le script 02-configurer-depots.sh se charge de configurer automatiquement les dépôts de paquets pour Yum.

  • Les dépôts officiels sont configurés de manière prioritaire.
  • On passe directement par le miroir de téléchargement de Free pour mieux gérer le blocage éventuel par un proxy filtrant.
  • Les paquets deltarpm et yum-plugin-priorities sont installés.
  • La mise à jour initiale est effectuée.
  • Le dépôt tiers EPEL est configuré avec une priorité de 10.
  • Le dépôt tiers ELRepo est configuré sans être activé.
$ sudo ./02-configurer-depots.sh

Si vous souhaitez voir en détail tout ce qui se passe sous le capot, ouvrez une deuxième console et affichez les logs des scripts en direct.

$ tail -f /tmp/02-configurer-depots.log

Installer le système de base

Le script 03-installer-base.sh se charge d’installer un système de base cohérent. La notion de « système de base » est forcément subjective. Voilà ce que j’entends par là.

  • Le groupe de paquets Core.
  • Le groupe de paquets Base.
  • Une poignée d’outils en ligne de commande dont je me sers régulièrement.
$ sudo ./03-installer-base.sh

Supprimer les paquets inutiles

Le script 04-supprimer-paquets.sh supprime une poignée de paquets inutiles.

$ sudo ./04-supprimer-paquets.sh

Configurer les dépôts supplémentaires

Le script 02-configurer-depots.sh s’est chargé de mettre en place une configuration pour Yum telle que nous pouvons la trouver sur un serveur. Le script 05-configurer-depots-x11.sh rectifie le tir et ajoute une série de dépôts supplémentaires.

  • Le dépôt CR (Continuous Release) est désactivé, étant donné que son utilisation peut causer des problèmes sur les postes de travail.
  • Les dépôts tiers Nux-Dextop et Adobe sont activés avec une priorité de 10.
$ sudo ./05-configurer-depots-x11.sh

Installer X11 et WindowMaker

Le script 06-installer-x11.sh se charge d’installer le serveur graphique X.org et le gestionnaire de fenêtres WindowMaker. Le groupe de paquets X Window System fournit certes le gestionnaire de fenêtres Openbox, mais vu que WindowMaker était le premier environnement graphique que j’ai utilisé lorsque j’ai débuté avec Linux, j’ai décidé de le garder par simple habitude.

L’intérêt de cette démarche, c’est de peaufiner la configuration de la carte graphique à l’aide d’un gestionnaire de fenêtres léger avant d’installer un environnement de bureau complet.

$ sudo ./06-installer-x11.sh

Lancer WindowMaker.

$ startx

Le thème défini par l’équipe de CentOS n’est pas très joli à voir. Il vaut mieux utiliser le thème par défaut de WindowMaker en sélectionnant Apparence > Thèmes > Default dans le menu principal. Voilà à quoi cela ressemble au final.

WindowMaker

Au cas où la résolution de l’affichage n’est pas adaptée, on peut créer un fichier /etc/X11/xorg.conf.d/10-custom-screen.conf en adaptant la configuration comme ceci par exemple.

Section "Screen"
  Identifier "Default Screen"
  Device "Intel HD Graphics"
  Monitor "Default Monitor"
  DefaultDepth 24
  Subsection "Display"
    Depth 24
    Modes "1280x1024" 
  EndSubSection
EndSection

Installer le pilote NVidia

Si l’on dispose d’une carte graphique NVidia, c’est une bonne idée de remplacer le pilote libre nouveau par le pilote propriétaire nvidia.

$ lspci | grep -i vga 01:00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1)

Le dépôt ELRepo fournit l’utilitaire nvidia-detect qui permet d’afficher le pilote correspondant à notre carte.

$ sudo yum --enablerepo=elrepo install nvidia-detect

Détecter le pilote correspondant à la carte.

$ nvidia-detect
kmod-nvidia

Installer le pilote.

$ sudo yum --enablerepo=elrepo install kmod-nvidia

Pour utiliser le pilote, il suffit de redémarrer.

Démarrage en mode graphique

Si tout s’est bien passé, on peut définir le démarrage en mode graphique par défaut.

$ sudo systemctl set-default graphical.target

Pour ma part, j’aime bien afficher les messages du système au démarrage. Sur une machine équipée d’une carte graphique NVidia, j’édite /etc/default/grub comme ceci.

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="quiet \
                    nomodeset \
                    vga=791 \
                    plymouth.ignore-udev"
GRUB_DISABLE_RECOVERY="true"

Sur une machine équipée d’une autre carte graphique, on pourra utiliser les options suivantes.

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="quiet video=1024x768"
GRUB_DISABLE_RECOVERY="true"

Prendre en compte les modifications.

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Le prochain redémarrage affichera le gestionnaire de connexion GDM. Notons au passage que Red Hat Enterprise Linux et CentOS ne fournissent pas KDM.

GDM

Dans le gestionnaire de fenêtres WindowMaker, effectuer un clic droit sur le fond, puis Applications > Terminaux > Xterm pour la suite des opérations.

Installer KDE et les applications

Le script 07-installer-kde.sh se charge d’installer l’environnement de bureau KDE ainsi qu’une panoplie complète d’applications, à raison d’une par tâche. Il récupère également un assortiment de polices TrueType, une collection de fonds d’écran ainsi qu’une série de codecs et de plug-ins multimédia.

$ sudo ./07-installer-kde.sh

Le script récupère un peu plus d’un gigaoctets de paquets. C’est donc l’occasion de prendre un café en attendant la fin du téléchargement et de l’installation.

Le script 08-personnaliser-menus.sh remplace les entrées de menu par défaut de KDE par une série d’entrées de menu personnalisées, disponibles en français, en anglais et en allemand.

$ sudo ./08-personnaliser-menus.sh

Installer le profil par défaut

J’ai peaufiné la configuration de KDE pour obtenir quelque chose d’esthétique, de sobre et de fonctionnel, adapté à une utilisation professionnelle. Cette configuration est empaquetée « prête à l’emploi » dans le script 09-installer-profil.sh.

$ sudo ./09-installer-profil.sh

Le profil s’installe dans l’arborescence /etc/skel et sera donc utilisé par les futurs utilisateurs. Pour installer le profil pour l’utilisateur en cours, on pourra utiliser le script 00-restaurer-profil.sh. Ce script installe la configuration pour tous les utilisateurs définis sur la machine.

$ sudo ./00-restaurer-profil.sh

Ouvrir une session KDE

À partir de là, il suffit de fermer la session WindowMaker et de se reconnecter dans GDM, qui lancera automatiquement la session par défaut Espace de travail Plasma KDE.

CentOS 7 KDE

Configurer le réseau sur un poste de travail

Dans la configuration par défaut, le réseau est géré par NetworkManager. On va laisser le service en l’état, étant donné que son utilisation est devenu obligatoire dans certains contextes, notamment l’authentification centralisée. En contrepartie, on peut simplifier quelque peu la configuration en éditant le fichier correspondant à notre carte réseau comme ceci par exemple.

# /etc/sysconfig/network-scripts/ifcfg-enp2s0
DEVICE=enp2s0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=yes

Si l’on gère les noms d’hôtes de manière centralisée avec Dnsmasq, il faut supprimer les occurrences correspondantes dans /etc/hosts.

# /etc/hosts
127.0.0.1 localhost.localdomain localhost

Le fichier /etc/hostname devra juste contenir ceci.

localhost

Configurer le réseau sur un portable

Sur un ordinateur portable, on utilisera le NetworkManager et l’applet correspondant kde-plasma-networkmanagement. Pour éviter les conflits, il vaut mieux supprimer les fichiers ifcfg-<interface> dans /etc/sysconfig/network-scripts et garder uniquement ifcfg-lo. Ensuite, il suffit de vérifier si le service NetworkManager est actif.

$ systemctl status NetworkManager

Désactiver le pare-feu

Sur un poste de travail, un pare-feu n’a pas beaucoup de sens à partir du moment où l’on pense à désactiver les services inutiles.

Arrêter le pare-feu.

$ sudo systemctl stop firewalld

Supprimer le démon correspondant.

$ sudo yum remove firewalld

Régler les problèmes relatifs à SELinux

Dans la configuration par défaut, SELinux est en mode renforcé. Pour l’instant j’ai une seule alerte qui est manifestement en rapport avec le pilote propriétaire NVidia.

$ LANG=en_US.utf8 && sudo sealert -a /var/log/audit/audit.log
100% done
found 1 alerts in /var/log/audit/audit.log
----------------------------------------------------------------------------
SELinux is preventing /usr/libexec/gnome-session-check-accelerated-gl-helper 
from sendto access on the unix_dgram_socket @nvidia971e6db7.
*****  Plugin catchall (100. confidence) suggests   ************************
If you believe that gnome-session-check-accelerated-gl-helper should be 
allowed sendto access on the @nvidia971e6db7 unix_dgram_socket by default.
Then you should report this as a bug. You can generate a local policy module 
to allow this access. Do allow this access for now by executing:
# ausearch -c 'gnome-session-c' --raw | audit2allow -M my-gnomesessionc
# semodule -i my-gnomesessionc.pp

Il suffit de suivre les recommandations du système pour régler le problème.

# ausearch -c 'gnome-session-c' --raw | audit2allow -M my-gnomesessionc
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i my-gnomesessionc.pp
# semodule -i my-gnomesessionc.pp

Maintenance

Dans un premier temps, je range le répertoire de scripts centos dans les Téléchargements pour éviter d’encombrer mon répertoire utilisateur.

$ mv centos/ Téléchargements/

Le script 08-personnaliser-menus.shque nous avons vu un peu plus haut se charge de personnaliser les entrées du menu KDE, pour les remplacer par quelque chose de plus lisible, avec des traductions un peu plus appropriées. Lors d’une mise à jour, certaines entrées de menu peuvent être écrasées par les fichiers par défaut. Il suffit de relancer le script pour rétablir les entrées correctes.

$ cd ~/Téléchargements/centos/el7/scripts/
$ sudo ./08-personnaliser-menus.sh

3 commentaires

Antoine · 24 avril 2019 à 14 h 16 min

Je vais tester sur un PC portable de récupération, un HP ProBook 6470b, core i5 et 8 Go de RAM. Il date de 2014.
Ensuite tests et le choix de l’OS se fera entre Leap 15 et Cent OS 7.
Merci et bravo pour ces tutoriels qui nous font avancer.

Seminaire entreprise · 14 juin 2019 à 10 h 22 min

Très bonne chronique. j’apprécie beaucoup votre site internet

    kikinovak · 14 juin 2019 à 11 h 01 min

    Merci pour les fleurs ! Un gentil bonjour de la garrigue gardoise.

Répondre à Seminaire entreprise Annuler la réponse

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.