Ansible

Installation facile de plusieurs packages sur CentOS à l'aide d'Ansible

Installation facile de plusieurs packages sur CentOS à l'aide d'Ansible
Sur Ansible, vous pouvez utiliser le dnf ou alors Miam module pour installer des packages logiciels sur des hôtes CentOS ou RHEL. Par défaut, ces modules n'installent qu'un seul progiciel. Vous pouvez utiliser le dnf ou alors Miam module plusieurs fois dans votre playbook Ansible pour installer autant de packages logiciels que vous le souhaitez. Cependant, ce n'est pas la façon la plus efficace de le faire, car il y aura beaucoup de répétition de code que nous aimerions éviter si possible. Heureusement, nous pouvons utiliser des boucles pour installer facilement autant de packages logiciels que nous le souhaitons sans aucune répétition de code.

Cet article vous montrera comment installer plusieurs packages logiciels sur des hôtes CentOS/RHEL à l'aide de la boucle Ansible. Alors, commençons.

Conditions préalables

Si vous voulez essayer les exemples de cet article,
1) Vous devez avoir Ansible installé sur votre ordinateur.
2) Vous devez avoir au moins un hôte CentOS/RHEL 7 ou 8 configuré pour l'automatisation Ansible.

Il existe de nombreux articles sur LinuxHint dédiés à l'installation d'Ansible et à la configuration des hôtes pour l'automatisation d'Ansible. Vous pouvez les consulter si besoin.

Configuration d'un répertoire de projet

Avant d'aller plus loin, nous allons créer un répertoire de projet, juste pour garder les choses un peu organisées.

Pour créer le répertoire du projet centos-pkg/ et tous les sous-répertoires requis (dans votre répertoire de travail actuel), exécutez la commande suivante :

$ mkdir -pv centos-pkg/playbooks

Une fois le répertoire du projet créé, accédez au répertoire du projet, comme suit :

$ cd centos-pkg/

Ensuite, créez un hôtes fichier d'inventaire, comme suit :

$ nano hôtes

Ajoutez l'adresse IP ou le nom DNS de l'hôte (vm3.nœudkite.com, dans mon cas) de vos hôtes CentOS/RHEL dans le fichier d'inventaire (un hôte par ligne).

Une fois que vous avez terminé, enregistrez le fichier en appuyant sur + X, suivie par Oui et .

Créer un fichier de configuration Ansible ansible.cfg dans votre répertoire de projet, comme suit :

$ nano ansible.cfg

Ensuite, tapez les lignes suivantes dans le ansible.cfg déposer.

[valeurs par défaut]
inventaire           = hôtes
host_key_checking   = False

Une fois que vous avez terminé, enregistrez le ansible.cfg fichier en appuyant sur + X, suivie par Oui et .

Essayez de cingler tous les hôtes CentOS/RHEL que vous avez ajoutés dans votre hôtes fichier d'inventaire, comme suit :

$ ansible all -u ansible -m ping

Comme vous pouvez le voir, mon hôte CentOS 8 est accessible.

Installation d'un seul progiciel

Cette section vous montrera comment installer un seul progiciel à l'aide du dnf ou alors Miam module d'Ansible sur vos hôtes CentOS/RHEL.

Tout d'abord, créez le nouveau playbook installer le paquet.yaml dans le cahiers/ répertoire, comme suit :

$ nano playbooks/install_package.yaml

Ensuite, tapez les lignes suivantes dans le installer le paquet.yaml déposer.

- hôtes : tous
utilisateur : ansible
devenir vrai
Tâches:
- nom : Installer le package httpd
dnf :
nom : httpd
état : présent
update_cache : vrai

Une fois que vous avez terminé, enregistrez le fichier en appuyant sur + X, suivie par Oui et .

Ici, j'ai ajouté une seule tâche, Installer le paquet httpd. Le but de cette tâche est d'installer le httpd paquet sur CentOS/RHEL 8.

CentOS/RHEL 7 n'utilise pas le dnf gestionnaire de paquets, il utilise le Miam directeur chargé d'emballage. Donc, si vous utilisez CentOS/RHEL 7, changez dnf à Miam, comme indiqué dans la capture d'écran ci-dessous. Aucun autre changement n'est requis.

le Nom L'option est utilisée pour indiquer au dnf ou alors Miam module le nom du paquet que vous essayez d'installer. Dans ce cas, ce sera le httpd paquet.

le Etat L'option est utilisée pour indiquer au dnf ou alors Miam moduler l'action (je.e. installer, mettre à niveau, supprimer) il devrait prendre le paquet donné. Dans ce cas, l'action est cadeau.

Les valeurs prises en charge de la Etat option sont :

cadeau - installera le paquet s'il n'est pas déjà installé.

dernier - installera le paquet s'il n'est pas déjà installé ; s'il est déjà installé, le module vérifiera les mises à jour ; si une version mise à jour du package est disponible, il installera la nouvelle version.

absent - supprimera le paquet s'il est installé.

Si la mise à jour_cache l'option est définie sur Vrai, le cache du référentiel de packages DNF/YUM sera mis à jour avant l'installation du package.

Exécutez le installer le paquet.yaml livre de jeu, comme suit :

$ ansible-playbook playbooks/install_package.yaml

Comme vous pouvez le voir, le playbook installer le paquet.yaml exécuté avec succès.

Comme vous pouvez le voir, le httpd package est installé sur mon hôte CentOS 8, que j'ai ajouté sur mon hôtes fichier d'inventaire.

$ sudo dnf list installé | grep httpd

Si vous êtes sur CentOS/RHEL 7, utilisez le Miam gestionnaire de paquets au lieu du dnf gestionnaire de packages pour vérifier si le package est installé.

