chasinglogic.os_packages

Ansible rol: os-packages

Instalar paquetes usando archivos de variables

GitHub Actions GitHub Actions

Cuándo y por qué usar esta rol

Cuando especificas configuraciones para múltiples sistemas, inevitablemente necesitarás instalar paquetes del sistema operativo que no requieren ninguna configuración adicional una vez instalados. Paquetes como build-essential o gcc para un servidor de construcción. Sería muy complicado crear muchos roles individuales específicos para instalar estos paquetes. Incluso si no eliges la ruta de "un rol por paquete", puedes terminar en una situación donde tienes listas de paquetes personalizadas dispersas entre tus roles, lo que puede dificultar la referencia cruzada y mantenerlas actualizadas entre sí.

Este rol te permite centralizar tus listas de paquetes en archivos de variables, para que puedas referenciarlas fácilmente entre sí. Funciona en un entorno heterogéneo; si tienes deb_packages especificados pero Ansible no se está ejecutando en un host con apt instalado, los deb_packages simplemente serán ignorados. No se necesitan condiciones adicionales.

No se recomienda usar este rol para instalar software que requiere mucha configuración o configuración adicional. Por ejemplo, Nextcloud, NGINX o Apache serían malas elecciones para instalar de esta manera porque inevitablemente necesitarán configuración adicional (SELinux, configuración, reglas de firewall, etc.) y, por lo tanto, deberían tener su propio rol dedicado que maneje todos los detalles de su implementación.

Variables de Rol

Nombre Descripción Tipo Predeterminado Requerido
packages_apt_globally_update_cache Indica si se debe ejecutar una actualización global de apt antes de instalar paquetes. boolean true no
generic_packages Una lista de paquetes que usarán el módulo package en Ansible. Muchos paquetes tienen nombres genéricos y consistentes en las distribuciones de Linux. Deben ir en esta variable. list [] no
deb_packages Una lista de paquetes que usarán el módulo de empaquetado correcto basado en el sistema objetivo en Ansible para paquetes .deb list [] no
rpm_packages Una lista de paquetes que usarán el módulo de empaquetado correcto basado en el sistema objetivo en Ansible para paquetes .rpm list [] no
pacman_packages Una lista de paquetes que usarán el módulo de empaquetado pacman de Ansible list [] no
generic_package_specs Una lista de especificaciones de paquetes que usarán el módulo package en Ansible. Muchos paquetes tienen nombres genéricos y consistentes en las distribuciones de Linux. Deben ir en esta variable. list [] no
deb_package_specs Una lista de especificaciones de paquetes que usarán el módulo de empaquetado correcto basado en el sistema objetivo en Ansible para especificaciones de paquetes .deb list [] no
rpm_package_specs Una lista de especificaciones de paquetes que usarán el módulo de empaquetado correcto basado en el sistema objetivo en Ansible para especificaciones de paquetes .rpm list [] no
pacman_package_specs Una lista de especificaciones de paquetes que usarán el módulo de empaquetado pacman de Ansible list [] no

Especificando Dependencias

Las variables generic_packages, deb_packages, pacman_packages y rpm_packages son listas de paquetes a instalar. Son simplemente listas de cadenas que se asegurarán de estar instaladas:

generic_packages:
  - gcc
  - tmux
  - vim

Usar estados diferentes a presente

Las variables generic_package_specs, deb_package_specs, etc. se utilizan para un control más detallado sobre la instalación de paquetes. También se pueden usar para eliminar paquetes, instalar la última versión, o obtener listados específicos de paquetes instalados a través de variables de bucle en la salida de Ansible. Para usar una especificación de paquete se ve así:

generic_package_specs:
  - name: gcc
    state: latest

La lista deb_package_specs también permite especificar la opción update_cache:

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

Ejemplo de Playbook

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

Licencia

Licencia Apache

Acerca del proyecto

Install packages using variable files

Instalar
ansible-galaxy install chasinglogic.os_packages
Licencia
apache-2.0
Descargas
240
Propietario
Linux and FOSS Enthusiast.