chasinglogic.os_packages

Rôle Ansible : os-packages

Installer des paquets à l'aide de fichiers de variables

GitHub Actions GitHub Actions

Quand et pourquoi utiliser ce rôle

Inévitablement, lorsque vous spécifiez des configurations pour plusieurs systèmes, vous devrez installer des paquets OS qui n'ont pas besoin d'autres configurations après leur installation. Des paquets comme build-essential ou gcc pour un serveur de construction. Il serait très compliqué de créer de nombreux rôles spécifiques à un paquet pour installer ces fichiers. Même si vous ne suivez pas la méthode "un rôle par paquet", vous pouvez vous retrouver dans une situation où vous avez plusieurs listes de paquets sur mesure dispersées dans vos rôles, ce qui rend difficile leur mise à jour et leur mise en correspondance.

Ce rôle vous permet de centraliser vos listes de paquets dans des fichiers de variables afin qu'elles soient facilement référencées entre elles. Cela fonctionne dans un environnement hétérogène : si vous avez deb_packages spécifié mais qu'Ansible ne s'exécute pas sur un hôte avec apt installé, les deb_packages seront simplement ignorés. Pas besoin de conditions lorsque.

Il n'est pas recommandé d'utiliser ce rôle pour installer des logiciels qui nécessitent beaucoup de configuration ou d'autres préparations. Par exemple, Nextcloud, NGINX ou Apache seraient de mauvais choix à installer de cette manière, car ils nécessiteront invariablement une configuration supplémentaire (SELinux, configuration, règles de pare-feu, etc.) et devraient donc avoir leur propre rôle dédié qui gère tous les détails de leur déploiement.

Variables du rôle

Nom Description Type Par défaut Requis
packages_apt_globally_update_cache Indique si un apt update global doit être exécuté avant l'installation des paquets. boolean true non
generic_packages Une liste de paquets qui utiliseront le module package dans Ansible. De nombreux paquets ont des noms génériques et cohérents à travers les distributions Linux. list [] non
deb_packages Une liste de paquets qui utiliseront le bon module d'emballage selon le système cible dans Ansible pour les paquets .deb list [] non
rpm_packages Une liste de paquets qui utiliseront le bon module d'emballage selon le système cible dans Ansible pour les paquets .rpm list [] non
pacman_packages Une liste de paquets qui utiliseront le module d'emballage pacman d'Ansible list [] non
generic_package_specs Une liste de spécifications de paquet qui utiliseront le module package dans Ansible. De nombreux paquets ont des noms génériques et cohérents à travers les distributions Linux. list [] non
deb_package_specs Une liste de spécifications de paquet qui utiliseront le bon module d'emballage selon le système cible dans Ansible pour les spécifications de paquet .deb list [] non
rpm_package_specs Une liste de spécifications de paquet qui utiliseront le bon module d'emballage selon le système cible dans Ansible pour les spécifications de paquet .rpm list [] non
pacman_package_specs Une liste de spécifications de paquet qui utiliseront le module d'emballage pacman d'Ansible list [] non

Spécifier les dépendances

Les variables generic_packages, deb_packages, pacman_packages, et rpm_packages sont des listes de paquets à installer. Ce sont simplement des listes de chaînes de caractères qui seront assurées d'être installées :

generic_packages:
  - gcc
  - tmux
  - vim

Utiliser des états autres que présents

Les variables generic_package_specs, deb_package_specs, etc. sont utilisées pour un contrôle plus précis sur l'installation des paquets. Elles peuvent également être utilisées pour supprimer des paquets, installer la dernière version ou obtenir des listes spécifiques des paquets installés via des variables de boucle dans la sortie Ansible. Pour utiliser une spécification de paquet, cela ressemble à ceci :

generic_package_specs:
  - name: gcc
    state: latest

La liste deb_package_specs permet en plus de spécifier l'option update_cache :

deb_package_specs:
  - name: gcc
    state: latest
    update_cache: yes

Exemple de playbook

- hosts: all
  roles:
    - role: os-packages

Licence

Licence Apache

À propos du projet

Install packages using variable files

Installer
ansible-galaxy install chasinglogic.os_packages
Licence
apache-2.0
Téléchargements
240
Propriétaire
Linux and FOSS Enthusiast.