manala.apt
#######################################################################################################
:exclamation: ABLEGEN :exclamation:
Dieses Repository und die zugehörige Rolle sind abgelehnt zugunsten der Manala Ansible Collection
Informationen zur Nutzung finden Sie im Sammlungs-Repository
#######################################################################################################
Ansible Rolle: Apt 
:exclamation: Probleme melden und Pull-Requests senden im Haupt-Repository für Ansible-Rollen :exclamation:
Diese Rolle fügt dem Paketmanager Quellen von Drittanbietern hinzu, indem sie:
- Eine Quell-URL als neues Repository hinzufügt
- Den angegebenen sicheren Schlüssel hinzufügt
- Die Präferenzdateien für Pakete verwaltet (auch bekannt als Pinning)
- Pakete installiert
Sie ist Teil des Manala Ansible-Stacks, kann aber auch als einzelnes Komponenten verwendet werden.
Anforderungen
Keine.
Abhängigkeiten
Keine.
Installation
Ansible 2+
Verwendung des Ansible Galaxy CLI:
ansible-galaxy install manala.apt
Verwendung einer Ansible Galaxy-Anforderungsdatei:
- src: manala.apt
Rollenhandler
Keine
Rollenvariablen
Definition
Name | Standard | Typ | Beschreibung |
---|---|---|---|
manala_apt_configs_exclusive |
false | Boolean | Exklusivität der Konfigurationen |
manala_apt_configs_dir |
'/etc/apt/apt.conf.d' | String | Pfad zum Konfigurationsverzeichnis |
manala_apt_configs_defaults |
{} | Array | Standardkonfigurationen |
manala_apt_configs |
[] | Array | Konfigurationen |
manala_apt_install_packages |
~ | Array | Abhängigkeitspakete, die installiert werden sollen |
manala_apt_install_packages_default |
['apt-transport-https', 'openssl', 'ca-certificates'] | Array | Standardabhängigkeitspakete |
manala_apt_components |
['main'] | Array | Sammlung von Komponenten |
manala_apt_sources_list_file |
'/etc/apt/sources.list' | String | Pfad zur Quellenliste |
manala_apt_sources_list_template |
~ | String | Pfad zur Quellenlistenvorlage |
manala_apt_sources_list |
~ | String/Array | Quellenliste |
manala_apt_repositories_exclusive |
false | Boolean | Exklusivität der Repositories |
manala_apt_repositories |
[] | Array | Repositories |
manala_apt_preferences_exclusive |
false | Boolean | Exklusivität der Präferenzen |
manala_apt_preferences_dir |
'/etc/apt/preferences.d' | String | Pfad zum Präferenzverzeichnis |
manala_apt_preferences_defaults |
{} | Array | Standardpräferenzen |
manala_apt_preferences |
[] | Array | Präferenzen |
manala_apt_holds_exclusive |
false | Array | Exklusivität der Holds |
manala_apt_holds |
[] | Array | Sammlung von Holds |
manala_apt_packages |
[] | Array | Sammlung von Paketen |
manala_apt_cache_valid_time |
3600 | Integer | Erlaubtes Alter des apt-Caches, in Sekunden |
manala_apt.update |
false | Boolean | Pakete aktualisieren |
Beispiel
- 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
Konfigurationen
manala_apt_configs
erlaubt es Ihnen, apt-Konfigurationsdateien mithilfe von Vorlagen und Konfigurationen oder rohen Inhalten zu definieren.
Ein Zustand (present|absent|ignore) kann angegeben werden.
manala_apt_configs:
# Vorlagenbasiert (Dateiname basiert auf der Vorlage)
- template: configs/check_valid_until_false.j2
# Vorlagenbasiert (Dateinamen erzwingen)
- file: check
template: configs/check_valid_until_false.j2
# Inhaltsbasiert
- file: foo_content
config: |
APT::Install-Recommends "false";
# Dictionaries-Array konfigurationsbasiert (veraltet)
- file: foo
config:
- Acquire::Check-Valid-Until: true
# Sicherstellen, dass die Konfiguration absent ist
- file: absent
state: absent # "present" ist standardmäßig
# Konfiguration ignorieren
- file: ignore
state: ignore
# Konfigurationen abflachen
- "{{ my_custom_configs_array }}"
manala_apt_configs_exclusive
ermöglicht es Ihnen, bestehende apt-Konfigurationsdateien in das durch den Schlüssel manala_apt_configs_dir
definierte Verzeichnis zu bereinigen. So wird sichergestellt, dass keine alten oder manuell erstellten Dateien die aktuelle Konfiguration beeinträchtigen.
manala_apt_configs_exclusive: true
Komponenten
Spezifizieren Sie apt-Komponenten
manala_apt_components:
- main
- contrib
- non-free
# Komponenten abflachen
- "{{ my_custom_components_array }}"
Quellenliste
Verwendung einer Vorlage:
manala_apt_sources_list_template: my/sources.list.j2
manala_apt_sources_list:
foo: bar
Verwendung rohen Inhalts:
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
Verwendung eines Dictionaries-Arrays (veraltet):
manala_apt_sources_list:
- deb: http://deb.debian.org/debian {{ ansible_distribution_release }} main
- deb http://deb.debian.org/debian {{ ansible_distribution_release }} contrib
Repositories
Kurz und prägnant, musterbasiert
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
Ausführlicher, musterbasiert
manala_apt_repositories:
- pattern: backports
state: absent
Ausführlich
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
# Repository ignorieren
- source: deb https://example.com foo
state: ignore
# Repositories abflachen
- "{{ my_custom_repositories_array }}"
Exklusivität (alle nicht durch die Rolle definierten Repositories werden gelöscht)
manala_apt_repositories_exclusive: true
Präferenzen
Kurz und prägnant, musterbasiert
Format: [Präferenzmuster]@[Repositorymuster]:[Pin-Priorität]
Beachten Sie, dass referenzierte Repositories automatisch über den Prozess "manala_apt_repositories" als vorhanden behandelt werden.
manala_apt_preferences:
- git@backports # "git*" aus dem debian backports Repository, hohe Priorität
- dotdeb:100 # "*" aus dem dotdeb Repository, niedrige Priorität
- php@dotdeb # "php*" aus dem dotdeb Repository, hohe Priorität
- redis@dotdeb # "redis*" aus dem dotdeb Repository, hohe Priorität
- libssl1.0.0@backports # "libssl1.0.0" aus dem debian backports Repository, hohe Priorität
# Mustersyntax
- preference: ansible@ansible
file: foo
Ausführlich
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
# Präferenz ignorieren
- file: foo
state: ignore
# Präferenzen abflachen
- "{{ my_custom_preferences_array }}"
Holds
Verwalten Sie Ihre festgelegten Pakete (die, die Sie nicht aktualisieren möchten) wie folgt:
manala_apt_holds:
- foo # Sicherstellen, dass das Paket "foo" nicht aktualisiert wird
- package: bar # Das gleiche für das Paket "bar", unter Verwendung der ausführlichen Syntax
state: present
- package: baz # Sicherstellen, dass das Paket "baz" *aktualisiert* wird
state: absent
# Hold ignorieren
- package: qux
state: ignore
# Veraltet
- package: quux
hold: true # oder false :)
# Holds abflachen
- "{{ my_custom_holds_array }}"
Ein Exklusivitätsmodus ist ebenfalls verfügbar, um sicherzustellen, dass alle Pakete außer den gesetzten aktualisierbar sind.
manala_apt_holds_exclusive: true
Pakete
Kurz
manala_apt_packages:
- vim # Paketname
Ausführlich
manala_apt_packages:
- package: bzip2 # Paketname, erforderlich
state: absent # Zustand des Pakets, optional, standardmäßig "present"
force: true # Installation erzwingen, optional
# Paket ignorieren
- package: foo
state: ignore # Zustand des Pakets, optional, standardmäßig 'present'
# Pakete abflachen
- "{{ my_custom_packages_array }}"
Flags
Pakete aktualisieren
manala_apt:
update: true
# Kann auch über Manala-Rollen gesetzt werden
manala:
update: true
Lizenz
MIT
Autoreninformation
Manala (http://www.manala.io/)
ansible-galaxy install manala.apt