guidugli.kernel_config
Rola Ansible: kernel_config
Jest to rola Ansible, która instaluje i konfiguruje sysctl na systemach RHEL/CentOS, Fedora oraz Debian/Ubuntu. Rola ta umożliwia również wyłączanie, dodawanie do czarnej listy lub ustawianie modułów jądra do autostartu. Może też ustawiać zasady UDEV związane z zarządzaniem energią.
UWAGA: Wyłączanie modułów jądra lub ustawianie urządzeń do uśpienia (ustawienia udev) może wpłynąć na działanie systemu i może wymagać jego odzyskiwania (logowanie w trybie jednego użytkownika lub uruchomienie z płyty Live).
Wymagania
System operacyjny uruchomiony na sprzęcie fizycznym lub na wirtualizacji hypervisora. W zależności od ustawień, ta rola może nie działać poprawnie w systemach kontenerowych.
Zmienne roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (patrz defaults/main.yml
):
kernel_disable_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
'dccp', 'sctp', 'rds', 'tipc']
Użyj tej zmiennej, aby wymienić moduły jądra, które powinny być wyłączone. Możesz dodać usb-storage do listy, ale to uniemożliwi działanie wszelkich urządzeń pamięci USB. Rozważ użycie USBGuard. Wartości domyślne będą działać na większości systemów. Jeśli system potrzebuje używać niektórych z tych modułów, nadpisz tę zmienną odpowiednią konfiguracją.
kernel_blacklist_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
'dccp', 'sctp', 'rds', 'tipc']
Moduły, które mają być dodane do czarnej listy. Wartości domyślne będą działać na większości systemów. Jeśli system potrzebuje używać niektórych z tych modułów, nadpisz tę zmienną odpowiednią konfiguracją.
#kernel_autostart_modules: ['br_netfilter']
Moduły, które mają być uruchamiane automatycznie.
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" }
Określa parametry sysctl, które mają być skonfigurowane w systemie. Domyślna konfiguracja jest odpowiednia dla systemów, które nie działają jako routery i nie używają IPv6. Sprawdź zasady i nadpisz tę zmienną, jeśli zajdzie taka potrzeba.
kernel_sysctl_flush_network_routes: yes
Jeśli ustawione na "yes", ustawi parametry net.ipv4.route.flush i net.ipv6.route.flush na 1 oraz przeładowań.
#kernel_udev_sata_link_power_mgmt: med_power_with_dipm
Polityka zarządzania zasilaniem linku SATA. Ważne wartości to min_power, max_performance, medium_power, med_power_with_dipm.
#kernel_udev_autosuspend_ahci_devices: yes
Automatyczne wstrzymywanie kontrolerów AHCI i urządzeń ATA.
#kernel_udev_autosuspend_scsi_devices: yes
Automatyczne wstrzymywanie urządzeń SCSI, driver=sd.
#kernel_udev_disable_bluetooth: no
Wyłącza Bluetooth.
#kernel_udev_disable_wake_on_lan: yes
Wyłącza "wake on LAN".
#kernel_udev_usb_autosuspend_devices:
# - { vendor: '13fe', product: '5500' } # Silikonowy napęd flash
# - { vendor: '1532', product: '0f13', autosuspend: 120 } # Klawiatura
Lista urządzeń do automatycznego wstrzymywania. Zwykle Linux już ustawia automatyczne wstrzymanie dla hubów USB i innych urządzeń, dlatego nie trzeba korzystać z tej opcji. Sprawdź, które urządzenia są ustawione na automatyczne wstrzymanie, przeglądając /sys/bus/usb/devices/*/power/control.
#kernel_udev_pci_autosuspend_devices:
# - { vendor: '0x8086', device: '0x0c00' }
# - { vendor: '0x8086', device: '0x0412' }
Lista urządzeń PCI do automatycznego wstrzymywania.
#kernel_udev_enable_wlan_powersave: yes
Włączyć oszczędzanie energii w WLAN?
Poniższe zmienne nie muszą być zmieniane w przypadku docelowych systemów (patrz vars/main.yml
):
kernel_udev_reload_cmd: "udevadm control --reload-rules && udevadm trigger"
Polecenie do przeładowania zasad udev.
Zależności
Brak zależności.
Przykład Playbooka
- hosts: servers
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 }
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona w 2020 roku przez Carlosa Guidugli.
Disable kernel modules and configure sysctl settings on linux
ansible-galaxy install guidugli.kernel_config