AnsibleVoici 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 :

$ vagrant box add generic/rocky9
$ vagrant box add generic/debian12
$ vagrant box add generic/opensuse15

ImportantChacune 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

AstuceLe 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épertoire atelier-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.

ImportantNotez 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

Laisser un commentaire

Emplacement de l’avatar

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