Ansible est un outil d'automatisation populaire utilisé par les administrateurs système et les développeurs pour mettre les ordinateurs dans un état spécifique. Les modules Ansible sont, en quelque sorte, ce que sont les commandes pour un ordinateur Linux. Ils fournissent des solutions à des problèmes spécifiques, et une tâche courante lors de la maintenance des ordinateurs est de les maintenir à jour et cohérents. Dans cet article, je vous montre comment installer des packages logiciels avec Ansible.
Exigences
Pour exécuter des commandes ad hoc et des playbooks Ansible sur des nœuds gérés, un utilisateur distant avec un accès SSH est nécessaire sur chaque nœud géré . Pour cet exemple, j'appellerai cet utilisateur tux . Tux a besoin d'une autorisation pour exécuter des commandes avec des privilèges élevés pour installer des packages. Donc le fichier /etc/sudoers.d/tux
avec le contenu suivant doit exister sur tous les nœuds gérés :
tux ALL=(ALL) NOPASSWD:ALL
Utiliser visudo
pour éditer le /etc/sudoers
entrées de fichier.
Installation du paquet
Supposons que vous ayez trouvé un nouveau package sympa appelé sysstat
que vous souhaitez maintenant installer sur tous vos hôtes à la fois. C'est une tâche facile pour Ansible :
$ ansible all --user tux --become \
--module-name dnf -a’name=sysstat state=latest’
Et tu as fini.
[ Vous pourriez également aimer : Comment créer un Playbook Ansible ]
Cette ligne s'appelle une commande ad hoc Ansible. Ce sont généralement des tâches ponctuelles que vous ne vous attendez pas à répéter. Cependant, dans un souci de réutilisation, il est préférable de mettre ces instructions dans un playbook Ansible, comme ceci :
---
- hosts: all
tasks:
- name: Make sure the current version of ‘sysstat’ is installed.
dnf:
name: sysstat
state: latest
Enregistrez ce playbook dans un fichier appelé install_packages.yml
, puis vous pouvez l'exécuter avec la commande suivante :
$ ansible-playbook -u tux -b install_packages.yml
Vous pouvez le mettre sur un calendrier avec cron
, en veillant à ce que le package souhaité soit installé et réinstallé si quelqu'un le supprime.
Installer plusieurs packages
Que faire si vous souhaitez installer une liste de packages sur tous vos hôtes ? C'est facile aussi :
---
- hosts: all
tasks:
- name: Package installation
dnf:
name:
- sysstat
- httpd
- mariadb-server
state: latest
Exécutez le playbook :
$ ansible-playbook -u tux -b install_packages.yml
Je suis sûr que vous avez l'idée. Besoin de plus de forfaits ? Ajoutez-les simplement à la liste.
Récapitulez
La gestion des logiciels avec Ansible est assez simple. Vous pouvez utiliser le module DNF pour gérer l'installation proprement dite et un playbook Ansible basé sur YAML pour distribuer les instructions d'installation à vos nœuds gérés. Ceci est un autre excellent exemple de la façon dont Ansible simplifie la vie des administrateurs système qui gèrent de nombreux systèmes.
[ Obtenez cet ebook gratuit :Gérer vos clusters Kubernetes pour les nuls. ]