manala.apt

#######################################################################################################

:exclamation: DÉPRÉCIATION :exclamation:

Ce dépôt et le rôle associé sont dépréciés au profit de la Collection Ansible Manala

Vous trouverez des informations sur son utilisation dans le dépôt de la collection

#######################################################################################################

Rôle Ansible : Apt État de la construction

:exclamation: Signalez des problèmes et envoyez des Pull Requests dans le dépôt principal des rôles Ansible :exclamation:

Ce rôle ajoutera des sources tierces au gestionnaire de paquets en :

  • Ajoutant une URL source comme nouveau dépôt
  • Ajoutant la clé sécurisée spécifiée
  • Gérant les fichiers de préférences des paquets (appelé pinning)
  • Installant des paquets

Il fait partie de la pile Ansible Manala mais peut être utilisé comme un composant autonome.

Exigences

Aucune.

Dépendances

Aucune.

Installation

Ansible 2+

En utilisant l'interface en ligne de commande ansible galaxy :

ansible-galaxy install manala.apt

En utilisant un fichier de requêtes ansible galaxy :

- src: manala.apt

Gestionnaires de rôle

Aucun

Variables de rôle

Définition

Nom Par défaut Type Description
manala_apt_configs_exclusive false Boolean Exclusivité des configurations
manala_apt_configs_dir '/etc/apt/apt.conf.d' String Chemin du répertoire de configurations
manala_apt_configs_defaults {} Array Configurations par défaut
manala_apt_configs [] Array Configurations
manala_apt_install_packages ~ Array Paquets de dépendance à installer
manala_apt_install_packages_default ['apt-transport-https', 'openssl', 'ca-certificates'] Array Paquets de dépendance par défaut
manala_apt_components ['main'] Array Collection de composants
manala_apt_sources_list_file '/etc/apt/sources.list' String Chemin du fichier de la liste des sources
manala_apt_sources_list_template ~ String Chemin du modèle de liste des sources
manala_apt_sources_list ~ String/Array Liste des sources
manala_apt_repositories_exclusive false Boolean Exclusivité des dépôts
manala_apt_repositories [] Array Dépôts
manala_apt_preferences_exclusive false Boolean Exclusivité des préférences
manala_apt_preferences_dir '/etc/apt/preferences.d' String Chemin du répertoire de préférences
manala_apt_preferences_defaults {} Array Préférences par défaut
manala_apt_preferences [] Array Préférences
manala_apt_holds_exclusive false Array Exclusivité des packages retenus
manala_apt_holds [] Array Collection de packages retenus
manala_apt_packages [] Array Collection de paquets
manala_apt_cache_valid_time 3600 Integer Durée autorisée du cache apt, en secondes
manala_apt.update false Boolean Mettre à jour les paquets

Exemple

- 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

Configurations

manala_apt_configs vous permet de définir des fichiers de configuration apt en utilisant un modèle et une configuration, ou un contenu brut.

Un état (present|absent|ignore) peut être fourni.

manala_apt_configs:
  # Basé sur un modèle (nom de fichier basé sur le modèle)
  - template: configs/check_valid_until_false.j2
  # Basé sur un modèle (forcer le nom du fichier)
  - file: check
    template: configs/check_valid_until_false.j2
  # Basé sur le contenu
  - file: foo_content
    config: |
      APT::Install-Recommends "false";
  # Configurations basées sur des dictionnaires (déprécié)
  - file: foo
    config:
      - Acquire::Check-Valid-Until: true
  # Assurez-vous que la configuration est absente
  - file: absent
    state: absent # "present" par défaut
  # Ignorer la configuration
  - file: ignore
    state: ignore
  # Aplatir les configurations
  - "{{ my_custom_configs_array }}"

manala_apt_configs_exclusive permet de nettoyer les fichiers de configuration apt existants dans le répertoire défini par la clé manala_apt_configs_dir. Destiné à s'assurer qu'aucun ancien fichier ou fichier créé manuellement n'altère la configuration actuelle.

