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ć
DEFAULT
lubALL
, 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
,absent
Domyślnie:
present
options
- za pomocą tej zmiennej określ ustawienia do zaktualizowania.name
- nazwa ustawienia.name
jest 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śćabsent
oznacza 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