manala.apt
#######################################################################################################
:exclamación: DESAPROBACIÓN :exclamación:
Este repositorio y el rol asociado están descontinuados a favor de la Colección Ansible de Manala
Puedes encontrar información sobre su uso en el repositorio de la colección
#######################################################################################################
Rol de Ansible: Apt 
:exclamación: Reporta problemas y envía Pull Requests en el repositorio principal del Rol de Ansible :exclamación:
Este rol añadirá fuentes de terceros al administrador de paquetes mediante:
- Agregar la URL de la fuente como un nuevo repositorio
- Añadir la clave segura especificada
- Gestionar los archivos de preferencias de paquetes (también conocido como "pinning")
- Instalar paquetes
Es parte de la pila Ansible de Manala pero puede ser utilizado como un componente independiente.
Requisitos
Ninguno.
Dependencias
Ninguna.
Instalación
Ansible 2+
Usando la CLI de ansible galaxy:
ansible-galaxy install manala.apt
Usando el archivo de requisitos de ansible galaxy:
- src: manala.apt
Controladores del Rol
Ninguno
Variables del Rol
Definición
Nombre | Predeterminado | Tipo | Descripción |
---|---|---|---|
manala_apt_configs_exclusive |
false | Booleano | Exclusividad de configuraciones |
manala_apt_configs_dir |
'/etc/apt/apt.conf.d' | Cadena | Ruta del directorio de configuraciones |
manala_apt_configs_defaults |
{} | Array | Configuraciones predeterminadas |
manala_apt_configs |
[] | Array | Configuraciones |
manala_apt_install_packages |
~ | Array | Paquetes de dependencia a instalar |
manala_apt_install_packages_default |
['apt-transport-https', 'openssl', 'ca-certificates'] | Array | Paquetes de dependencia predeterminados |
manala_apt_components |
['main'] | Array | Colección de componentes |
manala_apt_sources_list_file |
'/etc/apt/sources.list' | Cadena | Ruta del archivo de lista de fuentes |
manala_apt_sources_list_template |
~ | Cadena | Ruta de la plantilla de lista de fuentes |
manala_apt_sources_list |
~ | Cadena/Array | Lista de fuentes |
manala_apt_repositories_exclusive |
false | Booleano | Exclusividad de repositorios |
manala_apt_repositories |
[] | Array | Repositorios |
manala_apt_preferences_exclusive |
false | Booleano | Exclusividad de preferencias |
manala_apt_preferences_dir |
'/etc/apt/preferences.d' | Cadena | Ruta del directorio de preferencias |
manala_apt_preferences_defaults |
{} | Array | Preferencias predeterminadas |
manala_apt_preferences |
[] | Array | Preferencias |
manala_apt_holds_exclusive |
false | Array | Exclusividad de "holds" |
manala_apt_holds |
[] | Array | Colección de "holds" |
manala_apt_packages |
[] | Array | Colección de paquetes |
manala_apt_cache_valid_time |
3600 | Entero | Tiempo permitido de la caché de apt, en segundos |
manala_apt.update |
false | Booleano | Actualizar paquetes |
Ejemplo
- hosts: all
vars:
manala_apt_repositories:
- contrib
manala_apt_preferences:
- git@backports
- dotdeb:100
- php@dotdeb_php56:300
- nginx@nginx
manala_apt_packages:
- xfonts-75dpi
- http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-{{ ansible_distribution_release }}-amd64.deb
roles:
- role: manala.apt
Configuraciones
manala_apt_configs
permite definir archivos de configuración de apt usando plantillas y configuraciones, o contenido en bruto.
Se puede proporcionar un estado (presente|ausente|ignorar).
manala_apt_configs:
# Basado en plantilla (nombre de archivo basado en plantilla)
- template: configs/check_valid_until_false.j2
# Basado en plantilla (forzar nombre de archivo)
- file: check
template: configs/check_valid_until_false.j2
# Basado en contenido
- file: foo_content
config: |
APT::Install-Recommends "false";
# Configuración basada en arrays de diccionarios (en desuso)
- file: foo
config:
- Acquire::Check-Valid-Until: true
# Asegurar que la configuración no esté presente
- file: absent
state: absent # "present" por defecto
# Ignorar configuración
- file: ignore
state: ignore
# Aplanar configuraciones
- "{{ my_custom_configs_array }}"
manala_apt_configs_exclusive
permite limpiar los archivos de configuración existentes de apt en el directorio definido por la clave manala_apt_configs_dir
. Hecho para asegurar que ningún archivo antiguo o creado manualmente altere la configuración actual.
manala_apt_configs_exclusive: true
Componentes
Especificar componentes de apt
manala_apt_components:
- main
- contrib
- non-free
# Aplanar componentes
- "{{ my_custom_components_array }}"
Lista de fuentes
Usar plantilla:
manala_apt_sources_list_template: my/sources.list.j2
manala_apt_sources_list:
foo: bar
Usar contenido en bruto:
manala_apt_sources_list: |
deb http://deb.debian.org/debian {{ ansible_distribution_release }} main
deb http://security.debian.org/debian-security {{ ansible_distribution_release }}/updates main
deb http://deb.debian.org/debian {{ ansible_distribution_release }}-updates main
Usar arrays de diccionarios (en desuso):
manala_apt_sources_list:
- deb: http://deb.debian.org/debian {{ ansible_distribution_release }} main
- deb http://deb.debian.org/debian {{ ansible_distribution_release }} contrib
Repositorios
Conciso, basado en patrones
manala_apt_repositories:
- security
- updates
- partner
- backports
- backports_sloppy
- dotdeb
- nginx
- bearstech
- nodesource_0_10
- nodesource_0_12
- nodesource_4
- nodesource_5
- nodesource_6
- nodesource_7
- nodesource_8
- nodesource_10
- nodesource_12
- nodesource_14
- nodesource_16
- postgresql
- maxscale_2_2
- mongodb_3_0
- mongodb_3_2
- mongodb_3_4
- mongodb_3_6
- mongodb_4_0
- mongodb_4_2
- varnish_4_0
- jenkins
- sensu
- rabbitmq
- proxmox
- proxmox_enterprise
- logentries
- galera_3
- grafana
- elasticsearch_1_7
- elasticsearch_2
- elasticsearch_5
- elasticsearch_6
- elasticsearch_7
- ppa_ansible
- blackfire
- sury_php
Verboso, basado en patrones
manala_apt_repositories:
- pattern: backports
state: absent
Verboso
manala_apt_repositories:
- source: deb http://pkg.jenkins-ci.org/debian binary/
key:
url: http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key
id: D50582E6
- source: deb https://enterprise.proxmox.com/debian {{ ansible_distribution_release }} pve-enterprise
state: absent
# Ignorar repositorio
- source: deb https://example.com foo
state: ignore
# Aplanar repositorios
- "{{ my_custom_repositories_array }}"
Exclusividad (todos los repositorios no definidos por el rol serán eliminados)
manala_apt_repositories_exclusive: true
Preferencias
Conciso, basado en patrones
Formato: [patrón de preferencia]@[patrón de repositorio]:[prioridad de pin]
Ten en cuenta que los repositorios referenciados se incluirán automáticamente como presentes utilizando el proceso "manala_apt_repositories".
manala_apt_preferences:
- git@backports # "git*" del repositorio backports de debian, alta prioridad
- dotdeb:100 # "*" del repositorio dotdeb, baja prioridad
- php@dotdeb # "php*" del repositorio dotdeb, alta prioridad
- redis@dotdeb # "redis*" del repositorio dotdeb, alta prioridad
- libssl1.0.0@backports # "libssl1.0.0" del repositorio backports de debian, alta prioridad (en este caso "libssl1.0.0" no es un patrón de preferencia predefinido; como consecuencia, el paquete se utiliza directamente)
# Sintaxis de patrón
- preference: ansible@ansible
file: foo
Verboso
manala_apt_preferences:
- package: '*'
pin: release o=Debian,a=stable
priority: 600
file: dotdeb
- package: 'php-*'
pin: release o=Debian,a=stable
priority: 900
file: php
state: absent
# Ignorar preferencia
- file: foo
state: ignore
# Aplanar preferencias
- "{{ my_custom_preferences_array }}"
Holds
Gestionar tus paquetes en espera (aquellos que no deseas actualizar) usando:
manala_apt_holds:
- foo # Asegurar que el paquete "foo" no se actualice
- package: bar # Lo mismo con el paquete "bar", usando sintaxis verbosa
state: present
- package: baz # Asegurar que el paquete "baz" se actualizará
state: absent
# Ignorar hold
- package: qux
state: ignore
# En desuso
- package: quux
hold: true # o false :)
# Aplanar holds
- "{{ my_custom_holds_array }}"
También se proporciona un modo de exclusividad, para asegurar que TODOS los paquetes menos los que configures serán actualizables.
manala_apt_holds_exclusive: true
Paquetes
Conciso
manala_apt_packages:
- vim # Nombre del paquete
Verboso
manala_apt_packages:
- package: bzip2 # Nombre del paquete, requerido
state: absent # Estado del paquete, opcional, predeterminado "present"
force: true # Forzar instalación, opcional
# Ignorar paquete
- package: foo
state: ignore # Estado del paquete, opcional, predeterminado 'present'
# Aplanar paquetes
- "{{ my_custom_packages_array }}"
Banderas
Actualizar paquetes
manala_apt:
update: true
# También se puede configurar en todos los roles de manala
manala:
update: true
Licencia
MIT
Información del autor
Manala (http://www.manala.io/)
ansible-galaxy install manala.apt