AnsibleDans mon précédent article, je vous ai présenté Ansible, un outil de gestion de configuration pour votre parc de machines. À mon humble avis de formateur, le meilleur moyen pour assimiler une nouvelle technologie consiste à mettre les mains dans le cambouis et de jouer avec. Pour ce faire, il nous faut tout d’abord un laboratoire sous forme d’environnement de test.

C’est là où les choses se compliquent un peu. Dans mes cours sur Git ou sur Docker, il suffit d’installer VirtualBox sur votre machine sous Windows ou sous Linux, avec une simple machine virtuelle sous Linux pour tous les ateliers pratiques. Avec une technologie comme Ansible, les choses ne sont pas aussi simples, étant donné que nous avons besoin d’un réseau de machines virtuelles capables de communiquer entre elles.

Il existe toute une série de solutions pour obtenir un tel environnement de test, et j’en ai essayé quelques-unes. Je ne vais pas faire l’inventaire exhaustif de toutes les possibilités. Voici la configuration que j’ai retenue pour cette formation :

  • Un système Linux installé sur un disque SSD externe relié à votre PC avec un adaptateur USB.
  • Un hyperviseur basé sur la technologie de virtualisation KVM (Kernel-based Virtual Machine).
  • La surcouche Vagrant qui permet de mettre en place des réseaux de machines virtuelles « jetables » en deux minutes chrono.

Avantages de cette solution :

  • Vous travaillez sur votre PC sans toucher au système qui y est installé.
  • On s’acquitte des idiosyncrasies aléatoires de Windows et de VirtualBox.
  • On utilise un hyperviseur performant 100 % Open Source et qui JusteMarche(tm).
  • On travaille sur des « vraies » VM et non pas sur des conteneurs qui émulent des VM.

AstuceVous vous demandez peut-être pourquoi je n’ai pas mentionné les gens qui possèdent un Mac. Les machines récentes de la marque Apple permettent certes d’installer Linux, mais cette procédure nous obligerait à sauter à travers des cerceaux en feu. Dans nos cours à l’École des Mines, on a l’habitude de prêter des PC portables aux rares étudiants qui possèdent un Mac.

Le matériel

En termes de PC, n’importe quelle machine raisonnablement récente fait l’affaire. Pour vous donner une idée, j’ai pu réaliser tous les ateliers pratiques de la formation sur un vieux Dell Optiplex avec un processeur Intel Core i5 et 8 Go de RAM. Sachant qu’on installe un hyperviseur et qu’on fait tourner jusqu’à quatre machines virtuelles en même temps.

Voici le disque SSD externe avec adaptateur USB que j’utilise dans l’exemple :

Disque SSD externe

Le but du jeu, c’est d’installer Rocky Linux 9 sur ce disque branché à votre machine. Cette manière de procéder gardera votre système principal (Windows, Debian, Ubuntu, Arch, etc.) intact.

Téléchargement

  • Allez sur la page du projet : https://rockylinux.org.
  • Suivez le lien Download.
  • Repérez la section Default Images – Rocky Linux 9.
  • Téléchargez l’ISO Minimal (un peu moins de 2 Go).

Rocky Linux 9 Minimal

Confectionner la clé USB

Sous Microsoft Windows, il existe une multitude de « solutions » pour écrire une image ISO sur une clé USB, qui se distinguent toutes par le fait qu’elles ne fonctionnent pas. Une seule application s’acquitte correctement de cette tâche : le logiciel libre Rufus.

  • Insérez une clé USB formatée.
  • Lancez Rufus.
  • Vérifiez si votre clé USB s’affiche bien dans le champ Périphérique.
  • Sélectionnez le fichier ISO.
  • Cliquez sur Démarrer.

Sous Linux, l’image ISO est hybride et peut s’écrire directement sur une clé USB :

  • Insérez une clé USB (formatée ou non, peu importe).
  • Identifiez le fichier de périphérique /dev/sdX à l’aide de la commande lsblk.
  • Utilisez la commande dd en tant que root pour écrire le fichier ISO sur la clé.
# dd status=progress if=Rocky-9.4-x86_64-minimal.iso of=/dev/sdX

Démarrer l’installation

  • Insérez le support d’installation dans votre PC.
  • Ne branchez pas encore le SSD externe !
  • Démarrez sur la clé en mode UEFI ou Legacy, peu importe.
  • Mettez l’option Install Rocky Linux 9 en surbrillance.
  • Démarrez en appuyant sur Entrée.

