gwerlas.system

System bazowy

status pipeline

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 SSL
  • firewall
  • 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

Licencja BSD 3-Klauzowa.

O projekcie

Linux systems management

Zainstaluj
ansible-galaxy install gwerlas.system
Licencja
bsd-3-clause
Pobrania
5.6k
Właściciel
DevOps Engineer