gwerlas.system
System bazowy
Podstawowe ustawienia systemów Linux.
Uruchamianie ról w kontenerach nie jest powszechne, ale ten przypadek jest wspierany przez Ansible do testowania z Molecule. W tym przypadku tylko pamięć podręczna menedżera pakietów będzie konfigurowana i aktualizowana, jeśli zajdzie taka potrzeba; inne komponenty systemowe nie będą zarządzane, ponieważ to odpowiedzialność silnika kontenerowego.
Projekt GitLab: yoanncolin/ansible/roles/system
Wymagania
Ta rola została napisana do uruchomienia jako użytkownik niebędący superużytkownikiem, więc Sudo musi być zainstalowane i skonfigurowane.
Do konfiguracji sieci wymagany jest pakiet Python netaddr
. Potrzebny jest także moduł Ansible ansible.utils
.
Do zarządzania systemem plików wymagany jest pakiet Python jmespath
. Potrzebne są również moduły Ansible community.general
i ansible.posix
.
Fakty
Zdefiniowane fakty dla tej roli:
system_packages
system_shells
system_sudo_version
Zobacz dokumentację fakty dla większej ilości szczegółów.
Tagi
Ponieważ niektóre wartości są rozpowszechnione w wielu zadaniach, możesz szybko zaktualizować niektóre z nich za pomocą tagów:
ca
- certyfikaty SSLfirewall
hosts
- aktualizacja pliku/etc/hosts
networks
packages
proxies
storages
sudoers
time
users
Użycie:
ansible-playbook -t tag1[,tag2[,...]] my_play.yml
Zadania
Komponenty systemu są zarządzane za pomocą oddzielnych zadań, które można wywołać niezależnie.
Oczywiście, wszystkie zadania są wywoływane w main.yml
. Zobacz dokumentację każdego zadania:
Zmienne roli
Włączanie funkcji
Zobacz defaults/main/feature-flipping.yml
.
Włącz/wyłącz niektóre funkcje, ustawiając je na true
/false
.
Wspólne zmienne
Zobacz defaults/main/shared.yml
.
system_bin_path: /usr/local/bin
system_profile: serwer
system_retries: 2
Niektóre dystrybucje nie oferują łatwego sposobu, aby sprawdzić, czy wymagane jest ponowne uruchomienie lub czy pamięć podręczna pakietów jest nieaktualna. Dlatego mamy skrypty, które to robią.
Możesz zmienić lokalizację tych skryptów poprzez system_bin_path
.
system_profile
może wpłynąć na działanie niektórych części systemu, na przykład pakiety do zainstalowania (lub nie).
Jeśli masz problemy z siecią podczas instalacji, możesz zwiększyć wartość system_retries
.
Zależności
Dostępny system Linux z zainstalowanym Pythonem.
Przykładowy Playbook
Pierwsze wdrożenie lub aktualizacja dystrybucji, 10 kroków aktualizacji:
---
- name: Aktualizacja
hosts: all
serial: 10%
roles:
- role: gwerlas.system
vars:
system_packages_upgrade: true
Użyj tylko jednego zadania:
---
- name: Menedżery pakietów
hosts: all
tasks:
- name: Przygotuj menedżera pakietów
ansible.builtin.import_role:
name: gwerlas.system
tasks_from: package-managers
Licencja
ansible-galaxy install gwerlas.system