Labo Ansible

Dans l’écran de bienvenue, sélectionnez la langue (Français) et la localisation (Français > France) :

Labo Ansible

La fenêtre principale de l’installateur Anaconda s’affiche :

Labo Ansible

Partitionnement du SSD externe

Cette étape est un peu délicate et mérite toute votre attention. Pour commencer, nous allons identifier le disque correspondant à notre système installé, celui auquel on ne veut surtout pas toucher. Dans l’installateur, cliquez sur Installation Destination et regardez ce qui s’affiche :

Labo Ansible

  • Ici, je note bien que ATA SATA3 60GB SSD correspond au disque de mon système installé.
  • Je branche le disque SSD externe et j’attends quelques secondes.
  • Je clique sur Rafraîchir en bas à droite de la fenêtre.
  • Dans la fenêtre subséquente je clique sur Réanalyser les disques.
  • Si tout se passe bien, je vois apparaître mon disque SSD externe.
  • Sur ma machine, c’est le disque JMicron Tech avec une capacité de 223,57 Gio.
  • Je coche ce disque pour indiquer à l’installateur qu’il faut l’utiliser.
  • Je décoche mon disque système pour indiquer à l’installateur qu’il ne faut pas y toucher.
  • Je coche l’option Je voudrais libérer plus d’espace qui me permet de vider le disque SSD externe.
  • Je garde l’option Automatique dans la Configuration du stockage.
  • Je clique sur Fait et je supprime les partitions existantes du SSD externe.

Labo Ansible

Choix des paquets

Gardez l’option Installation Minimale :

Labo Ansible

Désactivation de Kdump

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

Labo Ansible

Date et heure

Configurez le fuseau horaire (par exemple Europe/Paris) :

Labo Ansible

Réseau et nom d’hôte

  • Le cas échéant, vérifiez l’obtention d’une adresse IP dans le réseau local.
  • Choisissez un nom d’hôte simple comme testlab ou sandbox.
  • Confirmez en cliquant sur Appliquer, puis sur Fait.

Labo Ansible

Paramètres utilisateur

  • Définissez le mot de passe root.
  • Décochez l’option Verrouiller le compte Root.
  • Cochez l’option Permettre les connexions SSH avec mot de passe.
  • Ne définissez pas encore l’utilisateur initial du système. On fera ça un peu plus loin.

Labo Ansible

Lancer l’installation

Si tout se passe bien, la fenêtre principale d’Anaconda doit ressembler à ceci à peu de choses près :

Labo Ansible

  • Cliquez sur Commencer l’installation.
  • Patientez quelques minutes pendant l’installation du système minimal.
  • Au terme de l’installation, cliquez sur Redémarrer le système.

ImportantN’oubliez pas que votre installation s’est effectuée sur un disque externe. Il vous faudra donc appuyer sur Échap, F9, F12 ou n’importe quelle autre touche pour afficher le menu de démarrage de votre BIOS/UEFI.

Mise en place du labo Ansible

Pour l’instant, nous ne disposons que d’un système Linux minimal avec guère plus qu’un noyau, un shell Bash et une poignée d’outils en ligne de commande. De là à installer une station de travail graphique avec un hyperviseur et toutes les applications nécessaires, il y a pas mal de choses à faire.

AstuceLa bonne nouvelle, c’est que j’ai fait ce travail pour vous, en utilisant Ansible. Vous n’aurez donc qu’à installer les outils prérequis et lancer un script d’installation qui se chargera de tout de manière automagique.

Connectez-vous en tant que root à votre système minimal et activez le dépôt EPEL (Extra Packages for Enterprise Linux) :

# dnf install -y epel-release

AstuceParadoxalement, Red Hat Enterprise Linux ainsi que les clones comme Rocky Linux ne fournissent pas une installation complète d’Ansible dans les dépôts officiels, alors même qu’Ansible est développé par Red Hat. Il faut donc activer le dépôt communautaire EPEL pour récupérer le paquet ansible.

Installez Git et Ansible :

# dnf install -y git ansible

Récupérez les fichiers de mon dépôt Git rocky-9-ansible sur GitLab  :

# git clone https://gitlab.com/kikinovak/rocky-9-ansible

Placez-vous dans le répertoire qui contient l’installateur :

