Ansible

Gérer les référentiels de packages Ubuntu et les PPA à l'aide d'Ansible

Gérer les référentiels de packages Ubuntu et les PPA à l'aide d'Ansible
L'ajout et la suppression de référentiels de packages et de PPA dans Ubuntu sur votre système personnel peut être une tâche très simple. Cependant, si vous avez de nombreuses machines Ubuntu, disons 10 ou plus, alors ajouter et supprimer manuellement des référentiels de packages et des PPA sur chaque système un par un s'avérera à la fois chronophage et inefficace.

L'Ansible apt_repository le module peut être utilisé pour ajouter et supprimer facilement des référentiels de packages et des PPA sur vos hôtes Ubuntu. Vous pouvez également mettre à jour le cache du référentiel de packages APT à l'aide de l'Ansible apt_repository module.

Cet article vous montrera comment gérer les référentiels de packages Ubuntu et les PPA à l'aide d'Ansible apt_repository module. Alors, commençons.

Conditions préalables

Si vous voulez essayer les exemples inclus dans cet article :

1) Vous devez avoir Ansible installé sur votre ordinateur.
2) Vous devez avoir un hôte Ubuntu 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 consulter ces articles si vous avez besoin d'informations supplémentaires.

Configuration du répertoire de projet

Avant de commencer, ce sera une bonne idée de créer une structure de répertoires de projet, juste pour garder les choses un peu plus organisées.

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

$ mkdir -pv apt-ppa-repo/playbooks

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

$ cd apt-ppa-repo

Créer un hôtes fichier d'inventaire, comme suit :

$ nano hôtes

Ajoutez l'adresse IP ou le nom DNS de l'hôte (vm7.nœudkite.com et vm8.nœudkite.com, dans mon cas) de vos hôtes Ubuntu dans le fichier d'inventaire.

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

Créez un fichier de configuration Ansible dans le répertoire du projet, comme suit :

$ nano ansible.cfg

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 fichier en appuyant sur + X, suivie par Oui et .

À ce stade, le répertoire du projet doit ressembler à ce qui suit :

$ arbre

Comme vous pouvez le voir, les hébergeurs Ansible sont accessibles. Nous pouvons donc passer à la section suivante de cet article.

$ ansible all -u ansible -m ping

Ajout de référentiels de packages

Dans cette section, je vais vous montrer comment ajouter un référentiel de packages dans Ubuntu à l'aide d'Ansible.

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

$ nano playbooks/add_repo.yaml

Tapez les lignes suivantes dans le add_repo.yaml déposer:

- hôtes : tous
utilisateur : ansible
devenir vrai
Tâches:
- name : assurez-vous que le référentiel d'univers est activé
apt_repository :
dépôt : deb http://archive.Ubuntu.univers focal com/ubuntu
état : présent
update_cache : vrai

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

