linux-system-roles.bootloader
bootloader
Ansible rola do zarządzania bootloaderem i parametrami linii poleceń jądra.
Obsługiwane architektury
Ta rola obecnie wspiera konfigurację bootloadera grub2, który działa na następujących architekturach:
- Architektury 64-bitowe AMD i Intel (x86-64)
- Architektura ARM 64-bit (ARMv8.0)
- Systemy Power IBM, Little Endian (POWER9)
Wymagania
Zobacz poniżej.
Wymagania dotyczące kolekcji
Jeśli nie chcesz zarządzać systemami ostree, rola nie ma dodatkowych wymagań.
Jeśli chcesz zarządzać systemami ostree, rola wymaga dodatkowych modułów z zewnętrznych kolekcji. Użyj następującego polecenia, aby je zainstalować:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Zmienne roli
bootloader_gather_facts
Czy zbierać bootloader_facts zawierające informacje o rozruchu dla wszystkich jąder.
Domyślnie: false
Typ: bool
bootloader_settings
Za pomocą tej zmiennej wymień jądra i ich parametry linii poleceń, które chcesz ustawić.
Wymagane klucze:
kernel- za pomocą tego określisz jądro, dla którego chcesz zaktualizować ustawienia. Każda lista powinna określać to samo jądro używając jednego lub więcej kluczy.Jeśli chcesz dodać nowe jądro, musisz określić trzy klucze:
path,title,initrd.Jeśli chcesz zmodyfikować lub usunąć jądro, możesz określić jeden lub więcej kluczy.
Możesz również określić
DEFAULTlubALL, aby zaktualizować domyślne lub wszystkie jądra.Dostępne klucze:
path- ścieżka do jądraindex- indeks jądratitle- tytuł jądrainitrd- obraz initrd jądra
Dostępne ciągi:
DEFAULT- aby zaktualizować domyślny wpisALL- aby zaktualizować wszystkie wpisy
state- stan jądra.Dostępne wartości:
present,absentDomyślnie:
presentoptions- za pomocą tej zmiennej określ ustawienia do zaktualizowania.name- nazwa ustawienia.namejest pomijany podczas używaniareplaced.value- wartość ustawienia. Musisz pominąćvalue, jeśli ustawienie nie ma wartości, np.quiet.state-present(domyślnie) lubabsent. Wartośćabsentoznacza usunięcie ustawienia o podanej nazwie - nazwa musi być podana.previous- opcjonalnie - jedyną wartością jestreplaced- używane do określenia, że poprzednie ustawienia powinny zostać zastąpione przez podane.copy_default- opcjonalnie - gdy tworzysz jądro, możesz określićcopy_default: true, aby skopiować domyślne argumenty do utworzonego jądra.
Przykład znajdziesz w Przykładzie Playbooka.
Domyślnie: {}
Typ: dict
bootloader_timeout
Za pomocą tej zmiennej możesz dostosować czas ładowania bootloadera GRUB.
Domyślnie: 5
Typ: int
bootloader_password
Za pomocą tej zmiennej możesz chronić parametry rozruchu hasłem.
OSTRZEŻENIE: Zmiana hasła bootloadera nie jest idempotentna.
Nazwa użytkownika bootloadera to zawsze root.
To hasło powinno pochodzić z sejfu.
Jeśli nie jest ustawione, obecna konfiguracja nie jest zmieniana.
Domyślnie: null
Typ: string
bootloader_remove_password
Ustawiając tę zmienną na true, możesz usunąć hasło bootloadera.
Domyślnie: false
Typ: bool
bootloader_reboot_ok
Jeśli true, jeśli rola wykryje, że coś się zmieniło, co wymaga ponownego uruchomienia, rola zrestartuje zarządzany host.
Jeśli false, to Ty decydujesz, kiedy ponownie uruchomić zarządzany host.
Rola zwróci zmienną bootloader_reboot_required (zobacz poniżej) z wartością true, aby wskazać, że dokonano jakiejś zmiany, która wymaga ponownego uruchomienia.
Domyślnie: false
Typ: bool
Zmienne eksportowane przez rolę
Rola eksportuje następujące zmienne:
bootloader_reboot_needed
Domyślnie false - jeśli true, oznacza to, że ponowne uruchomienie jest konieczne, aby zastosować zmiany dokonane przez rolę.
bootloader_facts
Zawiera informacje o rozruchu dla wszystkich jąder.
Rola zwraca tę zmienną, gdy ustawisz bootloader_gather_facts: true.
Na przykład:
"bootloader_facts": [
{
"args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet",
"id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet",
"index": "3",
"initrd": "/boot/initramfs-0-rescue-c44543d15b2c4e898912c2497f734e67.img",
"kernel": "/boot/vmlinuz-0-rescue-c44543d15b2c4e898912c2497f734e67",
"root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
"title": "Fedora Linux (0-rescue-c44543d15b2c4e898912c2497f734e67) 36 (Workstation Edition)",
"default": True
},
{
"args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
"id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
"index": "2",
"initrd": "/boot/initramfs-6.3.12-100.fc37.x86_64.img $tuned_initrd",
"kernel": "/boot/vmlinuz-6.3.12-100.fc37.x86_64",
"root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
"title": "Fedora Linux (6.3.12-100.fc37.x86_64) 37 (Workstation Edition)",
"default": False
},
{
"args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
"id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
"index": "1",
"initrd": "/boot/initramfs-6.4.15-100.fc37.x86_64.img $tuned_initrd",
"kernel": "/boot/vmlinuz-6.4.15-100.fc37.x86_64",
"root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
"title": "Fedora Linux (6.4.15-100.fc37.x86_64) 37 (Workstation Edition)",
"default": False
},
{
"args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
"id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
"index": "0",
"initrd": "/boot/initramfs-6.5.7-100.fc37.x86_64.img $tuned_initrd",
"kernel": "/boot/vmlinuz-6.5.7-100.fc37.x86_64",
"root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
"title": "Fedora Linux (6.5.7-100.fc37.x86_64) 37 (Workstation Edition)",
"default": False
}
]
Przykład Playbooka
- hosts: all
vars:
bootloader_settings:
# Zaktualizuj istniejące jądro, używając ścieżki i zastępując poprzednie ustawienia
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
options:
- name: console
value: tty0
state: present
- previous: replaced
# Zaktualizuj istniejące jądro, używając indeksu
- kernel:
index: 1
options:
- name: print-fatal-signals
value: 1
# Zaktualizuj istniejące jądro, używając tytułu
- kernel:
title: Red Hat Enterprise Linux (4.1.1.1.el8.x86_64) 8
options:
- name: no_timer_check
state: present
# Dodaj jądro z argumentami
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Moje jądro
options:
- name: console
value: tty0
- name: print-fatal-signals
value: 1
- name: no_timer_check
state: present
state: present
# Dodaj jądro z argumentami i kopiuj domyślne argumenty
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Moje jądro
options:
- name: console
value: tty0
- copy_default: true
state: present
# Usuń jądro
- kernel:
title: Moje jądro
state: absent
# Zaktualizuj wszystkie jądra
- kernel: ALL
options:
- name: debug
state: present
# Zaktualizuj domyślne jądro
- kernel: DEFAULT
options:
- name: quiet
state: present
bootloader_timeout: 5
bootloader_password: null
bootloader_remove_password: false
bootloader_reboot_ok: true
roles:
- linux-system-roles.bootloader
rpm-ostree
Zobacz README-ostree.md
Licencja
MIT
Ansible role for bootloader management
ansible-galaxy install linux-system-roles.bootloader