Gérer les référentiels du package Ubuntu et les PPA à l'aide d'Anible

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

Le anible apt_repository Le module peut être utilisé pour ajouter et supprimer des référentiels de packages et des APP sur vos hôtes Ubuntu avec facilité. Vous pouvez également mettre à jour le cache du référentiel de packages APT en utilisant l'ANSIBLE apt_repository module.

Cet article vous montrera comment gérer les référentiels de package Ubuntu et les APP en utilisant l'ANSIBLE apt_repository module. Alors, commençons.

Conditions préalables

Si vous souhaitez essayer les exemples inclus dans cet article:

1) Vous devez faire installer un anible sur votre ordinateur.
2) Vous devez avoir un hôte Ubuntu 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 vérifier 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épertoire de projet, juste pour garder les choses un peu plus organisées.

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

$ hôtes nano

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

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

$ nano anible.CFG

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

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

$ arbre

Comme vous pouvez le voir, les hôtes anibles sont accessibles. Ainsi, nous pouvons passer à la section suivante de cet article.

$ anible all -u anible -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 en utilisant Anible.

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

$ nano playbooks / add_repo.yaml

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

- hôtes: tout
Utilisateur: ANSIBLE
devenir vrai
Tâches:
- Nom: assurez-vous que le référentiel de l'univers est activé
apt_repository:
repo: deb http: // archive.ubuntu.Univers focal com / ubuntu
État: présent
Update_cache: true

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

