linux-system-roles.bootloader
gestor de arranque
Un rol de Ansible para la gestión del gestor de arranque y la línea de comandos del kernel.
Arquitecturas soportadas
Este rol soporta actualmente la configuración del gestor de arranque grub2, que funciona en las siguientes arquitecturas:
- Arquitecturas de 64 bits de AMD e Intel (x86-64)
- Arquitectura ARM de 64 bits (ARMv8.0)
- Sistemas IBM Power, Little Endian (POWER9)
Requisitos
Ver a continuación
Requisitos de colección
Si no quieres gestionar sistemas ostree, el rol no tiene requisitos.
Si deseas gestionar sistemas ostree, el rol requiere módulos adicionales de colecciones externas. Por favor, usa el siguiente comando para instalarlos:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variables del rol
bootloader_gather_facts
Si reunir bootloader_facts que contienen información de arranque para todos los kernels.
Por defecto: false
Tipo: bool
bootloader_settings
Con esta variable, lista los kernels y sus parámetros de línea de comandos que deseas configurar.
Claves requeridas:
kernel- con esto, especifica el kernel para actualizar la configuración. Cada lista debe especificar el mismo kernel usando una o más claves.Si deseas agregar un kernel, debes especificar tres claves:
path,title,initrd.Si deseas modificar o eliminar un kernel, puedes especificar una o más claves.
También puedes especificar
DEFAULToALLpara actualizar el kernel por defecto o todos los kernels.Claves disponibles:
path- ruta del kernelindex- índice del kerneltitle- título del kernelinitrd- imagen initrd del kernel
Cadenas disponibles:
DEFAULT- para actualizar la entrada por defectoALL- para actualizar todas las entradas
state- estado del kernel.Valores disponibles:
present,absentPor defecto:
presentoptions- con esto, especifica la configuración a actualizarname- El nombre de la configuración.namese omite al usarreplaced.value- El valor para la configuración. Debes omitirvaluesi la configuración no tiene valor, por ejemplo,quiet.state-present(por defecto) oabsent. El valorabsentsignifica eliminar una configuración con el nombrename- el nombre debe ser proporcionado.previous- Opcional - el único valor esreplaced- esto se utiliza para especificar que las configuraciones anteriores deben ser reemplazadas por las dadas.copy_default- Opcional - cuando creas un kernel, puedes especificarcopy_default: truepara copiar los argumentos por defecto al kernel creado.
Para un ejemplo, ver Ejemplo de Playbook.
Por defecto: {}
Tipo: dict
bootloader_timeout
Con esta variable, puedes personalizar el tiempo de carga del gestor de arranque GRUB.
Por defecto: 5
Tipo: int
bootloader_password
Con esta variable, puedes proteger los parámetros de arranque con una contraseña.
ADVERTENCIA: Cambiar la contraseña del gestor de arranque no es idempotente.
El nombre de usuario del gestor de arranque es siempre root.
Esto debe venir de un vault.
Si no está configurado, la configuración actual no se modifica.
Por defecto: null
Tipo: string
bootloader_remove_password
Al configurar esta variable como true, puedes eliminar la contraseña del gestor de arranque.
Por defecto: false
Tipo: bool
bootloader_reboot_ok
Si true, si el rol detecta que algo cambió que requiere un reinicio para tener efecto, el rol reiniciará el host gestionado.
Si false, depende de ti determinar cuándo reiniciar el host gestionado.
El rol regresará la variable bootloader_reboot_required (ver más abajo) con un valor de true para indicar que se ha producido un cambio que necesita un reinicio para tener efecto.
Por defecto: false
Tipo: bool
Variables exportadas por el rol
El rol exporta las siguientes variables:
bootloader_reboot_needed
Por defecto false - si es true, esto significa que se necesita un reinicio para aplicar los cambios realizados por el rol.
bootloader_facts
Contiene información de arranque para todos los kernels.
El rol devuelve esta variable cuando configuras bootloader_gather_facts: true.
Por ejemplo:
"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
}
]
Ejemplo de Playbook
- hosts: all
vars:
bootloader_settings:
# Actualizar un kernel existente usando la ruta y reemplazando configuraciones anteriores
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
options:
- name: console
value: tty0
state: present
- previous: replaced
# Actualizar un kernel existente usando el índice
- kernel:
index: 1
options:
- name: print-fatal-signals
value: 1
# Actualizar un kernel existente usando el título
- kernel:
title: Red Hat Enterprise Linux (4.1.1.1.el8.x86_64) 8
options:
- name: no_timer_check
state: present
# Agregar un kernel con argumentos
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Mi kernel
options:
- name: console
value: tty0
- name: print-fatal-signals
value: 1
- name: no_timer_check
state: present
state: present
# Agregar un kernel con argumentos y copiando argumentos por defecto
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Mi kernel
options:
- name: console
value: tty0
- copy_default: true
state: present
# Eliminar un kernel
- kernel:
title: Mi kernel
state: absent
# Actualizar todos los kernels
- kernel: ALL
options:
- name: debug
state: present
# Actualizar el kernel por defecto
- 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
Ver README-ostree.md
Licencia
MIT
Ansible role for bootloader management
ansible-galaxy install linux-system-roles.bootloader