diff --git a/roles/rocky9/tasks/install_packages.yml b/roles/rocky9/tasks/install_packages.yml index 8c4be7f..1707525 100644 --- a/roles/rocky9/tasks/install_packages.yml +++ b/roles/rocky9/tasks/install_packages.yml @@ -94,7 +94,7 @@ - name: Обновить всё become: true - ansible.builtin.package: + ansible.builtin.dnf: name: "*" state: latest diff --git a/roles/rocky9/tasks/ip_bridge.yml b/roles/rocky9/tasks/ip_bridge.yml index fcacfe6..82c5eff 100644 --- a/roles/rocky9/tasks/ip_bridge.yml +++ b/roles/rocky9/tasks/ip_bridge.yml @@ -6,19 +6,19 @@ name: net.bridge.bridge-nf-call-ip6tables value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_bridge.conf + sysctl_file: /etc/sysctl.d/03-bridge.conf when: br_netfilter_status.stat.exists - name: net.bridge.bridge-nf-call-iptables ansible.posix.sysctl: name: net.bridge.bridge-nf-call-iptables value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_bridge.conf + sysctl_file: /etc/sysctl.d/03-bridge.conf when: br_netfilter_status.stat.exists - name: net.bridge.bridge-nf-call-arptables ansible.posix.sysctl: name: net.bridge.bridge-nf-call-arptables value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_bridge.conf + sysctl_file: /etc/sysctl.d/03-bridge.conf when: br_netfilter_status.stat.exists diff --git a/roles/rocky9/tasks/kernel_tune.yml b/roles/rocky9/tasks/kernel_tune.yml index 60cf6fe..d0bca50 100644 --- a/roles/rocky9/tasks/kernel_tune.yml +++ b/roles/rocky9/tasks/kernel_tune.yml @@ -11,7 +11,7 @@ name: kernel.sysrq value: 0 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Добавление к файлу дампа ядра PID процесса - name: kernel.core_uses_pid @@ -19,21 +19,21 @@ name: kernel.core_uses_pid value: 1 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами - name: kernel.msgmnb ansible.posix.sysctl: name: kernel.msgmnb value: 65536 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому. - name: kernel.msgmax ansible.posix.sysctl: name: kernel.msgmax value: 65536 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер (в байтах) на сегменте shared memory. - name: kernel.shmmax @@ -41,14 +41,14 @@ name: kernel.shmmax value: 68719476736 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать. - name: kernel.shmall ansible.posix.sysctl: name: kernel.shmall value: 4294967296 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Лимит одновременно открытых файлов в системе - name: fs.file-max @@ -56,7 +56,7 @@ name: fs.file-max value: 1000000 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер буфера приема данных для всех соединений. - name: net.core.rmem_max @@ -64,32 +64,32 @@ name: net.core.rmem_max value: 33554432 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер буфера передачи данных для всех соединений. - name: net.core.wmem_max ansible.posix.sysctl: name: net.core.wmem_max value: 33554432 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Размер буфера приема данных по умолчанию для всех соединений. - name: net.core.rmem_default ansible.posix.sysctl: name: net.core.rmem_default value: 8388608 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Размер буфера передачи данных по умолчанию для всех соединений. - name: net.core.wmem_default ansible.posix.sysctl: name: net.core.wmem_default value: 4194394 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер буфера приема данных для всех соединений. - name: net.core.optmem_max ansible.posix.sysctl: name: net.core.optmem_max value: 40960 state: present - sysctl_file: /etc/sysctl.d/kernel_tune.conf + sysctl_file: /etc/sysctl.d/01-kernel.conf diff --git a/roles/rocky9/tasks/sysctl_tuning.yml b/roles/rocky9/tasks/sysctl_tuning.yml index 2fa2387..37c84d4 100644 --- a/roles/rocky9/tasks/sysctl_tuning.yml +++ b/roles/rocky9/tasks/sysctl_tuning.yml @@ -1,4 +1,17 @@ --- +- name: Find all files in /etc/sysctl.d + ansible.builtin.find: + paths: /etc/sysctl.d + recurse: yes + file_type: any + register: files_to_delete + +- name: Remove all files from /etc/sysctl.d + ansible.builtin.file: + path: "{{ item.path }}" + state: absent + loop: "{{ files_to_delete.files }}" + - name: Kernel Tuning ansible.builtin.include_tasks: kernel_tune.yml @@ -17,48 +30,16 @@ ansible.builtin.include_tasks: ip_bridge.yml when: br_netfilter_status.stat.exists -# - name: Deploy kernel_tune.conf -# ansible.builtin.template: -# src: kernel_tune.conf.j2 -# dest: /etc/sysctl.d/kernel_tune.conf -# mode: "0644" -# - name: Deploy tcp_tune.conf -# ansible.builtin.template: -# src: tcp_tune.conf.j2 -# dest: /etc/sysctl.d/tcp_tune.conf -# mode: "0644" -# - name: Deploy ip_spoofing.conf -# ansible.builtin.template: -# src: ip_spoofing.conf.j2 -# dest: /etc/sysctl.d/ip_spoofing.conf -# mode: "0644" -# - name: Deploy ip_forward.conf -# ansible.builtin.template: -# src: ip_forward.conf.j2 -# dest: /etc/sysctl.d/ip_forward.conf -# mode: "0644" -# - name: Deploy ip_bridge.conf -# ansible.builtin.template: -# src: ip_bridge.conf.j2 -# dest: /etc/sysctl.d/ip_bridge.conf -# mode: "0644" -# - name: Deploy httpd-tune.conf -# ansible.builtin.template: -# src: httpd-tune.conf.j2 -# dest: /etc/sysctl.d/httpd-tune.conf -# mode: "0644" -# limit for using memory - - name: vm.overcommit_ratio ansible.posix.sysctl: name: vm.overcommit_ratio value: 100 state: present - sysctl_file: /etc/sysctl.d/ip_httpd.conf + sysctl_file: /etc/sysctl.d/04-ip_httpd.conf - name: vm.overcommit_memory ansible.posix.sysctl: name: vm.overcommit_memory value: 2 state: present - sysctl_file: /etc/sysctl.d/ip_httpd.conf + sysctl_file: /etc/sysctl.d/04-ip_httpd.conf diff --git a/roles/rocky9/tasks/tcp_tune.yml b/roles/rocky9/tasks/tcp_tune.yml index 2109c74..7126fc5 100644 --- a/roles/rocky9/tasks/tcp_tune.yml +++ b/roles/rocky9/tasks/tcp_tune.yml @@ -8,7 +8,7 @@ name: net.ipv4.tcp_syncookies value: 0 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер буфера сокетов TCP/UDP. # Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется @@ -25,75 +25,75 @@ name: net.ipv4.tcp_rmem value: 4096 8388608 16777216 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # На передачу TCP пакетов - name: net.ipv4.tcp_wmem ansible.posix.sysctl: name: net.ipv4.tcp_wmem value: 4096 4194394 16777216 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Для TCP протокола в целом - name: net.ipv4.tcp_mem ansible.posix.sysctl: name: net.ipv4.tcp_mem value: 8388608 12582912 16777216 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Для UDP протокола в целом - name: net.ipv4.udp_mem ansible.posix.sysctl: name: net.ipv4.udp_mem value: 8388608 12582912 16777216 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf - name: net.ipv4.udp_rmem_min ansible.posix.sysctl: name: net.ipv4.udp_rmem_min value: 16384 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf - name: net.ipv4.udp_wmem_min ansible.posix.sysctl: name: net.ipv4.udp_wmem_min value: 16384 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать. - name: net.core.netdev_max_backlog ansible.posix.sysctl: name: net.core.netdev_max_backlog value: 500000 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента. - name: net.ipv4.tcp_max_syn_backlog ansible.posix.sysctl: name: net.ipv4.tcp_max_syn_backlog value: 5480000 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Увеличим возможное количество сокетов в состоянии TIME_WAIT. - name: net.ipv4.tcp_max_tw_buckets ansible.posix.sysctl: name: net.ipv4.tcp_max_tw_buckets value: 5480000 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным. - name: net.ipv4.tcp_tw_reuse ansible.posix.sysctl: name: net.ipv4.tcp_tw_reuse value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешаем быструю утилизацию сокетов находящихся в состоянии TIME_WAIT DEPRICATRED # - ansible.posix.sysctl: # name: net.ipv4.tcp_tw_recycle # value: 1 # state: present -# sysctl_file: /etc/sysctl.d/tcp_tune.conf +# sysctl_file: /etc/sysctl.d/02-tcp.conf # Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной. # Партнер может не закрыть это соединение никогда. @@ -102,7 +102,7 @@ name: net.ipv4.tcp_fin_timeout value: 3 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной # пропускной способности некоторых сетей - name: net.ipv4.tcp_sack @@ -110,28 +110,28 @@ name: net.ipv4.tcp_sack value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP. - name: net.ipv4.tcp_synack_retries ansible.posix.sysctl: name: net.ipv4.tcp_synack_retries value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle). - name: net.ipv4.tcp_max_orphans ansible.posix.sysctl: name: net.ipv4.tcp_max_orphans value: 65536 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне. - name: net.ipv4.tcp_orphan_retries ansible.posix.sysctl: name: net.ipv4.tcp_orphan_retries value: 0 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE. # Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек) - name: net.ipv4.tcp_keepalive_time @@ -139,21 +139,21 @@ name: net.ipv4.tcp_keepalive_time value: 600 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Интервал, с которым слать keepalive пакеты (в сек) - name: net.ipv4.tcp_keepalive_intvl ansible.posix.sysctl: name: net.ipv4.tcp_keepalive_intvl value: 20 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # После скольки неудачных пробах считать соединение разорванным - name: net.ipv4.tcp_keepalive_probes ansible.posix.sysctl: name: net.ipv4.tcp_keepalive_probes value: 2 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Запрещаем технологию slow start (малый размер окна) в TCP подключениях, # в которых долгое время не было трафика. - name: net.ipv4.tcp_slow_start_after_idle @@ -161,21 +161,21 @@ name: net.ipv4.tcp_slow_start_after_idle value: 0 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений. - name: net.ipv4.ip_local_port_range ansible.posix.sysctl: name: net.ipv4.ip_local_port_range value: 2000 65000 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок. - name: net.ipv4.tcp_timestamps ansible.posix.sysctl: name: net.ipv4.tcp_timestamps value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Параметр отвечающий за алгоритмы сегментации TCP пакетов при передаче данных. # Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC. # Включён по умолчанию в linux ядре начиная с версии 2.6.19 @@ -185,7 +185,7 @@ name: net.ipv4.tcp_congestion_control value: bbr state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Параметр определяет дисциплину обработки очередей # FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR - name: net.core.default_qdisc @@ -193,7 +193,7 @@ name: net.core.default_qdisc value: "fq" state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Не сохранять результаты измерений TCP соединения в кеше при его закрытии - name: net.ipv4.tcp_no_metrics_save @@ -201,7 +201,7 @@ name: net.ipv4.tcp_no_metrics_save value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь # пакетов при передаче в рамках TCP подключения) - name: net.ipv4.tcp_window_scaling @@ -209,28 +209,28 @@ name: net.ipv4.tcp_window_scaling value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Защита от TIME_WAIT атак. - name: net.ipv4.tcp_rfc1337 ansible.posix.sysctl: name: net.ipv4.tcp_rfc1337 value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес. - name: net.ipv4.icmp_echo_ignore_broadcasts ansible.posix.sysctl: name: net.ipv4.icmp_echo_ignore_broadcasts value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Не отвечаем на ошибочно сформированные сообщения. - name: net.ipv4.icmp_ignore_bogus_error_responses ansible.posix.sysctl: name: net.ipv4.icmp_ignore_bogus_error_responses value: 1 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf # Максимальное число открытых сокетов, ждущих соединения. # Максимум в CentOS 7 - name: net.core.somaxconn @@ -238,4 +238,4 @@ name: net.core.somaxconn value: 65535 state: present - sysctl_file: /etc/sysctl.d/tcp_tune.conf + sysctl_file: /etc/sysctl.d/02-tcp.conf