linux-system-roles.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