guidugli.kernel_config
Papel de Ansible: kernel_config
Un Papel de Ansible que instala y configura sysctl en RHEL/CentOS, Fedora y Debian/Ubuntu. Este papel también puede deshabilitar, poner en lista negra o configurar módulos del kernel para que se inicien automáticamente. Además, puede establecer reglas de UDEV relacionadas con la gestión de energía.
NOTA: Deshabilitar módulos del kernel o configurar dispositivos para que entren en modo de suspensión (ajustes de udev) puede afectar el funcionamiento del sistema y puede requerir recuperación del sistema (inicio de usuario único o incluso arranque en vivo).
Requisitos
Sistema operativo que se ejecute en metal puro o en una virtualización de hipervisor. Dependiendo de la configuración, este papel puede no funcionar correctamente en sistemas contenedorizados.
Variables del Papel
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
kernel_disable_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
'dccp', 'sctp', 'rds', 'tipc']
Utiliza esta variable para listar los módulos del kernel que deben ser deshabilitados. Puedes agregar usb-storage a la lista, pero esto impedirá que cualquier dispositivo de almacenamiento USB funcione. Considera usar USBGuard. Los valores predeterminados funcionan en la mayoría de los sistemas. Si el sistema necesita usar algunos de estos módulos, sobrescribe esta variable con la configuración deseada.
kernel_blacklist_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
'dccp', 'sctp', 'rds', 'tipc']
Módulos que deben estar en la lista negra. Los valores predeterminados funcionan en la mayoría de los sistemas. Si el sistema necesita usar algunos de estos módulos, sobrescribe esta variable con la configuración deseada.
#kernel_autostart_modules: ['br_netfilter']
Módulos para que se inicien automáticamente.
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" }
Especifica los parámetros sysctl que se configurarán en el sistema. La configuración predeterminada es válida para sistemas que no actúan como enrutadores y que no utilizan IPv6. Revisa las reglas y sobrescribe esta variable si es necesario.
kernel_sysctl_flush_network_routes: yes
Si se establece en sí, configurará net.ipv4.route.flush y net.ipv6.route.flush en 1 y recargará.
#kernel_udev_sata_link_power_mgmt: med_power_with_dipm
Política de gestión de energía del enlace SATA. Los valores válidos son min_power, max_performance, medium_power, med_power_with_dipm.
#kernel_udev_autosuspend_ahci_devices: yes
Poner en suspensión automática controladores AHCI y dispositivos ATA.
#kernel_udev_autosuspend_scsi_devices: yes
Poner en suspensión automática dispositivos scsi, driver=sd.
#kernel_udev_disable_bluetooth: no
Deshabilitar Bluetooth.
#kernel_udev_disable_wake_on_lan: yes
Deshabilitar la opción de despertar por LAN.
#kernel_udev_usb_autosuspend_devices:
# - { vendor: '13fe', product: '5500' } # Pendrive de Silicon Power
# - { vendor: '1532', product: '0f13', autosuspend: 120 } # Teclado
Lista de dispositivos para poner en suspensión automática. Normalmente, Linux ya establece la suspensión automática para los concentradores USB y otros dispositivos, por lo que no es necesario usar esta opción para esos. Verifica qué dispositivos están configurados para auto o no mirando en /sys/bus/usb/devices/*/power/control.
#kernel_udev_pci_autosuspend_devices:
# - { vendor: '0x8086', device: '0x0c00' }
# - { vendor: '0x8086', device: '0x0412' }
Lista de dispositivos PCI para poner en suspensión automática.
#kernel_udev_enable_wlan_powersave: yes
¿Activar el ahorro de energía de wlan?
Las variables que se enumeran a continuación no necesitan ser cambiadas para los sistemas objetivo (ver vars/main.yml
):
kernel_udev_reload_cmd: "udevadm control --reload-rules && udevadm trigger"
Comando para recargar las reglas de udev.
Dependencias
Sin dependencias.
Ejemplo de Playbook
- hosts: servidores
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 }
Licencia
MIT / BSD
Información del Autor
Este papel fue creado en 2020 por Carlos Guidugli.
Disable kernel modules and configure sysctl settings on linux
ansible-galaxy install guidugli.kernel_config