$ sudo yum list installé | grep httpd

Installation de plusieurs packages logiciels à l'aide de la boucle with_items

La section précédente de cet article vous a montré comment installer un seul package logiciel sur votre hôte CentOS/RHEL à l'aide d'Ansible dnf/Miam module. Cette section vous montrera comment installer plusieurs packages logiciels sur vos hôtes CentOS/RHEL à l'aide d'Ansible avec_éléments boucle.

Tout d'abord, créez le nouveau playbook installer_paquets.yaml, comme suit:

$ nano playbooks/install_packages.yaml

Tapez les lignes suivantes dans le installer_paquets.yaml déposer.

- hôtes : tous
utilisateur : ansible
devenir vrai
Tâches:
- name: Installer tous les packages
dnf :
nom : ' élément '
état : présent
update_cache : vrai
avec_éléments :
httpd
php
vsftpd

Une fois que vous avez terminé, appuyez sur + X, suivie par Oui et , pour sauver le installer_paquets.yaml déposer.

Ici, j'ai défini les noms des packages (httpd, php, vsftpd) que je veux installer en utilisant avec_éléments boucle.

J'ai remplacé le nom du package par la variable Objet. le Objet la variable sera mise à jour avec le nom du package à chaque itération.

Exécutez le installer_paquets.yaml livre de jeu, comme suit :

$ ansible-playbook playbooks/install_packages.yaml

Comme vous pouvez le voir, le playbook installer_paquets.yaml exécuté avec succès.

le httpd, php, et vsftpd les packages sont installés sur mon hôte CentOS 8, comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ sudo dnf list installé | grep httpd
$ sudo dnf list installé | grep php
$ sudo dnf list installé | grep vsftpd

Installation de plusieurs packages logiciels à l'aide de la boucle Loop

À partir d'Ansible 2.5, la façon recommandée d'utiliser des boucles dans votre playbook est d'utiliser le boucle mot-clé, au lieu du avec_éléments mot-clé. C'est pourquoi vous avez vu un message d'avertissement lorsque j'ai lancé le installer_paquets.yaml playbook dans la section précédente de cet article.

Travailler avec des boucles en utilisant le boucle le mot-clé est très facile.

Tout d'abord, ouvrez le playbook installer_paquets.yaml (à partir de l'exemple précédent), comme suit :

$ nano playbooks/install_packages.yaml

Dans le installer_paquets.yaml playbook, remplacez simplement le terme avec_éléments avec le terme boucle, comme indiqué dans la capture d'écran ci-dessous. Vous n'avez pas besoin de changer quoi que ce soit d'autre.

Une fois que vous avez terminé, appuyez sur + X, suivie par Oui et , pour sauver le installer_paquets.yaml déposer.

Exécutez le installer_paquets.yaml livre de jeu, comme suit :

$ ansible-playbook playbooks/install_packages.yaml

Comme vous pouvez le voir, la tâche Installer tous les packages couru le dnf/Miam module trois fois au total ; une fois pour chaque boucle Objet.

le httpd, php, et vsftpd les packages sont installés sur mon hôte CentOS 8, comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ sudo dnf list installé | grep httpd
$ sudo dnf list installé | grep php
$ sudo dnf list installé | grep vsftpd

Installation de plusieurs packages logiciels à l'aide de la syntaxe de tableau

Les sections précédentes de cet article vous ont montré comment utiliser le avec_éléments et boucle boucles dans Ansible pour installer plusieurs packages logiciels sur CentOS/RHEL 7 ou 8, sans aucune répétition de code. Cette section vous montrera comment faire la même chose avec une syntaxe de tableau plus simple.

Tout d'abord, ouvrez le installer_paquets.yaml livre de jeu, comme suit :

$ nano playbooks/install_packages.yaml

Retirer le avec_éléments ou alors boucle section de la tâche et modifiez le Nom possibilité de ['httpd', 'php', vsftpd'], comme indiqué dans la capture d'écran ci-dessous.

Une fois que vous avez terminé, appuyez sur + X, suivie par Oui et , pour sauver le installer_paquets.yaml livre de jeu.

Ici, chaque chaîne entre guillemets entre crochets ([]) est un élément de tableau (le nom du progiciel, dans mon cas). Chaque élément du tableau doit être séparé par une virgule (,). Vous pouvez ajouter autant d'éléments de tableau que vous le souhaitez. je n'ai ajouté que trois éléments, httpd, php, et vsftpd.

Exécutez le installer_paquets.yaml livre de jeu, comme suit :

$ ansible-playbook playbooks/install_packages.yaml

Comme vous pouvez le voir, les progiciels httpd, php, et vsftpd sont installés sur mon hôte CentOS 8.

$ sudo dnf list installé | grep httpd
$ sudo dnf list installé | grep php
$ sudo dnf list installé | grep vsftpd

Conclusion

Cet article vous a montré comment utiliser le avec_éléments et boucle boucles, ainsi que la syntaxe Array, avec l'Ansible Miam/dnf module pour installer plusieurs packages logiciels sur vos hôtes CentOS/RHEL 7 ou 8.

Pour plus d'informations, consultez la documentation officielle d'Ansible.

[1] Documentation officielle des boucles Ansible
[2] Documentation officielle d'Ansible with_items
[3] Documentation officielle du module Ansible dnf
[4] Documentation officielle du module Ansible yum

OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...
Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...
SuperTuxKart pour Linux
SuperTuxKart est un excellent titre conçu pour vous apporter l'expérience Mario Kart gratuitement sur votre système Linux. C'est assez stimulant et am...