Ici le repo option du apt_repository Le module est utilisé pour spécifier la ligne du référentiel de package APT (dans mon cas, deb http: // archive.ubuntu.Univers focal com / ubuntu) du référentiel de package 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 package APT, lisez le Fichiers de configuration du référentiel de package Ubuntu Section de l'article Comment utiliser APT Package Manager dans Ubuntu 20.04 LTS.

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

Le update_cache L'option peut être soit Vrai/ /Oui ou FAUX/ /Non.

Si la update_cache est réglé sur Vrai, ANIBLE mettra à jour le cache du référentiel de package APT après avoir ajouté le référentiel de package.

Si la update_cache est réglé sur FAUX, Anible ne mettra pas à jour le cache du référentiel de package APT.

Ici, je veux que le référentiel de packages APT soit mis à jour une fois le nouveau référentiel de package ajouté. Alors, j'ai réglé le update_cache pour Vrai.

Maintenant, exécutez le add_repo.yaml Playbook, comme suit:

$ anible-playbook playbooks / add_repo.yaml

Comme vous pouvez le voir, le playbook a fonctionné avec succès.

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

$ grep --color -r 'http: // archive.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d/*.liste

Comme vous pouvez le voir, un nouveau fichier a été créé dans le / etc / apt / sources.liste.d/ 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 A .liste fichier dans le / etc / apt / sources.liste.d/ répertoire, selon 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 à l'aide du nom de fichier option du apt_repository module dans votre add_repo.yaml Playbook, comme indiqué dans la capture d'écran ci-dessous.

Maintenant, exécutez le add_repo.yaml Playbook à nouveau.

$ anible-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.d/*.liste

Suppression des référentiels de packages

Dans cette section, je vais vous montrer comment supprimer un référentiel de package existant de vos hôtes Ubuntu en utilisant 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. Donc, vous pouvez simplement copier le add_repo.yaml Playbook File et modifiez-le un peu. c'est très simple à faire.

Premièrement, copiez le add_repo.yaml déposer à supprimer_repo.yaml, comme suit:

$ cp -v playbooks / add_repo.Yaml PlayBooks / Remove_repo.yaml

Modifier le supprimer_repo.yaml Playbook, comme suit:

$ Nano PlayBooks / Remove_repo.yaml

Changement État: présent pour État: absent, comme marqué 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 Y et .

Courir le supprimer_repo.yaml Playbook, comme suit:

$ anible-playbook Playbooks / Remove_repo.yaml

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

$ grep --color -r 'http: // archive.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d/*.liste

Comme vous pouvez le voir, l'Ubuntu 20.04 LTS OFFICIEL univers Le référentiel de packages que j'ai ajouté plus tôt a été supprimé.

NOTE: Ignorer le message d'erreur. Ce message signifie simplement que le / etc / apt / sources.liste.d/ 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 doit être disparue après en entrant cette commande.

$ grep --color -r 'http: // archive.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d/*.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.

J'ajouterai le OSOMON / NODEJS-10.19 enfants Nœud.js 10.19 PPA pour Ubuntu 20.04 LTS dans mon exemple.

Tout d'abord, créez un nouveau manuel add_ppa.yaml, comme suit:

$ nano playbooks / add_ppa.yaml

Ajoutez les lignes suivantes dans votre add_ppa.yaml Playbook:

- hôtes: tout
Utilisateur: ANSIBLE
devenir vrai
Tâches:
- Nom: Ajouter le nœud.js 10.19 PPA
apt_repository:
Repo: PPA: Osomon / Nodejs-10.19 enfants
État: présent
Update_cache: true
valider_certs: faux

Une fois que vous avez terminé, enregistrez le add_ppa.yaml Playbook en appuyant + X, suivie par Y et .

Ici le repo option du apt_repository Le module est utilisé pour ajouter le PPA OSOMON / NODEJS-10.19 enfants (1).

Assurez-vous d'ajouter PPA: Avant le nom PPA, je.e. PPA: Osomon / Nodejs-10.19 enfants.

La plupart des APP utilisent des certificats auto-signés, donc Anible ne peut pas les vérifier pour vous, et ils peuvent errer lorsque vous exécutez le livre de jeu.

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

NOTE: Vous pouvez également définir valider_certs pour FAUX pour sauter la validation de la certification lors de l'ajout de référentiels de packages tiers.

Courir le add_ppa.yaml Playbook, comme suit:

$ anible-playbook playbooks / add_ppa.yaml

Comme vous pouvez le voir, un nouveau .liste dossier pour le PPA OSOMON / NODEJS-10.19 enfants a été créé dans le / etc / apt / sources.liste.d/ répertoire (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.d/
$ cat / etc / apt / sources.liste.d / ppa_osomon_nodejs_10_19_focal_xenial.liste

Supprimer les PPA

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

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

$ cp -v playbooks / add_repo.Yaml PlayBooks / Remove_repo.yaml

Maintenant, ouvrez le supprimer_ppa.yaml Playbook, comme suit:

$ Nano PlayBooks / Remove_ppa.yaml

Ensuite, changez la ligne État: présent pour État: absent, comme marqué dans la capture d'écran ci-dessous.

Une fois que vous avez terminé, enregistrez le supprimer_ppa.yaml Playbook en appuyant + X, suivie par Y et .

Courir le supprimer_ppa.yaml Playbook, comme suit:

$ anible-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 enfants PPA n'est plus disponible dans le / etc / apt / sources.liste.d/ annuaire. Alors, le PPA OSOMON / NODEJS-10.19 enfants a été retiré.

$ arbre / etc / apt / sources.liste.d/

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 utilisez. Dans ce cas, vous devrez spécifier manuellement le nom de code de la version Ubuntu tout en ajoutant le PPA.

Supposons que vous exécutez Ubuntu 20.04 avec nom de code focal Et vous essayez d'ajouter le PPA xyz, Mais le PPA xyz Soutient uniquement Ubuntu 16.04 LTS Nom de code xenial. 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 l'ubuntu 16.04 LTS Nom de code xenial En ajoutant le PPA, vous ne recevrez aucune erreur. Vous pourrez peut-être installer le package souhaité à partir de la PPA de cette manière, même s'il ne prend pas en charge la version explicite d'Ubuntu que vous exécutez actuellement.

Voyons un exemple.

Premièrement, copiez le add_ppa.yaml Fichier Playbook à change_ppa_codename.yaml, comme suit:

$ cp -v playbooks / add_ppa.yaml playbooks / 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 votre nom de code Ubuntu souhaité (I.e. nom de code: Xenial), comme marqué 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 Y et .

Courir le change_ppa_codename.yaml Playbook, comme suit:

$ anible-playbook playbooks / Change_ppa_codename.yaml

NOTE: 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 xenial est dans la ligne du référentiel de package APT.

Conclusion

Cet article vous a montré comment gérer (ajouter / supprimer) les référentiels de package Ubuntu et les APP en utilisant Anible.

Le anible apt_repository Le module est utilisé pour gérer les référentiels du package 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.