cans.package-source
cans.package-source
Prosta rola do dodawania i/lub usuwania źródeł pakietów dystrybucji oraz ich odpowiednich kluczy GPG.
Każde źródło pakietu, które ma zostać dodane lub usunięte, musi być opisane w następujący sposób:
- repo: "nazwa repozytorium" # wymagane
codename: "<Nazwa dystrybucji>" # opcjonalne, domyślnie: niezdefiniowane
key_id: "<ID klucza GPG>" # opcjonalne, domyślnie: niezdefiniowane
key_server: "<adres serwera kluczy>" # opcjonalne, domyślnie: niezdefiniowane
key_url: "<adres pliku klucza publicznego>" # opcjonalne, domyślnie: niezdefiniowane
keyring: "<scieżka do pierścienia kluczy>" # opcjonalne, domyślnie: niezdefiniowane
update_cache: <tak|nie> # opcjonalne, domyślnie: nie
Ta rola najpierw doda, a następnie usunie źródła. Ponieważ repozytoria są określone w listach, kolejność ich dodawania lub usuwania jest deterministyczna i określona w Twoim playbooku.
Wszystkie wartości z domyślną wartością niezdefiniowaną zostaną po prostu pominięte, jeśli nie zostaną określone.
repo
jest jedyną wymaganą wartością i powinna być ważną linią opisu repozytorium APT.
Jeśli chcesz zainstalować klucz wraz z danym źródłem, musisz określić key_id
, aby uniknąć dodania niechcianego klucza do pierścienia kluczy APT. Wtedy jeden z key_url
lub key_server
staje się obowiązkowy, aby klucz mógł zostać jakoś pobrany.
Zmiana domyślnej wartości update_cache
generalnie nie jest dobrym pomysłem, ponieważ bardzo spowalnia Twój playbook. W każdym razie, jeśli dodajesz źródła pakietów, najprawdopodobniej będziesz ich używać krótko po tym. Zaleca się zaktualizowanie pamięci podręcznej wówczas, a nie w momencie dodawania źródła. Należy zauważyć, że ma to wadę w postaci braku walidacji nowych repozytoriów. Jeśli nadal chcesz, aby ta walidacja miała miejsce podczas wykonywania tej roli, użyj update_cache
, jak pokazano w
przykładowym playbooku poniżej.
Wymagania
Pakiet ma wymagania modułów do zarządzania źródłami pakietów dystrybucji Ansible:
- Dla dystrybucji opartych na Debianie zobacz moduły apt_repository oraz apt_key.
Zmienne roli
Wszystkie zmienne z tego modułu mają prefiks pkgsources
.
pkgsource_present
: lista źródeł, które chcesz mieć dostępne (domyślnie:[]
);pkgsource_absent
: lista źródeł, które chcesz, aby nie były dostępne (domyślnie:[]
);
Zmienne przestarzałe
pkgsource_user
: ta zmienna została przestarzała, ponieważ możesz zdefiniować ją przy imporcie roli lub na poziomie play. Zmienna ta de facto nie była używana (domyślnie:ansible_user_id
).
Zależności
Ta rola nie ma zewnętrznych zależności.
Przykładowy Playbook
W tym playbooku dodajemy dwa nowe źródła do APT i usuwamy jedno. Z drugim dodanym źródłem zainstalujemy również klucz GPG repozytorium. Na koniec, ponieważ ta rola najpierw dodaje, a następnie usuwa repozytoria, przy ostatnim (i jedynym) usuniętym repozytorium wymuszamy aktualizację pamięci podręcznej, aby upewnić się, że konfiguracja jest rzeczywiście ważna i APT może zweryfikować wszystkie repozytoria i podpisy pakietów.
- hosts: serwery
roles:
- role: "cans.package-source"
pkgsource_present:
# Upewnij się, że repozytorium pakietów backport dla aktualnej wersji Debiana
# jest dostępne
- repo: "deb http://ftp.fr.debian.org/debian/ stable-backports main"
# Repozytorium narzędzi Heroku (narzędzia cli)
- repo: "deb https://toolbelt.heroku.com/ubuntu/ ./"
# Te dwie linie zapewnią, że klucz GPG Heroku jest zainstalowany *zanim*
# dodany zostanie repozytorium do listy źródeł.
key_id: C927EBE00F1B0520
key_url: "https://toolbelt.herokuapp.com/apt/release.key"
# Przestarzałe źródła, które chcesz usunąć.
pkgsource_absent:
- "deb http://ftp.fr.debian.org/debian/ wheezy main"
# Wymuszamy aktualizację pamięci podręcznej na ostatnim repozytorium dodanym lub usuniętym, aby nowa
# konfiguracja została zweryfikowana
update_cache: tak
Licencja
Rola Ansible package-source jest oprogramowaniem darmowym: można ją rozprowadzać i/lub modyfikować na warunkach GNU General Public License w wersji 2, jak to opublikowała Free Software Foundation.
package-sources jest dystrybuowane w nadziei, że będzie przydatne, ale BEZ JAKIEJKOLWIEK GWARANCJI; bez nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Zobacz GNU General Public License, aby uzyskać więcej szczegółów.
Powinieneś otrzymać kopię GNU General Public License razem z package-sources. Jeśli nie, zobacz http://www.gnu.org/licenses/.
Informacje o autorze
Copyright © 2017-2018, Nicolas CANIART.
Role to manage Distribution Package Sources and their Encryption Keys
ansible-galaxy install cans.package-source