guidugli.kernel_config
Rôle Ansible : kernel_config
Un rôle Ansible qui installe et configure sysctl sur RHEL/CentOS, Fedora et Debian/Ubuntu. Ce rôle peut aussi désactiver, bloquer ou définir des modules du noyau pour démarrer automatiquement. De plus, il peut établir des règles UDEV liées à la gestion de l'alimentation.
REMARQUE : Désactiver des modules du noyau ou mettre des appareils en veille (paramètres udev) peut affecter le fonctionnement du système et nécessiter une récupération du système (connexion en mode utilisateur unique ou démarrage live).
Exigences
Système d'exploitation fonctionnant sur du matériel physique ou sur une virtualisation par hyperviseur. Selon les paramètres, ce rôle peut ne pas fonctionner correctement sur des systèmes conteneurisés.
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml
):
kernel_disable_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
'dccp', 'sctp', 'rds', 'tipc']
Utilisez cette variable pour lister les modules du noyau qui doivent être désactivés. Vous pouvez ajouter usb-storage à la liste, mais cela empêchera tout appareil de stockage USB de fonctionner. Envisagez d'utiliser USBGuard. Les valeurs par défaut fonctionneront sur la plupart des systèmes. Si le système a besoin d'utiliser certains de ces modules, écrasez cette variable avec la configuration souhaitée.
kernel_blacklist_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
'dccp', 'sctp', 'rds', 'tipc']
Modules à bloquer. Les valeurs par défaut fonctionneront sur la plupart des systèmes. Si le système nécessite d'utiliser certains de ces modules, écrasez cette variable avec la configuration souhaitée.
#kernel_autostart_modules: ['br_netfilter']
Modules à démarrer automatiquement.
kernel_sysctl:
- { name: fs.suid_dumpable, value: "0" }
- { name: fs.protected_hardlinks, value: "1" }
- { name: fs.protected_symlinks, value: "1" }
- { name: fs.inotify.max_user_instances, value: "1024" }
- { name: kernel.dmesg_restrict, value: "1" }
- { name: kernel.yama.ptrace_scope, value: "1" }
- { name: kernel.randomize_va_space, value: "2" }
- { name: kernel.kptr_restrict, value: "1" }
- { name: kernel.nmi_watchdog, value: "0" }
- { name: net.ipv4.ip_forward, value: "0" }
- { name: net.ipv4.conf.all.forwarding, value: "0" }
- { name: net.ipv4.conf.all.send_redirects, value: "0" }
- { name: net.ipv4.conf.default.send_redirects, value: "0" }
- { name: net.ipv4.conf.all.accept_source_route, value: "0" }
- { name: net.ipv4.conf.default.accept_source_route, value: "0" }
- { name: net.ipv4.conf.all.accept_redirects, value: "0" }
- { name: net.ipv4.conf.default.accept_redirects, value: "0" }
- { name: net.ipv4.conf.all.secure_redirects, value: "0" }
- { name: net.ipv4.conf.default.secure_redirects, value: "0" }
- { name: net.ipv4.conf.all.log_martians, value: "1" }
- { name: net.ipv4.conf.default.log_martians, value: "1" }
- { name: net.ipv4.icmp_echo_ignore_broadcasts, value: "1" }
- { name: net.ipv4.icmp_ignore_bogus_error_responses, value: "1" }
- { name: net.ipv4.conf.all.rp_filter, value: "1" }
- { name: net.ipv4.conf.default.rp_filter, value: "1" }
- { name: net.ipv4.tcp_syncookies, value: "1" }
- { name: net.ipv6.conf.all.disable_ipv6, value: "1" }
- { name: net.ipv6.conf.default.disable_ipv6, value: "1" }
Spécifiez les paramètres sysctl à configurer sur le système. La configuration par défaut est adaptée pour les systèmes qui ne fonctionnent pas comme des routeurs et qui n'utilisent pas IPv6. Vérifiez les règles et écrasez cette variable si nécessaire.
kernel_sysctl_flush_network_routes: yes
Si défini sur oui, cela mettra les paramètres net.ipv4.route.flush et net.ipv6.route.flush à 1 et rechargera.
#kernel_udev_sata_link_power_mgmt: med_power_with_dipm
Politique de gestion de l'alimentation du lien SATA. Les valeurs valides sont min_power, max_performance, medium_power, med_power_with_dipm.
#kernel_udev_autosuspend_ahci_devices: yes
Mettre en veille automatique les contrôleurs AHCI et les appareils ATA.
#kernel_udev_autosuspend_scsi_devices: yes
Mettre en veille automatique les appareils scsi, driver=sd.
#kernel_udev_disable_bluetooth: no
Désactiver Bluetooth.
#kernel_udev_disable_wake_on_lan: yes
Désactiver Wake on LAN.
#kernel_udev_usb_autosuspend_devices:
# - { vendor: '13fe', product: '5500' } # Clé USB Silicon Power
# - { vendor: '1532', product: '0f13', autosuspend: 120 } # Clavier
Liste des appareils à mettre en veille automatique. Généralement, Linux met déjà en veille automatique les hubs USB et d'autres appareils, donc il n'est pas nécessaire d'utiliser cette option. Vérifiez quels appareils sont réglés sur automatique ou non en regardant /sys/bus/usb/devices/*/power/control.
#kernel_udev_pci_autosuspend_devices:
# - { vendor: '0x8086', device: '0x0c00' }
# - { vendor: '0x8086', device: '0x0412' }
Liste des appareils PCI à mettre en veille automatique.
#kernel_udev_enable_wlan_powersave: yes
Activer l'économie d'énergie du WLAN ?
Les variables ci-dessous n'ont pas besoin d'être modifiées pour les systèmes ciblés (voir vars/main.yml
):
kernel_udev_reload_cmd: "udevadm control --reload-rules && udevadm trigger"
Commande pour recharger les règles udev.
Dépendances
Pas de dépendances.
Exemple de Playbook
- hosts: serveurs
vars:
kernel_disable_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'vfat', 'squashfs']
kernel_blacklist_modules: ['radeon', 'amdgpu']
kernel_sysctl:
- { name: net.ipv4.conf.all.forwarding, value: "0" }
- { name: net.ipv4.conf.all.send_redirects, value: "0" }
- { name: net.ipv4.conf.default.send_redirects, value: "0" }
- { name: net.ipv4.conf.all.accept_source_route, value: "0" }
- { name: net.ipv4.conf.default.accept_source_route, value: "0" }
- { name: net.ipv4.conf.all.accept_redirects, value: "0" }
- { name: net.ipv4.conf.default.accept_redirects, value: "0" }
- { name: net.ipv4.conf.all.secure_redirects, value: "0" }
- { name: net.ipv4.conf.default.secure_redirects, value: "0" }
- { name: net.ipv4.conf.all.log_martians, value: "1" }
- { name: net.ipv4.conf.default.log_martians, value: "1" }
- { name: net.ipv4.icmp_echo_ignore_broadcasts, value: "1" }
- { name: net.ipv4.icmp_ignore_bogus_error_responses, value: "1" }
- { name: net.ipv4.conf.all.rp_filter, value: "1" }
- { name: net.ipv4.conf.default.rp_filter, value: "1" }
- { name: net.ipv4.tcp_syncookies, value: "1" }
kernel_sysctl_flush_network_routes: yes
roles:
- { role: guidugli.kernel_config }
Licence
MIT / BSD
Informations sur l'Auteur
Ce rôle a été créé en 2020 par Carlos Guidugli.
Disable kernel modules and configure sysctl settings on linux
ansible-galaxy install guidugli.kernel_config