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.
- Présentation
- Support d’installation
- Démarrage
- Langue et clavier
- Interfaces réseau
- Date et heure
- Désactivation de Kdump
- Partitionnement manuel
- Partition EFI
- Partition /boot
- Partition swap
- Partition principale
- Choix des paquets
- Utilisateur initial
- Accord de licence
- Synchronisation de la grappe RAID
- Chargeur de démarrage
- Récupérer le script de post-installation
- Lancer le script de post-installation
- Créer un ou plusieurs utilisateurs
- Configurer le réseau sur un poste de travail
- Configurer le réseau sur un portable
- Désactiver le pare-feu
- Régler les problèmes relatifs à SELinux
- Maintenance
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 enext2
- 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.
- Cliquer sur Destination de l’installation.
- Vérifier si le ou les disques durs sont bien sélectionnés.
- Cocher Je vais configurer le partitionnement et cliquer sur Terminé.
- 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.
- Cliquer sur le bouton “+” pour créer un point de montage.
- Créer le point de montage /boot/efi et spécifier une taille de 100 MiB.
- Définir le type de périphérique standard.
- Choisir le système de fichiers EFI System Partition et l’étiquette efi.
- 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.
- Cliquer sur le bouton “+” pour créer un nouveau point de montage.
- Créer le point de montage /boot avec une capacité de 500 MiB ou plus.
- Définir le type de périphérique standard ou RAID 1.
- Choisir le système de fichiers ext2 et l’étiquette boot.
- 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.
- Cliquer sur le bouton “+” pour créer un autre point de montage.
- Créer le point de montage swap en spécifiant sa capacité en GiB.
- Définir le type de périphérique standard ou RAID 1.
- Choisir l’étiquette swap.
- Confirmer Mise à jour des paramètres.
Partition principale
La partition principale occupera tout l’espace disque restant.
- Cliquer sur le bouton “+” pour créer un dernier point de montage.
- Créer le point de montage / sans spécifier la capacité souhaitée.
- Définir le type de périphérique standard ou RAID 1.
- Choisir le système de fichiers ext4 et l’étiquette root.
- 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.
- Appuyer sur [1] pour afficher la licence.
- Appuyer sur [2] pour accepter la licence.
- Appuyer sur [C] pour continuer le démarrage initial.
- 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
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
Corrigé, merci.
Ping : Poste de travail CentOS 7 + KDE “aux petits oignons” - My Tiny Tools
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).
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.
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 😉
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.
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.
Ah OK, pas de souci. Du coup, j’essaie de voir quel peut bien être ce blog. Ma langue au chat.
Bonjour/bonsoir
Alors pour contrer le petit soucis avec NetworkManager , j’ai remplacé GDM par lightdm et hop plus besoins de NetworkManager .
Amicalement Eric
Ah tiens, c’est pas bête. Je vais tester.
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
Maintenant que j’ai si joliment customisé mon GDM, je n’ai plus envie de le lacher.
:o)
Je compatis , a ta saisie de GDM . J’avais aussi essayé sddm mais hélas ce fus un échec total pour moi . Par contre j’ai pas compris pour quoi GDM a besoins de NetworkManager ?
Faudrait que les développeurs GNOME arrêtent de fumer la moquette. :o)
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.
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.
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.