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
DEFAULT
oALL
para 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
,absent
Por defecto:
present
options
- con esto, especifica la configuración a actualizarname
- El nombre de la configuración.name
se omite al usarreplaced
.value
- El valor para la configuración. Debes omitirvalue
si la configuración no tiene valor, por ejemplo,quiet
.state
-present
(por defecto) oabsent
. El valorabsent
significa 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: true
para 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