Poste de travail CentOS 7 + KDE “aux petits oignons”

centos-logo

Cet 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. Pour plus de détails, lire la documentation officielle. CentOS 7 est officiellement supporté jusqu’au 30 juin 2024. On choisira cette branche sur du matériel raisonnablement récent qui supporte un OS 64-bits. L’installateur de CentOS 7 requiert au moins 1 Go de RAM. Sur une machine disposant de moins de mémoire vive ou dotée d’un processeur 32-bits, on pourra opter pour CentOS 6.

Note importante : l’article initialement publié en été 2017 a été entièrement revu et corrigé. La procédure de post-installation est maintenant bien plus simple, étant donné qu’elle est à peu près entièrement scriptée.

CentOS 7 KDE

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 KDE est préconfiguré de manière intuitive.
  • Une panoplie d’applications populaires est installée pour toutes les tâches courantes.
  • Certaines applications “usines à 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.
  • Infinality permet d’obtenir un affichage aussi net que sur les systèmes de chez Apple.

Support d’installation

Pour l’installation d’un poste de travail, on choisira le DVD. CentOS 7-1804 correspond à Red Hat Enterprise Linux 7.5.

  • CentOS-7-x86_64-DVD-1804.iso

Graver 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é. Sur ma station de travail, je dois compter près d’une demi-heure pour cette opération.

# dd if=CentOS-7-x86_64-DVD-1804.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.

Sur un ordinateur portable, il vaut mieux passer par une connexion câblée le temps de l’installation. La connexion wifi sera réglée en mode graphique par NetworkManager une fois que le bureau sera installé.

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.

Interfaces réseau

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é avec cette nouvelle version. Désormais, on n’a plus affaire à eth0, eth1, eth2, wlan0, etc. 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.

  • enp2s0
  • enp3s0
  • enp3s1
  • etc.

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 KDE Plasma Workspaces, mais sans cocher les options supplémentaires comme Applications KDE, Applications Internet, etc.

Utilisateur initial

Créer un utilisateur provisoire install. Éventuellement, cocher l’option Faire de cet utilisateur un administrateur pour l’ajouter au groupe wheel et lui permettre d’utiliser sudo. Cet utilisateur sera supprimé une fois l’installation terminée.

Accord de licence

CentOS affiche un dialogue d’acceptation de licence au démarrage initial du système depuis la version 7. Dans les versions antérieures à CentOS 7-1611 (RHEL 7.3), la logique de ce dialogue était quelque peu déroutante. Voici ce qu’il faut faire, dans l’ordre.

  1. Appuyer sur [1] pour afficher la licence.
  2. Appuyer sur [2] pour accepter la licence.
  3. Appuyer sur [C] pour continuer le démarrage initial.
  4. Appuyer sur [C] une deuxième fois pour confirmer le tout.

CentOS 7-1611 a corrigé ce problème et affiche désormais un dialogue en mode graphique où il suffit de cocher J’accepte le contrat de licence.

Synchronisation de la grappe RAID

Sur une station de travail installée en RAID 1, 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 > /proc/sys/dev/raid/speed_limit_min

Chargeur de démarrage

Sur une station de travail munie de deux disques durs configurés en RAID 1, il faudra installer le chargeur de démarrage manuellement sur le MBR de chaque disque. En cas de défaillance d’un disque, on pourra toujours démarrer sur l’autre disque.

# grub2-install /dev/sda
# grub2-install /dev/sdb

Récupérer le script de post-installation

L’utilitaire git ne fait pas partie d’une installation par défaut. Il va donc falloir l’installer.

# yum install git

Ensuite, récupérer le contenu de mon dépôt Github.

# cd
# git clone https://github.com/kikinovak/centos-7-desktop-kde

Lancer le script de post-installation

Le répertoire centos-7-desktop-kde contient un script postinstall.sh. Lancer ce script.

# cd centos-7-desktop-kde
# ./postinstall.sh

L’affichage du script est assez laconique. Pour en savoir un peu plus sur le détail et la progression des opérations, on peut ouvrir un deuxième terminal et afficher le fichier journal “à chaud”, comme ceci.

# tail -f /tmp/postinstall.log

Le script se charge automatiquement des opérations suivantes.

  • Basculer SELinux en mode permissif.
  • Désactiver l’IPv6.
  • Personnaliser le shell Bash pour root et les utilisateurs.
  • Personnaliser la configuration de Vim.
  • Configurer les dépôts de paquets officiels de manière prioritaire.
  • Effectuer la mise à jour initiale du système.
  • Configurer les dépôts tiers : EPEL, Nux, Adobe, ELRepo, Microlinux.
  • Installer une panoplie d’outils en ligne de commande.
  • Supprimer les applications inutiles.
  • Supprimer les polices TrueType exotiques qui encombrent les menus.
  • Installer une panoplie cohérente d’applications supplémentaires.
  • Personnaliser les entrées du menu KDE.
  • Installer le profil par défaut des nouveaux utilisateurs.
  • Installer une panoplie de polices TrueType avec le rendu Infinality.
  • Installer une collection de fonds d’écran.
  • Personnaliser le gestionnaire de connexion GDM.