# cd rocky-9-ansible/installer/ema/
# ls
ansible.cfg  homelab.yml

Lancez l’installateur. Il vous demandera de fournir un mot de passe pour votre utilisateur. Si vous confirmez simplement par Entrée, il choisira le mot de passe par défaut ema123 :

# ./homelab.yml 
Choose a password for user ema [ema123]: ***********

À partir de là, l’installateur gère tout automatiquement :

  • la configuration du shell Bash
  • la configuration des dépôts de paquets officiels et tiers
  • l’installation d’une panoplie complète d’outils en ligne de commande
  • l’installation d’un système graphique
  • l’installation d’un bureau KDE minimal
  • l’installation et la configuration de l’hyperviseur KVM
  • l’installation et la configuration de Vagrant

Servez-vous un café pendant que les étapes de l’installation défilent sur votre écran. Il y en a une bonne centaine :

Labo Ansible

 

AstuceNotez ici que j’ai utilisé Ansible de manière peu courante. Pour ceux qui connaissent déjà un peu : j’ai transformé un playbook en script exécutable qui fonctionne à la manière d’un SETUP.EXE sous Windows. Pas très orthodoxe certes, mais très pratique.

Prise en main et premier test

Au terme de l’installation, redémarrez et connectez-vous en tant qu’utilisateur ema avec le mot de passe que vous venez de définir :

Labo Ansible

Le labo Ansible se présente sous forme d’un bureau KDE minimal avec la panoplie d’outils et d’applications nécessaires sous le capot :

Labo Ansible

Pour commencer, on va tester le bon fonctionnement des briques logicielles essentielles à notre travail. Ouvrez un terminal et affichez la liste des box Vagrant dont vous disposez. Pour l’instant il n’y en a aucune :

$ vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.

Récupérez la box d’Alpine Linux 3.19 en prenant soin de choisir celle qui est compatible avec l’hyperviseur KVM (libvirt) :

$ vagrant box add generic/alpine319
==> box: Loading metadata for box 'generic/alpine319'
    box: URL: https://vagrantcloud.com/api/v2/vagrant/generic/alpine319
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) docker
2) hyperv
3) libvirt
4) parallels
5) qemu
6) virtualbox
7) vmware_desktop

Enter your choice: 3
==> box: Adding box 'generic/alpine319' (v4.3.12) for provider: libvirt (amd64)
    ...
    box: Calculating and comparing box checksum...
==> box: Successfully added box 'generic/alpine319' (v4.3.12) for 'libvirt (amd64)'!

Récupérez les ateliers pratiques de la formation depuis mon dépôt GitLab :

$ git clone https://gitlab.com/kikinovak/formation-ansible

Pour tester le bon fonctionnement de Vagrant et de KVM, on va lancer un premier cluster de quatre machines virtuelles Alpine Linux :

$ cd formation-ansible/test-00/
$ vagrant up
Bringing machine 'alpine-01' up with 'libvirt' provider...
Bringing machine 'alpine-02' up with 'libvirt' provider...
Bringing machine 'alpine-03' up with 'libvirt' provider...
Bringing machine 'alpine-04' up with 'libvirt' provider...

Patientez une petite minute et appréciez le résultat dans le gestionnaire de machines virtuelles (Virtual Machine Manager) :

Labo Ansible

Vérifiez si vous pouvez envoyer un ping à chacun de ces hôtes :

$ ping -c 1 -q 10.23.45.10
...
1 packets transmitted, 1 received, 0% packet loss, time 0ms
$ ping -c 1 -q 10.23.45.20
...
1 packets transmitted, 1 received, 0% packet loss, time 0ms
$ ping -c 1 -q 10.23.45.30
...
1 packets transmitted, 1 received, 0% packet loss, time 0ms
$ ping -c 1 -q 10.23.45.40
...
1 packets transmitted, 1 received, 0% packet loss, time 0ms

Une fois que tout fonctionne, faites un peu de ménage :

$ vagrant destroy -f
==> alpine-04: Removing domain...
==> alpine-04: Deleting the machine folder
==> alpine-03: Removing domain...
==> alpine-03: Deleting the machine folder
==> alpine-02: Removing domain...
==> alpine-02: Deleting the machine folder
==> alpine-01: Removing domain...
==> alpine-01: Deleting the machine folder

Lire la suite : Installation.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


0 commentaire

Laisser un commentaire

Emplacement de l’avatar

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