chasinglogic.os_packages
Ansible rola: os-packages
Instaluj pakiety używając plików zmiennych
Kiedy i dlaczego używać tej roli
Podczas definiowania konfiguracji dla wielu systemów często trzeba
zainstalować pakiety systemowe, które nie wymagają żadnej konfiguracji poza samą instalacją. Pakiety takie jak build-essential
lub gcc
na serwerze do budowania. Tworzenie wielu jednorazowych ról dla pojedynczych pakietów byłoby bardzo niewygodne. Nawet jeśli nie wybierzesz drogi "jedna rola na pakiet", możesz znaleźć się w sytuacji, gdzie masz wiele oddzielnych list pakietów rozproszonych w swoich rolach, co może utrudniać porównanie i aktualizację tych list.
Ta rola pozwala na centralizację list pakietów w plikach zmiennych, dzięki czemu są one łatwo powiązane z sobą. Działa w różnych środowiskach, jeśli masz określone deb_packages
, ale Ansible nie uruchamia się na hoście z zainstalowanym apt, te deb_packages
zostaną po prostu zignorowane. Nie są potrzebne warunki.
Nie zaleca się używania tej roli do instalacji oprogramowania, które wymaga dużo konfiguracji lub innej konfiguracji. Na przykład Nextcloud, NGINX czy Apache byłyby złymi wyborami do instalacji w ten sposób, ponieważ będą wymagały dodatkowej konfiguracji (SELinux, konfiguracja, reguły zapory itp.) i powinny mieć swoją dedykowaną rolę, która zajmie się wszystkimi szczegółami ich wdrożenia.
Zmienność roli
Nazwa | Opis | Typ | Domyślnie | Wymagane |
---|---|---|---|---|
packages_apt_globally_update_cache | Określa, czy przed instalacją pakietów powinno być uruchomione globalne apt update . |
boolean | true | nie |
generic_packages | Lista pakietów, które będą używać modułu package w Ansible. Wiele pakietów ma ogólne i spójne nazwy w różnych dystrybucjach Linuxa. Powinny trafić do tej zmiennej. |
lista | [] | nie |
deb_packages | Lista pakietów, które będą używać odpowiedniego modułu pakowania w Ansible dla pakietów .deb | lista | [] | nie |
rpm_packages | Lista pakietów, które będą używać odpowiedniego modułu pakowania w Ansible dla pakietów .rpm | lista | [] | nie |
pacman_packages | Lista pakietów, które będą używać modułu pakowania pacman w Ansible | lista | [] | nie |
generic_package_specs | Lista specyfikacji pakietów, które będą używać modułu package w Ansible. Wiele pakietów ma ogólne i spójne nazwy w różnych dystrybucjach Linuxa. Powinny trafić do tej zmiennej. |
lista | [] | nie |
deb_package_specs | Lista specyfikacji pakietów, które będą używać odpowiedniego modułu pakowania w Ansible dla specyfikacji pakietów .deb | lista | [] | nie |
rpm_package_specs | Lista specyfikacji pakietów, które będą używać odpowiedniego modułu pakowania w Ansible dla specyfikacji pakietów .rpm | lista | [] | nie |
pacman_package_specs | Lista specyfikacji pakietów, które będą używać modułu pakowania pacman w Ansible | lista | [] | nie |
Określanie zależności
Zmienności generic_packages
, deb_packages
, pacman_packages
i rpm_packages
są listami pakietów do zainstalowania. Są to zwykłe listy ciągów,
które zostaną zapewnione do zainstalowania:
generic_packages:
- gcc
- tmux
- vim
Użycie innych stanów niż obecny
Zmienności generic_package_specs
, deb_package_specs
itp. są
używane do bardziej szczegółowej kontroli nad instalacją pakietu. Mogą
być używane również do usuwania pakietów, instalacji najnowszej wersji lub uzyskiwania
konkretnych listingów zainstalowanych pakietów za pomocą zmiennych pętli w
wyjściu Ansible. Aby użyć specyfikacji pakietu, wyglądają one następująco:
generic_package_specs:
- name: gcc
state: latest
Lista deb_package_specs
dodatkowo pozwala na określenie opcji update_cache
:
deb_package_specs:
- name: gcc
state: latest
update_cache: yes
Przykład Playbooka
- hosts: all
roles:
- role: os-packages
Licencja
ansible-galaxy install chasinglogic.os_packages