Remarque importante : SELinux est basculé en mode permissif de manière temporaire afin de permettre à l’administrateur de résoudre manuellement les éventuels blocages avant de rebasculer en mode renforcé.

Pour vous donner un ordre d’idée, j’ai testé le script sur une paire de vieux Dell Optiplex avec un processeur double coeur, 4 gigaoctets de RAM et une connexion ADLS à 20 Mbit/s, et ça a mouliné près d’une demi-heure. Vous avez donc largement le temps de boire un ou deux cafés en attendant que ça défile.

Créer un ou plusieurs utilisateurs

Une fois que le script est arrivé à terme, on peut créer un nouvel utilisateur. Si vous souhaitez qu’il puisse utiliser sudo, ajoutez-le au groupe wheel.

# useradd -c "Nicolas Kovacs" kikinovak
# passwd kikinovak
# usermod -a -G wheel kikinovak

Redémarrez le PC, connectez-vous et supprimez l’utilisateur install provisoire.

# userdel -r install

Configurer le réseau sur un poste de travail

Dans la configuration par défaut, le réseau est géré par NetworkManager, qui est pratique sur un portable, mais ne sert pas à grand-chose sur un poste de travail ou une station de travail. Notons au passage que contrairement à ce qui se dit dans des blogs un peu partout sur le Web, NetworkManager n’est pas nécessaire pour la gestion du réseau. C’est juste une couche d’abstraction et de complexité supplémentaire, et dont on peut aisément se passer.

Avant la sortie de CentOS 7.5, il était tout à fait possible de désactiver le service NetworkManager (systemctl disable NetworkManager) voire même de supprimer le paquet correspondant (yum remove NetworkManager) pour configurer les choses de manière traditionnelle.

Or, depuis la version 7.5, les choses ont changé quelque peu. D’une part, le gestionnaire de connexion GDM dépend désormais de NetworkManager. D’autre part, la désactivation du service nous gratifie d’un avertissement au démarrage. Pour configurer le réseau de manière traditionnelle, on va donc simplement laisser le service en l’état et éditer 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=no

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 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.

# systemctl stop firewalld

Supprimer le démon correspondant.

# yum remove firewalld

Régler les problèmes relatifs à SELinux

Au bout d’un certain temps d’utilisation, une série d’alertes SELinux s’accumulent.

# sealert -a /var/log/audit/audit.log

La première alerte concerne /usr/libexec/colord.

SElinux is preventing /usr/libexec/colord from read access
on the file hwdb.bin.

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

# ausearch -c 'colord' --raw | audit2allow -M my-colord
# semodule -i my-colord.pp

La deuxième alerte affiche un problème avec /usr/bin/loginctl.

SELinux is preventing /usr/bin/loginctl from read access 
on the file system.journal.

Là aussi, on va suivre la démarche préconisée.

# ausearch -c 'systemd-loginct' --raw | audit2allow \
  -M my-systemdloginct
# semodule -i my-systemdloginct.pp

Enfin, le bloqueur de publicités uBlock Origin semble poser problème.

SELinux is preventing /usr/lib64/firefox/plugin-container from read 
access on the file /home/kikinovak/.../uBlock0@raymondhill.net.xpi.

Là aussi, on va autoriser le plugin en suivant les recommandations du système.

# restorecon -v /home/kikinovak/.../uBlock0@raymondhill.net.xpi
# setsebool -P unconfined_mozilla_plugin_transition 0

Maintenance

Le script menus.sh situé dans le même répertoire que postinstall.sh 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 /root/centos-7-desktop-kde
# ./menus.sh
Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

