bootloader
Загрузчик
Роль Ansible для управления загрузчиком и командной строкой ядра.
Поддерживаемые архитектуры
Эта роль поддерживает настройку загрузчика grub2
, который работает на следующих архитектурах:
- Архитектуры AMD и Intel 64-бит (x86-64)
- 64-битная архитектура ARM (ARMv8.0)
- IBM Power Systems, Little Endian (POWER9)
Требования
Смотрите ниже
Требования для коллекции
Если вы не хотите управлять системами ostree
, у этой роли нет требований.
Если вы хотите управлять системами ostree
, роли требуются дополнительные модули из внешних коллекций. Пожалуйста, используйте следующую команду для их установки:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Переменные роли
bootloader_gather_facts
Необходимо ли собирать bootloader_facts, содержащие информацию о загрузке для всех ядер.
По умолчанию: false
Тип: bool
bootloader_settings
С помощью этой переменной можно перечислить ядра и параметры командной строки, которые вы хотите установить.
Обязательные ключи:
kernel
- с помощью этого ключа укажите ядро, настройки которого нужно обновить. Каждый список должен определять одно и то же ядро, используя один или несколько ключей.Если вы хотите добавить ядро, вы должны указать три ключа -
path
,title
,initrd
.Для изменения или удаления ядра можно указать один или несколько ключей.
Также можно указать
DEFAULT
илиALL
, чтобы обновить настройки по умолчанию или для всех ядер.Доступные ключи:
path
- путь к ядруindex
- индекс ядраtitle
- название ядраinitrd
- изображение initrd ядра
Доступные строки:
DEFAULT
- для обновления записи по умолчаниюALL
- для обновления всех записей
state
- состояние ядра.Доступные значения:
present
,absent
По умолчанию:
present
options
- с помощью этого ключа укажите настройки, которые нужно обновитьname
- Имя настройки.name
пропускается при использованииreplaced
.value
- Значение настройки. Необходимо пропуститьvalue
, если настройка не имеет значения, например,quiet
.state
-present
(по умолчанию) илиabsent
. Значениеabsent
означает удаление настройки с именемname
- имя должно быть указано.previous
- По желанию - единственное значениеreplaced
- используется для указания, что предыдущие настройки должны быть заменены на заданные настройки.copy_default
- По желанию - когда вы создаете ядро, вы можете указатьcopy_default: true
, чтобы скопировать аргументы по умолчанию в создаваемое ядро.
Для примера смотрите Пример Playbook.
По умолчанию: {}
Тип: dict
bootloader_timeout
С помощью этой переменной вы можете настроить время загрузки загрузчика GRUB.
По умолчанию: 5
Тип: int
bootloader_password
С помощью этой переменной вы можете защитить параметры загрузки паролем.
ВНИМАНИЕ: Изменение пароля загрузчика не является идемпотентным.
Имя пользователя загрузчика всегда root
.
Пароль должен храниться в хранилище.
Если не задан, текущая конфигурация не изменяется.
По умолчанию: null
Тип: string
bootloader_remove_password
Установив эту переменную в true
, вы можете удалить пароль загрузчика.
По умолчанию: false
Тип: bool
bootloader_reboot_ok
Если true
, если роль обнаруживает, что что-то изменилось и требуется перезагрузка для принятия изменений, роль перезагрузит управляемый хост.
Если false
, вы сами решаете, когда перезагружать управляемый хост.
Роль вернет переменную bootloader_reboot_required
(см. ниже) со значением true
, чтобы указать, что произошло изменение, которое требует перезагрузки для принятия изменений.
По умолчанию: false
Тип: bool
Экспортируемые ролью переменные
Роль экспортирует следующие переменные:
bootloader_reboot_needed
По умолчанию false
- если true
, это означает, что перезагрузка необходима для применения изменений, сделанных ролью.
bootloader_facts
Содержит информацию о загрузке для всех ядер.
Роль возвращает эту переменную, когда вы устанавливаете bootloader_gather_facts: true
.
Например:
"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 (Рабочая версия)",
"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 (Рабочая версия)",
"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 (Рабочая версия)",
"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 (Рабочая версия)",
"default": False
}
]
Пример Playbook
- hosts: all
vars:
bootloader_settings:
# Обновите существующее ядро, используя путь и заменяя предыдущие настройки
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
options:
- name: console
value: tty0
state: present
- previous: replaced
# Обновите существующее ядро, используя индекс
- kernel:
index: 1
options:
- name: print-fatal-signals
value: 1
# Обновите существующее ядро, используя название
- kernel:
title: Red Hat Enterprise Linux (4.1.1.1.el8.x86_64) 8
options:
- name: no_timer_check
state: present
# Добавьте ядро с аргументами
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Мое ядро
options:
- name: console
value: tty0
- name: print-fatal-signals
value: 1
- name: no_timer_check
state: present
state: present
# Добавьте ядро с аргументами и копированием аргументов по умолчанию
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Мое ядро
options:
- name: console
value: tty0
- copy_default: true
state: present
# Удалите ядро
- kernel:
title: Мое ядро
state: absent
# Обновите все ядра
- kernel: ALL
options:
- name: debug
state: present
# Обновите ядро по умолчанию
- 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
Смотрите README-ostree.md
Лицензия
MIT
Ansible role for bootloader management
ansible-galaxy install linux-system-roles/bootloader