manala_apt_configs_exclusive: true

Composants

Spécifiez les composants apt

manala_apt_components:
  - main
  - contrib
  - non-free
  # Aplatir les composants
  - "{{ my_custom_components_array }}"

Liste des sources

Utiliser un modèle :

manala_apt_sources_list_template: my/sources.list.j2
manala_apt_sources_list:
  foo: bar

Utiliser du contenu brut :

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

Utiliser un tableau de dictionnaires (déprécié) :

manala_apt_sources_list:
  - deb: http://deb.debian.org/debian {{ ansible_distribution_release }} main
  - deb http://deb.debian.org/debian {{ ansible_distribution_release }} contrib

Dépôts

Concise, basé sur des motifs

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

Verbeux, basé sur des motifs

manala_apt_repositories:
  - pattern: backports
    state: absent

Verbeux

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
  # Ignorer le dépôt
  - source: deb https://example.com foo
    state: ignore
  # Aplatir les dépôts
  - "{{ my_custom_repositories_array }}"

Exclusivité (tous les dépôts non définis par le rôle seront supprimés)

manala_apt_repositories_exclusive: true

Préférences

Concise, basé sur des motifs

Format : [motif de préférence]@[motif de dépôt]:[priorité de pin]

Notez que les dépôts référencés seront automatiquement inclus comme présents en utilisant le processus "manala_apt_repositories".

manala_apt_preferences:
  - git@backports         # "git*" du dépôt debian backports, haute priorité
  - dotdeb:100            # "*" du dépôt dotdeb, basse priorité
  - php@dotdeb            # "php*" du dépôt dotdeb, haute priorité
  - redis@dotdeb          # "redis*" du dépôt dotdeb, haute priorité
  - libssl1.0.0@backports # "libssl1.0.0" du dépôt debian backports, haute priorité
  # Syntaxe des motifs
  - preference: ansible@ansible
    file: foo

Verbeux

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
  # Ignorer la préférence
  - file: foo
    state: ignore
  # Aplatir les préférences
  - "{{ my_custom_preferences_array }}"

Retrains

Gérez vos paquets retenus (ceux que vous ne souhaitez pas mettre à jour) en utilisant :

manala_apt_holds:
  - foo # Assurez-vous que le paquet "foo" ne sera pas mis à jour
  - package: bar # La même chose avec le paquet "bar", en utilisant la syntaxe verbeuse
    state: present
  - package: baz # Assurez-vous que le paquet "baz" *sera* mis à jour
    state: absent
  # Ignorer la retenue
  - package: qux
    state: ignore
  # Déprécié
  - package: quux
    hold: true # ou false :)
  # Aplatir les retenues
  - "{{ my_custom_holds_array }}"

Un mode exclusivité est également fourni, pour s'assurer que tous les paquets mais ceux que vous avez définis seront mis à niveau.

manala_apt_holds_exclusive: true

Paquets

Concise

manala_apt_packages:
  - vim # Nom du paquet

Verbeux

manala_apt_packages:
  - package:  bzip2  # Nom du paquet, requis
    state: absent # État du paquet, optionnel, par défaut "present"
    force: true   # Installer de force, optionnel
  # Ignorer le paquet
  - package: foo
    state: ignore # État du paquet, optionnel, par défaut 'present'
  # Aplatir les paquets
  - "{{ my_custom_packages_array }}"

Flags

Mettre à jour les paquets

manala_apt:
  update: true

# Peut également être défini dans les rôles manala
manala:
  update: true

Licence

MIT

Informations sur l'auteur

Manala (http://www.manala.io/)

À propos du projet

Handle apt

Installer
ansible-galaxy install manala.apt
Licence
Unknown
Téléchargements
73k
Propriétaire
Manala is an open source project supported by the french web agency ELAO providing advanced ansible roles for website's infrastructures and far more.