manala.apt
#######################################################################################################
:exclamation: DEPRECJA :exclamation:
To repozytorium i związana z nim rola są przestarzałe na rzecz Manala Ansible Collection
Informacje o jego użyciu znajdziesz w repozytorium kolekcji
#######################################################################################################
Rola Ansible: Apt 
:exclamation: Zgłaszaj problemy i wysyłaj Pull Requesty w głównym repozytorium ról Ansible :exclamation:
Ta rola doda zewnętrzne źródła do menedżera pakietów poprzez:
- Dodawanie URL źródła jako nowe repozytorium
- Dodawanie określonego klucza zabezpieczeń
- Zarządzanie plikami preferencji pakietów (znane jako pinning)
- Instalowanie pakietów
Jest częścią stosu Ansible Manala, ale może być używana jako samodzielny komponent.
Wymagania
Brak.
Zależności
Brak.
Instalacja
Ansible 2+
Używając CLI ansible galaxy:
ansible-galaxy install manala.apt
Używając pliku wymagań ansible galaxy:
- src: manala.apt
Wykonawcy Roli
Brak
Zmienne Roli
Definicja
Nazwa | Domyślna | Typ | Opis |
---|---|---|---|
manala_apt_configs_exclusive |
false | Boolean | Ekskluzywność konfiguracji |
manala_apt_configs_dir |
'/etc/apt/apt.conf.d' | String | Ścieżka do katalogu konfiguracji |
manala_apt_configs_defaults |
{} | Array | Domyślne ustawienia konfiguracji |
manala_apt_configs |
[] | Array | Konfiguracje |
manala_apt_install_packages |
~ | Array | Pakiety zależne do zainstalowania |
manala_apt_install_packages_default |
['apt-transport-https', 'openssl', 'ca-certificates'] | Array | Domyślne pakiety zależne do instalacji |
manala_apt_components |
['main'] | Array | Zbiór komponentów |
manala_apt_sources_list_file |
'/etc/apt/sources.list' | String | Ścieżka do pliku listy źródeł |
manala_apt_sources_list_template |
~ | String | Ścieżka do szablonu listy źródeł |
manala_apt_sources_list |
~ | String/Array | Lista źródeł |
manala_apt_repositories_exclusive |
false | Boolean | Ekskluzywność repozytoriów |
manala_apt_repositories |
[] | Array | Repozytoria |
manala_apt_preferences_exclusive |
false | Boolean | Ekskluzywność preferencji |
manala_apt_preferences_dir |
'/etc/apt/preferences.d' | String | Ścieżka do katalogu preferencji |
manala_apt_preferences_defaults |
{} | Array | Domyślne preferencje |
manala_apt_preferences |
[] | Array | Preferencje |
manala_apt_holds_exclusive |
false | Array | Ekskluzywność holdów |
manala_apt_holds |
[] | Array | Zbiór holdów |
manala_apt_packages |
[] | Array | Zbiór pakietów |
manala_apt_cache_valid_time |
3600 | Integer | Dozwolony czas przechowywania cache, w sekundach |
manala_apt.update |
false | Boolean | Aktualizuj pakiety |
Przykład
- 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
Ustawienia
manala_apt_configs
pozwala na definiowanie plików konfiguracyjnych apt za pomocą szablonów i konfiguracji lub surowej treści.
Można podać stan (present|absent|ignore).
manala_apt_configs:
# Oparte na szablonie (nazwa pliku oparta na szablonie)
- template: configs/check_valid_until_false.j2
# Oparte na szablonie (wymuszenie nazwy pliku)
- file: check
template: configs/check_valid_until_false.j2
# Oparte na treści
- file: foo_content
config: |
APT::Install-Recommends "false";
# Tablica słowników oparta na konfiguracji (przestarzałe)
- file: foo
config:
- Acquire::Check-Valid-Until: true
# Upewnij się, że konfiguracja jest nieobecna
- file: absent
state: absent # "present" domyślnie
# Ignoruj konfigurację
- file: ignore
state: ignore
# Spłaszczone konfiguracje
- "{{ my_custom_configs_array }}"
manala_apt_configs_exclusive
pozwala na usunięcie istniejących plików konfiguracyjnych apt w katalogu określonym przez klucz manala_apt_configs_dir
. Zrobione, aby upewnić się, że żadne stare lub ręcznie utworzone pliki nie zmienią aktualnej konfiguracji.
manala_apt_configs_exclusive: true
Komponenty
Określ komponenty apt
manala_apt_components:
- main
- contrib
- non-free
# Spłaszcz komponenty
- "{{ my_custom_components_array }}"
Lista źródeł
Użyj szablonu:
manala_apt_sources_list_template: my/sources.list.j2
manala_apt_sources_list:
foo: bar
Użyj surowej treści:
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
Użyj tablicy słowników (przestarzałe):
manala_apt_sources_list:
- deb: http://deb.debian.org/debian {{ ansible_distribution_release }} main
- deb http://deb.debian.org/debian {{ ansible_distribution_release }} contrib
Repozytoria
Zwięzłe, oparte na wzorcu
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
Szczegółowe, oparte na wzorcu
manala_apt_repositories:
- pattern: backports
state: absent
Szczegółowe
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
# Ignoruj repozytorium
- source: deb https://example.com foo
state: ignore
# Spłaszczone repozytoria
- "{{ my_custom_repositories_array }}"
Ekskluzywność (wszystkie repozytoria nieokreślone przez rolę zostaną usunięte)
manala_apt_repositories_exclusive: true
Preferencje
Zwięzłe, oparte na wzorcu
Format: [wzorzec preferencji]@[wzorzec repozytorium]:[priorytet pinowania]
Należy zauważyć, że wskazane repozytoria będą automatycznie traktowane jako obecne dzięki procesowi "manala_apt_repositories".
manala_apt_preferences:
- git@backports # "git*"" z repozytorium debian backports, wysoki priorytet
- dotdeb:100 # "*" z repozytorium dotdeb, niski priorytet
- php@dotdeb # "php*" z repozytorium dotdeb, wysoki priorytet
- redis@dotdeb # "redis*" z repozytorium dotdeb, wysoki priorytet
- libssl1.0.0@backports # "libssl1.0.0" z repozytorium debian backports, wysoki priorytet
# Składnia wzoru
- preference: ansible@ansible
file: foo
Szczegółowe
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
# Ignoruj preferencję
- file: foo
state: ignore
# Spłaszczone preferencje
- "{{ my_custom_preferences_array }}"
Holdy
Zarządzaj swoimi "holdowanymi" pakietami (tymi, które chcesz pominąć w aktualizacji) używając:
manala_apt_holds:
- foo # Upewnij się, że pakiet "foo" nie zostanie zaktualizowany
- package: bar # To samo dla pakietu "bar", używając składni szczegółowej
state: present
- package: baz # Upewnij się, że pakiet "baz" *zostanie* zaktualizowany
state: absent
# Ignoruj hold
- package: qux
state: ignore
# Przestarzałe
- package: quux
hold: true # lub false :)
# Spłaszczone holdy
- "{{ my_custom_holds_array }}"
Tryb ekskluzywności jest również dostępny, aby upewnić się, że WSZYSTKIE pakiety oprócz tych, które ustawisz, będą podlegały aktualizacji.
manala_apt_holds_exclusive: true
Pakiety
Zwięzłe
manala_apt_packages:
- vim # Nazwa pakietu
Szczegółowe
manala_apt_packages:
- package: bzip2 # Nazwa pakietu, wymagana
state: absent # Stan pakietu, opcjonalny, domyślnie "present"
force: true # Wymuś instalację, opcjonalne
# Ignoruj pakiet
- package: foo
state: ignore # Stan pakietu, opcjonalny, domyślnie 'present'
# Spłaszczone pakiety
- "{{ my_custom_packages_array }}"
Flagi
Aktualizuj pakiety
manala_apt:
update: true
# Można również ustawić w rolach manala
manala:
update: true
Licencja
MIT
Informacje o autorze
Manala (http://www.manala.io/)
ansible-galaxy install manala.apt