chasinglogic.os_packages

Ansible rola: os-packages

Instaluj pakiety używając plików zmiennych

GitHub Actions GitHub Actions

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

Licencja Apache

O projekcie

Install packages using variable files

Zainstaluj
ansible-galaxy install chasinglogic.os_packages
Licencja
apache-2.0
Pobrania
240
Właściciel
Linux and FOSS Enthusiast.