linux-system-roles.bootloader
Chargeur de démarrage
Un rôle Ansible pour la gestion du chargeur de démarrage et des paramètres de ligne de commande du noyau.
Architectures prises en charge
Ce rôle prend actuellement en charge la configuration du chargeur de démarrage grub2
qui fonctionne sur les architectures suivantes :
- Architectures 64 bits AMD et Intel (x86-64)
- Architecture ARM 64 bits (ARMv8.0)
- IBM Power Systems, Little Endian (POWER9)
Exigences
Voir ci-dessous
Exigences de collection
Si vous ne souhaitez pas gérer les systèmes ostree
, le rôle n'a aucune exigence.
Si vous voulez gérer les systèmes ostree
, le rôle nécessite des modules supplémentaires provenant de collections externes. Veuillez utiliser la commande suivante pour les installer :
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variables du rôle
bootloader_gather_facts
Indique s'il faut collecter les bootloader_facts qui contiennent des informations de démarrage pour tous les noyaux.
Par défaut : false
Type : bool
bootloader_settings
Avec cette variable, listez les noyaux et leurs paramètres de ligne de commande que vous souhaitez définir.
Clés requises :
kernel
- avec ceci, spécifiez le noyau pour lequel mettre à jour les paramètres. Chaque liste doit spécifier le même noyau en utilisant une ou plusieurs clés.Si vous voulez ajouter un noyau, vous devez spécifier trois clés :
path
,title
,initrd
.Si vous souhaitez modifier ou supprimer un noyau, vous pouvez spécifier une ou plusieurs clés.
Vous pouvez aussi spécifier
DEFAULT
ouALL
pour mettre à jour le noyau par défaut ou tous les noyaux.Clés disponibles :
path
- chemin du noyauindex
- index du noyautitle
- titre du noyauinitrd
- image initrd du noyau
Chaînes disponibles :
DEFAULT
- pour mettre à jour l'entrée par défautALL
- pour mettre à jour toutes les entrées
state
- état du noyau.Valeurs disponibles :
present
,absent
Par défaut :
present
options
- avec ceci, spécifiez les paramètres à mettre à jour.name
- Le nom du paramètre.name
est omis lors de l'utilisation dereplaced
.value
- La valeur pour le paramètre. Vous devez omettrevalue
si le paramètre n'a pas de valeur, par exemplequiet
.state
-present
(par défaut) ouabsent
. La valeurabsent
signifie supprimer un paramètre avec le nomname
.previous
- Optionnel - la seule valeur estreplaced
- ceci est utilisé pour indiquer que les paramètres précédents doivent être remplacés par les paramètres donnés.copy_default
- Optionnel - lorsque vous créez un noyau, vous pouvez spécifiercopy_default: true
pour copier les arguments par défaut vers le noyau créé.
Pour un exemple, voir Exemple de Playbook.
Par défaut : {}
Type : dict
bootloader_timeout
Avec cette variable, vous pouvez personnaliser le temps de chargement du chargeur de démarrage GRUB.
Par défaut : 5
Type : int
bootloader_password
Avec cette variable, vous pouvez protéger les paramètres de démarrage avec un mot de passe.
AVERTISSEMENT : Changer le mot de passe du chargeur de démarrage n'est pas idempotent.
Le nom d'utilisateur du chargeur de démarrage est toujours root
.
Cela doit provenir du coffre-fort.
Si non défini, la configuration actuelle n'est pas modifiée.
Par défaut : null
Type : string
bootloader_remove_password
En définissant cette variable sur true
, vous pouvez supprimer le mot de passe du chargeur de démarrage.
Par défaut : false
Type : bool
bootloader_reboot_ok
Si true
, ce rôle redémarrera l'hôte géré si des changements nécessitent un redémarrage pour prendre effet.
Si false
, il vous appartient de déterminer quand redémarrer l'hôte géré.
Le rôle renverra la variable bootloader_reboot_required
(voir ci-dessous) avec une valeur de true
pour indiquer qu'un changement a eu lieu qui nécessite un redémarrage pour prendre effet.
Par défaut : false
Type : bool
Variables exportées par le rôle
Le rôle exporte les variables suivantes :
bootloader_reboot_needed
Par défaut false
- si true
, cela signifie qu'un redémarrage est nécessaire pour appliquer les changements effectués par le rôle.
bootloader_facts
Contient des informations de démarrage pour tous les noyaux.
Le rôle renvoie cette variable lorsque vous définissez bootloader_gather_facts: true
.
Par exemple :
"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
}
]
Exemple de Playbook
- hosts: all
vars:
bootloader_settings:
# Mettre à jour un noyau existant en utilisant le chemin et en remplaçant les paramètres précédents
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
options:
- name: console
value: tty0
state: present
- previous: replaced
# Mettre à jour un noyau existant en utilisant l'index
- kernel:
index: 1
options:
- name: print-fatal-signals
value: 1
# Mettre à jour un noyau existant en utilisant le titre
- kernel:
title: Red Hat Enterprise Linux (4.1.1.1.el8.x86_64) 8
options:
- name: no_timer_check
state: present
# Ajouter un noyau avec des arguments
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Mon noyau
options:
- name: console
value: tty0
- name: print-fatal-signals
value: 1
- name: no_timer_check
state: present
state: present
# Ajouter un noyau avec des arguments et copier les arguments par défaut
- kernel:
path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
title: Mon noyau
options:
- name: console
value: tty0
- copy_default: true
state: present
# Supprimer un noyau
- kernel:
title: Mon noyau
state: absent
# Mettre à jour tous les noyaux
- kernel: ALL
options:
- name: debug
state: present
# Mettre à jour le noyau par défaut
- 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
Voir README-ostree.md
Licence
MIT
Ansible role for bootloader management
ansible-galaxy install linux-system-roles.bootloader