Introduction
Dans cet atelier, vous allez apprendre à mettre en place et à configurer un environnement CentOS 7. Alors qu'une approche traditionnelle utiliserait une machine virtuelle complète dans VirtualBox, cet exercice utilise une méthode plus moderne et efficace en employant des conteneurs Docker. Vous travaillerez dans un environnement basé sur le cloud pour déployer un conteneur CentOS 7 léger et isolé, offrant un système Linux fonctionnel sans la lourdeur d'une VM classique.
Le processus commence par la récupération de l'image officielle CentOS 7 depuis le registre Docker Hub. Vous créerez et configurerez ensuite un nouveau conteneur basé sur cette image. Enfin, vous personnaliserez le système en cours d'exécution en installant l'environnement de bureau GNOME et en activant la connexion graphique, ce qui aboutira à une instance CentOS 7 opérationnelle dotée d'une interface utilisateur graphique.
Télécharger et installer VirtualBox et l'ISO CentOS 7
Dans cette étape, nous allons préparer notre environnement en obtenant un système CentOS 7. L'exercice d'origine utilise VirtualBox pour installer une machine virtuelle complète. Cependant, dans cet environnement cloud, une approche plus efficace consiste à utiliser des conteneurs Docker. Docker nous permet d'exécuter des applications et des systèmes d'exploitation isolés dans des environnements légers appelés conteneurs, qui démarrent beaucoup plus rapidement et consomment moins de ressources que les machines virtuelles traditionnelles.
Nous allons commencer par télécharger (ou "puller", selon la terminologie Docker) l'image officielle CentOS 7 depuis Docker Hub, qui est un registre public d'images de conteneurs.
Tout d'abord, récupérons l'image CentOS 7. La commande docker pull récupère une image depuis un registre. Nous spécifierons centos comme nom d'image et 7 comme tag, ce qui correspond à la version CentOS 7.
Exécutez la commande suivante dans votre terminal :
docker pull centos:7
Vous verrez s'afficher la progression du téléchargement. Docker télécharge l'image par couches. Une fois l'opération terminée, le résultat ressemblera à ceci :
7: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
Maintenant que l'image est téléchargée, vérifions qu'elle est disponible sur notre système local. Nous pouvons lister toutes les images Docker présentes localement à l'aide de la commande docker images.
docker images
La sortie devrait inclure une entrée pour centos avec le tag 7. L'IMAGE ID et la date de création (CREATED) peuvent différer sur votre système.
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 eeb6ee3f44bd 2 years ago 204MB
L'image CentOS 7 étant téléchargée avec succès, nous sommes prêts à créer et à exécuter un conteneur à partir de celle-ci lors de la prochaine étape.
Créer et configurer une nouvelle machine virtuelle pour CentOS 7
Dans cette étape, nous allons créer et configurer notre environnement CentOS 7. Au lieu d'une machine virtuelle traditionnelle, nous utiliserons l'image Docker centos:7 que nous avons téléchargée pour lancer un conteneur. Un conteneur est une instance active d'une image. Il nous servira de "machine virtuelle" pour le reste de cet atelier.
Nous utiliserons la commande docker run pour créer et démarrer le conteneur. Nous inclurons quelques options importantes :
-it: Cette combinaison d'options connecte notre terminal au terminal du conteneur, nous permettant d'exécuter des commandes de manière interactive.--name centos_workstation: Cela attribue un nom facile à retenir,centos_workstation, à notre conteneur. Cela facilite sa gestion (démarrage, arrêt, suppression) par la suite.centos:7: Spécifie l'image que nous voulons exécuter./bin/bash: C'est la commande qui sera exécutée à l'intérieur du conteneur lors de son démarrage. Elle lancera le shell Bash, nous donnant une invite de commande.
Maintenant, exécutez la commande suivante pour démarrer votre conteneur CentOS :
docker run -it --name centos_workstation centos:7 /bin/bash
Après avoir exécuté la commande, vous remarquerez que l'invite de votre terminal change. Elle ressemblera à ceci :
[root@a1b2c3d4e5f6 /]#
Cette nouvelle invite indique que vous êtes maintenant à l'intérieur du conteneur CentOS 7 en tant qu'utilisateur root. La suite de lettres et de chiffres (par exemple, a1b2c3d4e5f6) est l'identifiant unique de votre conteneur. Vous n'êtes plus dans le shell de l'environnement hôte de LabEx.
Conformément au plan de l'exercice original, créons un utilisateur non-root. Nous allons créer un utilisateur nommé student1. Utilisez la commande useradd pour cela :
useradd student1
Ensuite, définissez un mot de passe pour student1. Nous utiliserons student1 comme mot de passe pour simplifier les choses. La commande passwd vous demandera de saisir et de confirmer le nouveau mot de passe.
passwd student1
Lorsque vous y êtes invité, tapez student1, appuyez sur Entrée, puis tapez à nouveau student1 et appuyez sur Entrée.
Changing password for user student1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Pour terminer cette étape, nous devons retourner à notre terminal principal LabEx. Tapez exit et appuyez sur Entrée pour quitter le shell du conteneur.
exit
Cela arrête le conteneur et vous ramène à l'invite du répertoire ~/project. Le conteneur centos_workstation existe désormais et pourra être redémarré lors des étapes suivantes.
Effectuer l'installation de CentOS 7 avec des partitions personnalisées
Dans cette étape, nous allons configurer notre nouvel environnement CentOS 7. L'exercice d'origine implique un processus d'installation détaillé avec un partitionnement de disque personnalisé. Dans notre environnement basé sur Docker, ce processus est différent. L'installation est déjà faite car nous utilisons une image pré-construite. Le concept de création manuelle de partitions comme /, /home et /var ne s'applique pas à un conteneur Docker standard, car il utilise le système de fichiers de l'hôte de manière stratifiée.
Au lieu de cela, nous nous concentrerons sur la configuration initiale du conteneur en cours d'exécution, ce qui est une tâche courante après le déploiement d'un nouveau système. Nous allons démarrer le conteneur, mettre à jour ses paquets logiciels et installer sudo pour permettre à notre utilisateur non-root d'effectuer des tâches administratives.
Tout d'abord, démarrons le conteneur que nous avons créé à l'étape précédente. Il est actuellement arrêté. Utilisez la commande docker start :
docker start centos_workstation
Cette commande affichera le nom du conteneur, centos_workstation, confirmant qu'il a démarré. Maintenant, attachez votre terminal au conteneur en cours d'exécution à l'aide de docker attach :
docker attach centos_workstation
L'invite de votre terminal redeviendra le shell root du conteneur :
[root@a1b2c3d4e5f6 /]#
Configurons maintenant les services nécessaires et préparons l'environnement. Tout d'abord, nous devons corriger la configuration des dépôts CentOS 7 car la version a atteint sa fin de vie :
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/#baseurl/baseurl/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's|http://mirror.centos.org|http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
L'image minimale de CentOS 7 est très basique. Commençons par mettre à jour tous les paquets installés vers leurs dernières versions à l'aide de yum, le gestionnaire de paquets de CentOS. L'option -y répond automatiquement "oui" à toutes les demandes de confirmation.
yum update -y
Ce processus peut prendre quelques minutes. Une fois terminé, nous installerons le paquet sudo, qui n'est pas inclus dans l'image minimale. sudo permet aux utilisateurs autorisés d'exécuter des commandes en tant qu'un autre utilisateur, généralement l'utilisateur root.
yum install -y sudo
Une fois l'installation terminée, nous devons accorder les privilèges sudo à l'utilisateur student1 créé précédemment. Sous CentOS, cela se fait généralement en ajoutant l'utilisateur au groupe wheel.
usermod -aG wheel student1
usermodest une commande pour modifier un compte utilisateur.- Les options
-aGindiquent à la commande d'ajouter (append) l'utilisateur à un groupe (Group) supplémentaire, qui est iciwheel.
Pour vérifier que student1 a maintenant accès à sudo, passons à cet utilisateur et testons-le.
su - student1
Votre invite changera en [student1@a1b2c3d4e5f6 ~]$. Maintenant, essayez d'exécuter la commande whoami avec sudo. Elle devrait indiquer que vous êtes root.
sudo whoami
Le résultat attendu est :
root
Parfait ! Notre conteneur est maintenant configuré avec un système à jour et un utilisateur disposant des droits sudo. Pour passer à l'étape suivante, nous devons quitter le conteneur tout en le laissant s'exécuter en arrière-plan. Ne tapez pas exit. À la place, utilisez la combinaison de touches Ctrl+P suivie de Ctrl+Q. Cela détachera votre terminal du conteneur, vous ramenant à l'invite LabEx, tandis que le conteneur continuera de fonctionner.
Installer le bureau GNOME et activer la connexion graphique
Dans cette étape, nous allons adapter l'objectif de l'exercice original consistant à installer un bureau graphique. Dans un environnement de conteneur comme celui que nous utilisons, l'installation d'une interface utilisateur graphique (GUI) complète telle que GNOME n'est pas une pratique courante. Les conteneurs sont conçus pour être légers et sont généralement gérés en ligne de commande.
Au lieu de cela, nous allons pratiquer la même compétence — l'installation de groupes de paquets logiciels liés — en installant un ensemble d'outils en ligne de commande courants. Nous installerons également un navigateur web textuel pour répondre à l'objectif initial d'avoir un accès par navigateur dans notre nouvel environnement.
Tout d'abord, nous devons entrer dans notre conteneur en cours d'exécution. À l'étape précédente, nous avons laissé le conteneur centos_workstation fonctionner en arrière-plan. Nous utiliserons la commande docker exec pour ouvrir un nouveau shell à l'intérieur en tant qu'utilisateur student1.
Si vous êtes déjà dans le conteneur, vous pouvez ignorer cette commande.
docker exec -it centos_workstation su - student1
Votre invite de commande deviendra [student1@a1b2c3d4e5f6 ~]$, indiquant que vous êtes maintenant connecté en tant que student1 à l'intérieur du conteneur.
Maintenant, utilisons yum pour installer le groupe de paquets "Development Tools". Ce groupe contient des outils essentiels pour compiler des logiciels à partir des sources, tels que gcc, make et git. Puisque student1 a les privilèges sudo, nous pouvons effectuer cette installation. L'option -y répond automatiquement "oui" à toutes les invites.
sudo yum groupinstall -y "Development Tools"
Cette installation téléchargera et installera de nombreux paquets et peut prendre plusieurs minutes. Vous verrez beaucoup de texte défiler au fur et à mesure de l'installation des paquets.
Ensuite, pour compléter notre configuration, installons lynx, un navigateur web textuel léger. C'est un outil utile pour consulter rapidement des sites web ou télécharger des fichiers directement depuis la ligne de commande.
sudo yum install -y lynx
L'installation de lynx devrait être très rapide. Testons notre nouveau navigateur en naviguant vers un site web simple.
lynx example.com
Vous verrez le contenu textuel de la page d'accueil de example.com s'afficher dans votre terminal. Vous pouvez utiliser les touches fléchées pour naviguer. Pour quitter lynx, appuyez sur la touche q de votre clavier. Lorsqu'on vous demande de confirmer (Are you sure you want to quit? [Y/N]), appuyez sur y.
Vous avez maintenant configuré avec succès votre environnement CentOS avec des outils de développement importants et un navigateur en ligne de commande. Pour terminer cet atelier, quittez le conteneur.
Tapez exit pour vous déconnecter de l'utilisateur student1, puis tapez à nouveau exit pour quitter le shell du conteneur et revenir à votre terminal principal LabEx.
exit
exit
Résumé
Dans cet atelier, vous avez appris à mettre en place un environnement CentOS 7 en utilisant une approche moderne basée sur les conteneurs avec Docker. Vous avez commencé par récupérer l'image officielle CentOS 7 depuis le registre public Docker Hub à l'aide de la commande docker pull centos:7. Vous avez ensuite vérifié que l'image a été téléchargée avec succès et qu'elle était disponible sur votre système local en listant toutes les images Docker locales avec la commande docker images.
Cette configuration initiale prépare le terrain pour les étapes suivantes, où vous créerez et exécuterez un conteneur à partir de cette image. L'objectif global était de réaliser une installation complète de CentOS 7, incluant des configurations personnalisées et l'installation de l'environnement de bureau graphique GNOME, le tout au sein d'un conteneur Docker léger et efficace.



