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 Estado de Construcción

: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/)

Acerca del proyecto

Handle apt

Instalar
ansible-galaxy install manala.apt
Licencia
Unknown
Descargas
73k
Propietario
Manala is an open source project supported by the french web agency ELAO providing advanced ansible roles for website's infrastructures and far more.