18 réponses à Poste de travail CentOS 7 + KDE “aux petits oignons”

  1. Eric dit :

    Bonjour je suis Eric

    Je vois sur ton site # /etc/yum.repos.d/elrepo.org au lieu de # /etc/yum.repos.d/elrepo.repo . Une petite erreur ou pas ?

    Amicalement
    Eric

  2. Ping : Poste de travail CentOS 7 + KDE “aux petits oignons” - My Tiny Tools

  3. devops035 dit :

    Bonjour,

    J’ai plusieurs remarques sur le processus d’installation présenté:
    – l’utilisation de ext2 pour la partition /boot me laisse songeur: aujourd’hui et depuis plusieurs années, on utilise ext3 ou ext4 et je ne sais même pas si le kernel de CentOS 7 est encore compilé avec le support de ext2,
    – pourquoi désactiver NetworkManager et stopper le démon Firewalld ? Pourquoi ne pas aussi désactiver SELinux ? Bien sûr, il existe une dépendance entre Firewalld et NetworkManager (la gestion des zones de Firewalld nécessite la présence de NetworkManager), désactiver NetworkManager implique désactiver Firewalld mais où s’arrête-t-on ? Alors que désactiver NetworkManager sur un serveur m’apparaît envisageable (iptable est plus puissant sur des configurations complexes), désactiver NetworkManager sur un poste de travail pose question,
    – pour les postes équipés de disques SSD, le lancement régulier par cron ou par un service systemd de la commande fstrim est conseillé (https://www.pcastuces.com/pratique/astuces/3934-print.htm).

    • kikinovak dit :

      Réponses en vrac.

      1. La différence entre l’ext2 d’un côté et l’ext3/4, c’est la journalisation. Et ça ne sert à rien de ranger le kernel dans une partition journalisée.

      2. NetworkManager et firewalld sont des couches d’abstraction à la sauce Red Hat, alors que SELinux est un mécanisme de contrôle d’accès, et les comparer n’a aucun sens. En l’occurence, j’utilise SELinux en mode renforcé sur tous mes serveurs (voir mon article détaillé sur la chose). Je n’ai pas besoin de firewalld, parce que je préfère un bon vieux script Iptables, ce qui est expliqué en détail ici. Quant à NetworkManager, je vous renvoie à l’excellent livre “How Linux Works” de Brian Ward, notamment le chapitre sur la configuration du réseau et le rôle de NetworkManager. En ce qui me concerne, je l’utilise strictement sur les ordinateurs portables, mais sur les postes fixes et sur les serveurs, je le vire, il ne sert strictement à rien.

      3. J’utilise les bons vieux disques SATA, ça reste plus pérenne, même si c’est plus lent.

      Un gentil bonjour de la garrigue gardoise.

      • devops035 dit :

        1. ext3/4 représentent plus que l’ajout de la journalisation sur ext2, ils correspondent aussi à des versions améliorées de ext2 (nouvelles fonctionnalités, corrections de bugs, etc).
        2. NetworkManager et Firewalld ne partagent peut-être pas la même universalité que SELinux, il n’en demeure pas moins qu’ils constituent ensemble des éléments de sécurité de la distribution CentOS/RHEL et apparaissent donc bien dans le même champ. Avec NetworkManager, on peut créer des zones de niveaux de sécurité différents, filtrer des adresses MAC, etc.
        Lorsqu’on envisage la sécurité sur un poste de travail, les trois éléments mentionnés doivent être considérés.
        On sait depuis plusieurs années que NetworkManager va devenir incontournable. La version RHEL 8 qui apparaîtra certainement l’année prochaine ne devrait pas permettre sa désinstallation. Qu’on le veuille ou non, il va falloir s’y faire.
        Par ailleurs, dire que NetworkManager ne sert à rien m’apparaît être une affirmation un peu brutale: certaines configurations avancées impliquant du teaming ou du bonding sur les serveurs sont difficiles à réaliser sans. Quant à Firewalld, comme je l’ai mentionné précédemment, il n’est pas très adapté aux configurations complexes mais est un progrès majeur sur les configurations simples (pas d’interruption lors de la reconfiguration, configuration très lisible, rapidité de mise en oeuvre, etc), ce qui est normalement le cas d’un poste de travail.
        3. Sur un PC portable, la première chose à mettre en place est un disque SSD: je veux bien discuter sur tout mais il y a des limites 😉

  4. kikinovak dit :

    Sinon, vous avez pensé à créer votre propre blog ? Ce serait peut-être plus simple que de me démontrer par A + B dans le sillage de mes articles que je me mets le doigt dans l’oeil jusqu’à l’omoplate. Juste une suggestion, hein.

    • devops035 dit :

      Il existe déjà, il est en anglais et vous le connaissez certainement.
      Je ne souhaitais absolument pas vous mettre en difficulté mais simplement apporter modestement quelques compléments.
      Acceptez mes excuses si le ton employé apparaissait agressif, ce n’était pas le cas.

  5. Eric dit :

    Bonjour/bonsoir

    Alors pour contrer le petit soucis avec NetworkManager , j’ai remplacé GDM par lightdm et hop plus besoins de NetworkManager .

    Amicalement Eric

  6. Eric dit :

    Bonjour/bonsoir
    Je ne sais pas si c’est bête ou pas , mais cerise sur le gâteaux lightdm consomme moins de CPU . Et en plus avec lightdm il faut beaucoup moins de dépendance de GNOME ceci est bien pratique si on utilise KDE ou même XFCE . J’ai testé le tout avec un vieux PC DELL optiplex 755 . Je suis preneur pour tout autre idée .

    Amicalement Eric

  7. Franck Muller dit :

    Bonjour, j’ai un léger soucis avec la procédure d’installation. Tout se passe bien mais le script bloque et quitte sur l’installation de HandBrake. Du coup, aucuns logiciels ne s’est installé et le reste de la procédure est arrêté. Une idée ?
    Merci d’avance.

    • kikinovak dit :

      Je confirme. J’ai signalé le problème au mainteneur du dépôt Nux-Dextop. En attendant j’ai supprimé le paquet HandBrake de la liste. Mettez le dépôt Github à jour et relancez-le.

      # cd
      # cd centos-7-desktop-kde
      # git pull
      # ./postinstall.sh

      Bon weekend.

      • Franck Muller dit :

        J’ai refais une install propre et effectivement tout c’est très bien déroulé. Un grand merci pour votre aide et surtout pour partager votre savoir-faire.

        Bon weekend.

Laisser un commentaire

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.