Installation de plusieurs packages facilement sur CentOS en utilisant ANSIBLE

Installation de plusieurs packages facilement sur CentOS en utilisant ANSIBLE
Sur ANSIBLE, vous pouvez utiliser le DNF ou Miam Module pour installer des packages logiciels sur les hôtes CentOS ou RHEL. Par défaut, ces modules n'installent qu'un seul progiciel. Vous pouvez utiliser le DNF ou Miam module plusieurs fois dans votre playbook anible pour installer autant de packages logiciels que vous le souhaitez. Cependant, ce n'est pas le moyen le 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 de logiciels sur les hôtes CentOS / RHEL à l'aide de Loop ANSIBLE. Alors, commençons.

Conditions préalables

Si vous voulez essayer les exemples de cet article,
1) Vous devez faire installer un anible sur votre ordinateur.
2) Vous devez avoir au moins un hôte CENTOS / RHEL 7 ou 8 configuré pour ANSIBLE AUTOMATION.

Il existe de nombreux articles sur Linuxhint dédiés à l'installation de Ansible et à la configuration des hôtes pour ANSIBLE AUTOMATION. Vous pouvez les vérifier si nécessaire.

Configuration d'un répertoire de projet

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

Pour créer le répertoire de 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:

$ hôtes nano

Ajoutez le nom IP ou DNS hôte (VM3.nodekite.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 Y et .

Créer un fichier de configuration anible anable.CFG Dans votre répertoire de projet, comme suit:

$ nano anible.CFG

Ensuite, tapez les lignes suivantes dans le anable.CFG déposer.

[Par défaut]
Inventaire = hôtes
host_key_checking = false

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

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

$ anible all -u anible -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 Miam Module d'Anable sur vos hôtes Centos / Rhel.

Tout d'abord, créez le nouveau livre de jeu installer le paquet.yaml dans le Playbooks / Répertoire, comme suit:

$ nano playbooks / install_package.yaml

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

- hôtes: tout
Utilisateur: ANSIBLE
devenir vrai
Tâches:
- Nom: Installer le package httpd
DNF:
Nom: httpd
État: présent
Update_cache: true

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

Ici, je n'ai ajouté qu'une seule tâche, Installer le package HTTPD. Le but de cette tâche est d'installer le httpd Package sur Centos / Rhel 8.

Centos / Rhel 7 n'utilise pas le DNF Gestionnaire de packages, il utilise le Miam directeur chargé d'emballage. Donc, si vous utilisez Centos / Rhel 7, changez DNF pour Miam, comme marqué dans la capture d'écran ci-dessous. Aucune autre modification n'est requise.

Le nom L'option est utilisée pour dire le DNF ou Miam Module le nom du package que vous essayez d'installer. Dans ce cas, ce sera le httpd emballer.

Le État L'option est utilisée pour dire le DNF ou Miam module l'action (i.e. installer, mettre à niveau, supprimer) Il devrait prendre le package donné. Dans ce cas, l'action est cadeau.

Les valeurs prises en charge du État L'option est:

cadeau - Installera le package s'il n'est pas déjà installé.

dernier - Installera le package 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, elle installera la nouvelle version.

absent - Supprimera le package s'il est installé.

Si la update_cache L'option est définie sur Vrai, Le cache du référentiel DNF / YUM sera mis à jour avant l'installation du package.

Courir le installer le paquet.yaml Playbook, comme suit:

$ anible-playbook playbooks / install_package.yaml

Comme vous pouvez le voir, le livre de jeu installer le paquet.yaml Ran avec succès.

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

$ sudo dnf liste installée | grep httpd

Si vous êtes sur Centos / Rhel 7, utilisez le Miam Gestionnaire de packages au lieu du DNF Gestionnaire de packages pour vérifier si le package est installé.

$ sudo yum liste installée | grep httpd

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

La section précédente de cet article vous a montré comment installer un seul progiciel sur votre hôte CentOS / RHEL en utilisant l'ANSIBLE DNF/ /Miam module. Cette section vous montrera comment installer plusieurs packages de logiciels sur vos hôtes CentOS / RHEL en utilisant l'ANSIBLE avec_items boucle.

Tout d'abord, créez le nouveau livre de jeu install_packages.yaml, comme suit:

$ nano playbooks / install_packages.yaml

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

- hôtes: tout
Utilisateur: ANSIBLE
devenir vrai
Tâches:
- Nom: Installez tous les packages
DNF:
nom: 'item'
État: présent
Update_cache: true
avec_items:
httpd
php
vsftpd

Une fois que vous avez terminé, appuyez sur + X, suivie par Y et , Pour sauver le install_packages.yaml déposer.

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

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

Courir le install_packages.yaml Playbook, comme suit:

$ anible-playbook playbooks / install_packages.yaml

Comme vous pouvez le voir, le livre de jeu install_packages.yaml Ran 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 liste installée | grep httpd
$ sudo dnf liste installée | gp grep
$ sudo dnf liste installée | grep vsftpd

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

À partir d'Anble 2.5, la façon recommandée d'utiliser des boucles dans votre manuel est en utilisant le boucle mot-clé, au lieu du avec_items mot-clé. C'est pourquoi vous avez vu un message d'avertissement lorsque j'ai couru le install_packages.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 livre de jeu install_packages.yaml (à partir de l'exemple précédent), comme suit:

$ nano playbooks / install_packages.yaml

Dans le install_packages.yaml Playbook, remplacez simplement le terme avec_items avec le terme boucle, comme marqué dans la capture d'écran ci-dessous. Vous n'avez pas besoin de changer d'autre chose.

Une fois que vous avez terminé, appuyez sur + X, suivie par Y et , Pour sauver le install_packages.yaml déposer.

Courir le install_packages.yaml Playbook, comme suit:

$ anible-playbook playbooks / install_packages.yaml

Comme vous pouvez le voir, la tâche Installez tous les packages dirigé le DNF/ /Miam module trois fois au total; Une fois pour chaque boucle article.

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 liste installée | grep httpd
$ sudo dnf liste installée | gp grep
$ sudo dnf liste installée | grep vsftpd

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

Des sections antérieures de cet article vous ont montré comment utiliser le avec_items et boucle Boucle dans ANSIBLE pour installer plusieurs packages de 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 install_packages.yaml Playbook, comme suit:

$ nano playbooks / install_packages.yaml

Retirer le avec_items ou boucle Section de la tâche et modifiez le nom option de ['httpd', 'php', vsftpd '], comme marqué dans la capture d'écran ci-dessous.

Une fois que vous avez terminé, appuyez sur + X, suivie par Y et , Pour sauver le install_packages.yaml livre de jeu.

Ici, chaque chaîne citée à l'intérieur des crochets ([]) est un élément de tableau (le nom du package logiciel, dans mon cas). Chaque élément de 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.

Courir le install_packages.yaml Playbook, comme suit:

$ anible-playbook playbooks / install_packages.yaml

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

$ sudo dnf liste installée | grep httpd
$ sudo dnf liste installée | gp grep
$ sudo dnf liste installée | grep vsftpd

Conclusion

Cet article vous a montré comment utiliser le avec_items et boucle boucles, ainsi que la syntaxe du tableau, avec l'anible 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 ANSIBLE.

[1] Documentation officielle des boucles ANSIBLE
[2] Documentation officielle d'ANSIBLE avec_ITEMS
[3] Documentation officielle du module DNF ANSIBLE
[4] Documentation officielle du module YUM ANSIBLE