Ici le dépôt option de la apt_repository module est utilisé pour spécifier la ligne de référentiel de packages APT (dans mon cas, deb http://archive.Ubuntu.univers focal com/ubuntu) du référentiel de packages que vous souhaitez ajouter (dans mon cas, l'Ubuntu 20.04 LTS officiel univers dépôt).

Pour en savoir plus sur le format de la ligne de référentiel de packages APT, lisez le Fichiers de configuration du référentiel de packages Ubuntu section de l'article Comment utiliser le gestionnaire de packages APT dans Ubuntu 20.04 LTS.

Comme j'ajoute un nouveau référentiel de packages ici, le Etat est cadeau.

le mise à jour_cache l'option peut être soit Vrai/Oui ou alors Faux/non.

Si la mise à jour_cache est réglé sur Vrai, Ansible mettra à jour le cache du référentiel de packages APT après avoir ajouté le référentiel de packages.

Si la mise à jour_cache est réglé sur Faux, Ansible ne mettra pas à jour le cache du référentiel de packages APT.

Ici, je souhaite que le référentiel de packages APT soit mis à jour une fois le nouveau référentiel de packages ajouté. Alors, j'ai mis le mise à jour_cache à Vrai.

Maintenant, lancez le add_repo.yaml livre de jeu, comme suit :

$ ansible-playbook playbooks/add_repo.yaml

Comme vous pouvez le voir, le playbook s'est exécuté avec succès.

Pour confirmer que le référentiel de packages (dans mon cas, l'Ubuntu 20.04 LTS univers repository) est ajouté, exécutez la commande suivante :

$ grep --color -R 'http://archive.Ubuntu.com' /etc/apt/sources.liste
/etc/apt/sources.liste.ré/*.liste

Comme vous pouvez le voir, un nouveau fichier a été créé dans le /etc/apt/sources.liste.ré/ répertoire (1) et l'Ubuntu 20.04 LTS univers le référentiel de packages a été ajouté (2).

Par défaut, Ansible générera automatiquement le .liste fichier dans le /etc/apt/sources.liste.ré/ répertoire, en fonction de la ligne du référentiel APT.

Si vous souhaitez choisir un nom de fichier spécifique (i.e. ubuntu-univers.liste) pour votre référentiel, vous pouvez spécifier un nom de fichier en utilisant le nom de fichier option de la apt_repository module dans votre add_repo.yaml playbook, comme indiqué dans la capture d'écran ci-dessous.

Maintenant, lancez le add_repo.yaml livre de jeu à nouveau.

$ ansible-playbook playbooks/add_repo.yaml

Comme vous pouvez le voir, le nom de fichier est le même nom que j'ai spécifié.

$ grep --color -R 'http://archive.Ubuntu.com' /etc/apt/sources.liste
/etc/apt/sources.liste.ré/*.liste

Suppression des référentiels de packages

Dans cette section, je vais vous montrer comment supprimer un référentiel de packages existant de vos hôtes Ubuntu à l'aide d'Ansible.

Le playbook pour supprimer un référentiel de packages est presque le même que l'ajout d'un référentiel de packages. Ainsi, vous pouvez simplement copier le add_repo.yaml playbook et modifiez-le un peu. c'est très simple à faire.

Tout d'abord, copiez le add_repo.yaml fichier à remove_repo.yaml, comme suit:

$ cp -v playbooks/add_repo.playbooks yaml/remove_repo.yaml

Modifier le remove_repo.yaml livre de jeu, comme suit :

$ nano playbooks/remove_repo.yaml

Changer état : présent à état : absent, comme indiqué dans la capture d'écran ci-dessous. Ce sera le seul changement que vous devez faire.

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

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

$ ansible-playbook playbooks/remove_repo.yaml

Ensuite, exécutez la commande suivante pour vérifier si le référentiel de packages que vous souhaitez supprimer a bien été supprimé.

$ grep --color -R 'http://archive.Ubuntu.com' /etc/apt/sources.liste
/etc/apt/sources.liste.ré/*.liste

Comme vous pouvez le voir, l'Ubuntu 20.04 LTS officiel univers le référentiel de packages que j'ai ajouté précédemment a été supprimé.

REMARQUE: Ignorer le message d'erreur. Ce message signifie simplement que le /etc/apt/sources.liste.ré/ le répertoire est vide. Si vous souhaitez supprimer le message d'erreur, ajoutez simplement un 2>/dev/null à la fin de la commande, comme suit. L'erreur devrait disparaître après avoir entré cette commande.

$ grep --color -R 'http://archive.Ubuntu.com' /etc/apt/sources.liste
/etc/apt/sources.liste.ré/*.liste 2>/dev/null

Ajout de PPA

Dans cette section, je vais vous montrer comment ajouter un PPA sur vos hôtes Ubuntu en utilisant Ansible.

je vais ajouter le osomon/nodejs-10.19 focales Nœud.js 10.19 PPA pour Ubuntu 20.04 LTS dans mon exemple.

Tout d'abord, créez un nouveau playbook ajouter_ppa.yaml, comme suit:

$ nano playbooks/add_ppa.yaml

Ajoutez les lignes suivantes dans votre ajouter_ppa.yaml livre de jeu :

- hôtes : tous
utilisateur : ansible
devenir vrai
Tâches:
- nom : Ajouter un nœud.js 10.19 APP
apt_repository :
dépôt : ppa:osomon/nodejs-10.19 focales
état : présent
update_cache : vrai
valid_certs : Faux

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

Ici le dépôt option de la apt_repository module est utilisé pour ajouter le PPA osomon/nodejs-10.19 focales (1).

Assurez-vous d'ajouter pp : avant le nom PPA, je.e. ppa:osomon/nodejs-10.19 focales.

La plupart des PPA utilisent des certificats auto-signés, donc Ansible ne peut pas les vérifier pour vous, et ils peuvent se tromper lorsque vous exécutez le playbook.

Vous pouvez définir valider_certs à Faux pour ignorer la validation du certificat pour le PPA que vous ajoutez (2). C'est ce que j'ai fait dans l'exemple de cet article.

REMARQUE: Vous pouvez également définir valider_certs à Faux pour ignorer la validation de la certification lors de l'ajout de référentiels de packages tiers.

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

$ ansible-playbook playbooks/add_ppa.yaml

Comme vous pouvez le voir, une nouvelle .liste dossier pour le PPA osomon/nodejs-10.19 focales a été créé dans le /etc/apt/sources.liste.ré/ annuaire (1).

En regardant le contenu du ppa_osomon_nodejs_10_19_focal_focal.liste fichier, je peux confirmer que le PPA a été ajouté (2).

$ arbre /etc/apt/sources.liste.ré/
$ cat /etc/apt/sources.liste.d/ppa_osomon_nodejs_10_19_focal_xenial.liste

Supprimer les PPA

Vous pouvez supprimer les PPA de la même manière que nous avons supprimé les référentiels de packages dans la section précédente de cet article.

Copiez simplement le app_ppa.yaml livre de jeu à remove_ppa.yaml, comme suit:

$ cp -v playbooks/add_repo.playbooks yaml/remove_repo.yaml

Maintenant, ouvrez le remove_ppa.yaml livre de jeu, comme suit :

$ nano playbooks/remove_ppa.yaml

Ensuite, modifiez la ligne état : présent à état : absent, comme indiqué dans la capture d'écran ci-dessous.

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

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

$ ansible-playbook playbooks/add_ppa.yaml

Comme vous pouvez le voir, le ppa_osomon_nodejs_10_19_focal_focal.liste dossier pour le osomon/nodejs-10.19 focales Le PPA n'est plus disponible dans le /etc/apt/sources.liste.ré/ annuaire. Ainsi, le PPA osomon/nodejs-10.19 focales a été retiré.

$ arbre /etc/apt/sources.liste.ré/

Changer le nom de code PPA

Parfois, le PPA que vous essayez d'ajouter sur votre hôte Ubuntu ne prend pas en charge la version d'Ubuntu que vous exécutez. Dans ce cas, vous devrez spécifier manuellement le nom de code de la version Ubuntu lors de l'ajout du PPA.

Supposons que vous exécutiez Ubuntu 20.04 avec nom de code focal et vous essayez d'ajouter le PPA xyz, mais le PPA xyz ne prend en charge que Ubuntu 16.04 nom de code LTS xénial. Si vous essayez d'ajouter le PPA xyz, vous obtiendrez une erreur, car le PPA n'a aucun package pour Ubuntu 20.04 nom de code focal. Mais, si vous spécifiez Ubuntu 16.04 nom de code LTS xénial lors de l'ajout du PPA, vous ne recevrez aucune erreur. Vous pourrez peut-être installer le package souhaité à partir du PPA de cette manière, même s'il ne prend pas en charge la version explicite d'Ubuntu que vous utilisez actuellement.

Voyons un exemple.

Tout d'abord, copiez le ajouter_ppa.yaml fichier de playbook à change_ppa_codename.yaml, comme suit:

$ cp -v playbooks/add_ppa.playbooks yaml/change_ppa_codename.yaml

Ensuite, ouvrez le change_ppa_codename.yaml fichier, comme suit :

$ nano playbooks/change_ppa_codename.yaml

Ici, tout ce que vous avez à faire est d'ajouter le nom de code option avec le nom de code Ubuntu de votre choix (je.e. nom de code : xenial), comme indiqué dans la capture d'écran ci-dessous.

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

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

$ ansible-playbook playbooks/change_ppa_codename.yaml

REMARQUE: Je reçois une erreur car le PPA que j'ai ajouté ici ne prend en charge que Ubuntu 20.04 LTS. Vous pouvez simplement ignorer ce message.

Comme vous pouvez le voir, le PPA a été ajouté et le nom de code Ubuntu xénial est dans la ligne du référentiel de packages APT.

Conclusion

Cet article vous a montré comment gérer (ajouter/supprimer) les référentiels de packages Ubuntu et les PPA à l'aide d'Ansible.

L'Ansible apt_repository module est utilisé pour gérer les référentiels de packages Ubuntu et les PPA. Cet article a expliqué toutes les options importantes du apt_repository module d'Ansible.

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

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...
Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...