cans.package-source
cans.package-source
Rôle simple pour ajouter et/ou supprimer des sources de paquets de distribution et leurs clés GPG respectives.
Chaque source de paquet à ajouter ou à supprimer doit être décrite comme suit :
- repo: "nom du dépôt" # requis
codename: "<Nom de code de la distribution>" # optionnel, par défaut : non défini
key_id: "<ID de la clé GPG>" # optionnel, par défaut : non défini
key_server: "<url du serveur de clés>" # optionnel, par défaut : non défini
key_url: "<url du fichier de clé publique>" # optionnel, par défaut : non défini
keyring: "<chemin vers le trousseau de clés>" # optionnel, par défaut : non défini
update_cache: <oui|non> # optionnel, par défaut : non
Ce rôle ajoutera, puis supprimera des sources. Comme les dépôts sont spécifiés dans des listes, l'ordre dans lequel ils sont ajoutés ou supprimés est déterministe et conforme à ce que vous avez spécifié dans votre playbook.
Tous les valeurs sans défaut non défini seront simplement omises si elles ne sont pas spécifiées.
Le repo
est la seule valeur obligatoire et doit être une ligne de description d'un dépôt APT valide.
Si vous souhaitez installer une clé avec une source donnée, vous devez spécifier le key_id
, pour éviter d'insérer une clé indésirable dans le trousseau de clés d'APT. Ensuite, soit key_url
soit key_server
deviennent obligatoires pour que la clé puisse être récupérée.
Changer la valeur par défaut de update_cache
n'est généralement pas une bonne idée, car cela ralentit fortement votre playbook. De toute façon, si vous ajoutez des sources de paquets, il est très probable que vous les utilisiez peu après. Il est recommandé de mettre à jour le cache alors, et non lors de l'ajout de la source. Notez que cela présente l'inconvénient de ne pas valider vos nouveaux dépôts. Si vous souhaitez tout de même que cette validation se fasse lors de l'exécution de ce rôle, utilisez update_cache
comme indiqué dans l'exemple de playbook ci-dessous.
Exigences
Ce paquet a les exigences des modules de gestion des sources de paquets de distribution d'Ansible :
- Pour les distributions basées sur Debian, consultez les modules apt_repository et apt_key ;
Variables du rôle
Toutes les variables de ce module sont préfixées par pkgsources
.
pkgsource_present
: la liste des sources que vous souhaitez vous assurer qu'elles sont disponibles (par défaut :[]
) ;pkgsource_absent
: la liste des sources que vous souhaitez vous assurer qu'elles ne sont pas disponibles (par défaut :[]
) ;
Variables obsolètes
pkgsource_user
: cette variable a été dépréciée, car vous pouvez la définir lors de l'importation du rôle ou au niveau du play. La variable n'était en fait pas utilisée (par défaut :ansible_user_id
).
Dépendances
Ce rôle n'a pas de dépendances externes.
Exemple de Playbook
Dans ce playbook, nous ajoutons deux nouvelles sources à APT et supprimons une. Avec la seconde source ajoutée, nous installerons également la clé GPG du dépôt. Enfin, étant donné que ce rôle ajoute puis supprime des dépôts, pour le dernier (et seul) dépôt supprimé, nous forçons une mise à jour du cache qui garantit que la configuration est valide et qu'APT peut vérifier toutes les signatures de dépôts et de paquets.
- hosts: serveurs
roles:
- role: "cans.package-source"
pkgsource_present:
# Assurez-vous simplement que le dépôt des paquets backport de la version actuelle de Debian est disponible
- repo: "deb http://ftp.fr.debian.org/debian/ stable-backports main"
# Dépôt de l'outil Heroku (outil cli)
- repo: "deb https://toolbelt.heroku.com/ubuntu/ ./"
# Ces deux lignes garantissent que la clé GPG de Heroku est installée *avant* d'ajouter le dépôt à la liste des sources.
key_id: C927EBE00F1B0520
key_url: "https://toolbelt.herokuapp.com/apt/release.key"
# Les sources obsolètes que vous souhaitez supprimer.
pkgsource_absent:
- "deb http://ftp.fr.debian.org/debian/ wheezy main"
# Forcer la mise à jour du cache sur le dernier dépôt ajouté ou supprimé pour que la nouvelle configuration soit validée
update_cache: oui
Licence
Le rôle Ansible package-source est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License version 2 telle que publiée par la Free Software Foundation.
package-sources est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou d'ADÉQUATION À UN OBJECTIF PARTICULIER. Voir la GNU General Public License pour plus de détails.
Vous devriez avoir reçu une copie de la GNU General Public License avec package-sources. Si ce n'est pas le cas, consultez http://www.gnu.org/licenses/.
Informations sur l'auteur
Droits d'auteur © 2017-2018, Nicolas CANIART.
Role to manage Distribution Package Sources and their Encryption Keys
ansible-galaxy install cans.package-source