Voici le troisième article de la formation Ansible. Dans mon précédent article, nous avons mis en place un labo pour Ansible. Aujourd’hui nous allons aborder les différentes manières d’installer Ansible.
Control Host vs. Target Hosts
Dans mon quotidien, j’utilise Ansible – entre autres choses – pour gérer le modeste parc de machines de notre petit lycée local :
- 1 serveur proxy filtrant
- 1 serveur de fichiers
- 1 serveur de sauvegardes
- 4 postes de travail au secrétariat
- 12 postes de travail dans la salle info
- 8 ordinateurs portables
Ces machines tournent toutes sous Rocky Linux dans sa version 8 ou 9. Vous serez peut-être surpris d’apprendre que la collection d’outils Ansible n’est installée sur aucune d’entre elles. En effet, j’utilise Ansible sur mon ordinateur portable sous Rocky Linux 9 pour gérer la configuration de toutes ces machines.
- Dans le jargon d’Ansible, cette machine fait office de Control Host (parfois aussi appelé Node Manager).
- Les machines de l’école (serveurs, postes de travail, portables) sont mes Target Hosts (ou Nodes).
- Ansible est installé sur le seul Control Host (mon portable en l’occurrence).
- Les Target Hosts ont besoin uniquement de SSH et de Python, et c’est tout.
- Notez bien l’absence de tout agent sur les Target Hosts.
Installer Ansible sur le Control Host
En règle générale, Ansible est fourni par les dépôts de paquets des principales distributions Linux. Red Hat Enterprise Linux et son clone Rocky Linux constituent des exceptions peu glorieuses. Dans ce cas, il faudra passer par le dépôt tiers EPEL.
Avant de mettre la main à la pâte, récupérez les box Vagrant des trois principales distributions que vous risquez de rencontrer dans un contexte professionnel :
- Rocky Linux (clone de Red Hat Enterprise Linux)
- Debian
- OpenSUSE Leap (mouture libre de SUSE Linux Enterprise Server et Desktop)
$ vagrant box add generic/rocky9 $ vagrant box add generic/debian12 $ vagrant box add generic/opensuse15
Chacune de ces box est fournie pour toute une panoplie d’hyperviseurs : VirtualBox
, HyperV
, libvirt
, QEMU
, VMWare
, etc. Veillez à bien sélectionner la version pour libvirt
.
Placez-vous dans le répertoire du premier atelier pratique :
$ cd ~/formation-ansible/atelier-01
Rocky Linux
Démarrez la VM Rocky Linux :
$ vagrant up rocky
Connectez-vous à cette VM :
$ vagrant ssh rocky
Dans la configuration par défaut de cette distribution, seuls les dépôts officiels sont activés :
$ dnf repolist repo id repo name appstream Rocky Linux 9 - AppStream baseos Rocky Linux 9 - BaseOS extras Rocky Linux 9 - Extras
L’ajout du dépôt tiers EPEL peut s’effectuer par l’installation du paquet correspondant :
$ sudo dnf install -y epel-release
L’utilisation de ce dépôt nécessite l’activation du dépôt officiel CodeReadyBuilder (CRB) :
$ sudo crb enable Enabling CRB repo CRB repo is enabled and named: crb
Ansible est désormais disponible et peut être installé :
$ sudo dnf install -y ansible
Vérifiez si l’installation s’est bien déroulée :
$ ansible --version
ansible [core 2.14.14]
config file = /etc/ansible/ansible.cfg
...
Quittez la VM :
$ exit
Supprimez la VM :
$ vagrant destroy -f rocky
Debian
Démarrez la VM Debian :
$ vagrant up debian
Connectez-vous à cette VM :
$ vagrant ssh debian
Mettez à jour les informations sur les paquets :
$ sudo apt update
Ansible est fourni par les dépôts officiels de la distribution :
$ apt-cache search --names-only ansible
ansible - Configuration management, deployment, and task execution system
ansible-core - Configuration management, deployment, and task execution system
ansible-lint - lint tool for Ansible playbooks
...
Installez Ansible :
$ sudo apt install -y ansible
Vérifiez si l’installation s’est bien déroulée :
$ ansible --version
ansible [core 2.14.16]
config file = None
...
Quittez la VM :
$ exit
Supprimez la VM :
$ vagrant destroy -f debian
OpenSUSE Leap
Démarrez la VM OpenSUSE :
$ vagrant up suse
Connectez-vous à cette VM :
$ vagrant ssh suse
Mettez à jour les informations sur les paquets :
$ sudo zypper refresh
Ansible est fourni par les dépôts officiels de la distribution :
$ zypper search ansible
...
S | Name | Summary | Type
--+----------------+--------------------------------------------------+--------------
| ansible | SSH-based configuration management system | paquet
| ansible | SSH-based configuration management system | paquet source
| ansible-cmdb | Ansible Configuration Management Database | paquet
| ansible-doc | Documentation for Ansible | paquet
| ansible-runner | Package for interfacing with Ansible | paquet
| ansible-test | Tool for testing ansible plugin and module code | paquet
Installez Ansible :
$ sudo zypper install -y ansible
Vérifiez si l’installation s’est bien déroulée :
$ ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
...
Quittez la VM :
$ exit
Supprimez la VM :
$ vagrant destroy -f suse
Installer Ansible avec PIP et Virtualenv
Il peut arriver que vous soyez embêté pour installer Ansible :
- Votre distribution Linux ne propose pas de paquet Ansible.
- Elle en propose un, mais il est obsolète.
- Les dépôts de paquets tiers ne sont pas une option.
Dans ce cas, vous pouvez toujours installer Ansible par le biais du gestionnaire de paquets Python PIP (Package Installer for Python). L’approche saine consiste ici à utiliser Virtualenv pour éviter de spammer votre système et créer des conflits avec les paquets Python inclus dans la distribution.
Démarrez la VM Debian :
$ vagrant up debian
Connectez-vous à cette VM :
$ vagrant ssh debian
Mettez à jour les informations sur les paquets :
$ sudo apt update
Installez PIP et Virtualenv :
$ sudo apt install -y python3-pip python3-venv
Initialisez l’environnement Virtualenv :
$ python3 -m venv ~/.venv/ansible
Le nom du répertoire est une convention et peut être choisi librement. Tant qu’à faire, j’ai opté pour quelque chose de parlant dans le contexte.
Lancez Virtualenv :
$ source ~/.venv/ansible/bin/activate (ansible) $
Mettez à jour PIP pour cette première utilisation :
(ansible) $ pip install --upgrade pip
Installez Ansible :
(ansible) $ pip install ansible
Vérifiez si l’installation s’est bien déroulée :
(ansible) $ ansible --version
ansible [core 2.17.3]
config file = None
...
Quittez l’environnement Virtualenv :
(ansible) $ deactivate
Quittez la VM :
$ exit
Supprimez la VM :
$ vagrant destroy -f debian
Exercice 1
- Récupérez la box Vagrant de la distribution Ubuntu dans sa version 20.04 (
generic/ubuntu2004
). - Démarrez la VM
ubuntu
depuis le répertoireatelier-01
. - Connectez-vous à cette VM.
- Rafraîchissez les informations sur les paquets.
- Recherchez le paquet
ansible
avec les options qui vont bien. - Installez le paquet officiel fourni par la distribution.
- Vérifiez si l’installation s’est bien déroulée.
- Notez la version d’Ansible.
- Déconnectez-vous et supprimez la VM.
Exercice 2
Répétez l’exercice précédent en configurant un dépôt PPA (Personal Package Archive) pour Ansible :
$ sudo apt-add-repository -y ppa:ansible/ansible
Notez la version fournie par ce dépôt tiers et comparez avec la version officielle de l’exercice précédent.
Exercice 3
Lancez successivement une VM Rocky Linux et une VM OpenSUSE et installez Ansible en utilisant PIP et Virtualenv.
Notez bien que contrairement à Debian, le paquet python3-venv
n’est pas nécessaire ici, étant donné que Virtualenv fait partie des modules standard de Python dans ces deux distributions.
Lire la suite : Authentification
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