This commit is contained in:
mrwho 2026-05-17 00:35:23 +03:00
commit 142bde9d93
19 changed files with 98 additions and 139 deletions

View file

@ -19,3 +19,4 @@ warn_list:
skip_list: skip_list:
- var-naming[no-role-prefix] - var-naming[no-role-prefix]
- name - name
- packages-latest

View file

@ -18,6 +18,7 @@
- openssh - openssh
vars: vars:
<<<<<<< HEAD
ansible_ssh_user: root ansible_ssh_user: root
ansible_ssh_password: nmklop90 ansible_ssh_password: nmklop90
epel_repo: true epel_repo: true

View file

@ -41,9 +41,9 @@ galaxy_info:
- "10" - "10"
- name: Rocky - name: Rocky
versions: versions:
- "8" - "8.0"
- "9" - "9.0"
- "10" - "all"
- name: Fedora - name: Fedora
versions: versions:
- "43" - "43"

View file

@ -1,11 +1,4 @@
--- ---
#hostname: centos01.local.mrwho.ru
#ip4_addr: 172.20.21.101/24
#ip4_gate: 172.20.21.1
#ip4_dns:
# - 172.20.21.1
# - 192.168.1.1
#reboot_system: false
epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_facts.distribution_major_version }}.noarch.rpm" epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_facts.distribution_major_version }}.noarch.rpm"
epel_repo_gpg_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_facts.distribution_major_version }}" epel_repo_gpg_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_facts.distribution_major_version }}"

View file

@ -94,7 +94,7 @@
- name: Обновить всё - name: Обновить всё
become: true become: true
ansible.builtin.package: ansible.builtin.dnf:
name: "*" name: "*"
state: latest state: latest

View file

@ -6,19 +6,19 @@
name: net.bridge.bridge-nf-call-ip6tables name: net.bridge.bridge-nf-call-ip6tables
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/ip_bridge.conf sysctl_file: /etc/sysctl.d/03-bridge.conf
when: br_netfilter_status.stat.exists when: br_netfilter_status.stat.exists
- name: net.bridge.bridge-nf-call-iptables - name: net.bridge.bridge-nf-call-iptables
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.bridge.bridge-nf-call-iptables name: net.bridge.bridge-nf-call-iptables
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/ip_bridge.conf sysctl_file: /etc/sysctl.d/03-bridge.conf
when: br_netfilter_status.stat.exists when: br_netfilter_status.stat.exists
- name: net.bridge.bridge-nf-call-arptables - name: net.bridge.bridge-nf-call-arptables
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.bridge.bridge-nf-call-arptables name: net.bridge.bridge-nf-call-arptables
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/ip_bridge.conf sysctl_file: /etc/sysctl.d/03-bridge.conf
when: br_netfilter_status.stat.exists when: br_netfilter_status.stat.exists

View file

@ -21,7 +21,7 @@
# Когда rp_filter нужно отключать (0) или ослаблять (2): # Когда rp_filter нужно отключать (0) или ослаблять (2):
# - Использование асимметричной маршрутизации (когда пакеты приходят через провайдера А, а уходят через провайдера Б). # - Использование асимметричной маршрутизации (когда пакеты приходят через провайдера А, а уходят через провайдера Б).
# - Настройка сложных схем балансировки трафика (BGP, Multipath). # - Настройка сложных схем балансировки трафика (BGP, Multipath).
# - Использование политик маршрутизации (Policy Based Routing via ip rule). # - Использование политик маршрутизации (Policy Based Routing via ip rule).
# При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main, # При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main,
# игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов. # игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов.
- name: net.ipv4.conf.default.rp_filter - name: net.ipv4.conf.default.rp_filter

View file

@ -1,17 +0,0 @@
---
# Активируем защиту от IP-спуфинга.
- ansible.posix.sysctl:
name: net.ipv4.conf.default.rp_filter
value: 1
state: present
sysctl_file: /etc/sysctl.d/ip_spoofing.conf
- ansible.posix.sysctl:
name: net.ipv4.conf.all.rp_filter
value: 1
state: present
sysctl_file: /etc/sysctl.d/ip_spoofing.conf
- ansible.posix.sysctl:
name: net.ipv4.conf.lo.rp_filter
value: 1
state: present
sysctl_file: /etc/sysctl.d/ip_spoofing.conf

View file

@ -8,10 +8,10 @@
# Отключаем отслеживание ядром нажатие специальных сочетаний клавиш # Отключаем отслеживание ядром нажатие специальных сочетаний клавиш
- name: kernel.sysrq - name: kernel.sysrq
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.sysrq name: kernel.sysrq
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Добавление к файлу дампа ядра PID процесса # Добавление к файлу дампа ядра PID процесса
- name: kernel.core_uses_pid - name: kernel.core_uses_pid
@ -19,21 +19,21 @@
name: kernel.core_uses_pid name: kernel.core_uses_pid
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами # Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами
- name: kernel.msgmnb - name: kernel.msgmnb
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.msgmnb name: kernel.msgmnb
value: 65536 value: 65536
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому. # Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому.
- name: kernel.msgmax - name: kernel.msgmax
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.msgmax name: kernel.msgmax
value: 65536 value: 65536
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер (в байтах) на сегменте shared memory. # Максимальный размер (в байтах) на сегменте shared memory.
- name: kernel.shmmax - name: kernel.shmmax
@ -41,14 +41,14 @@
name: kernel.shmmax name: kernel.shmmax
value: 68719476736 value: 68719476736
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать. # Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать.
- name: kernel.shmall - name: kernel.shmall
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.shmall name: kernel.shmall
value: 4294967296 value: 4294967296
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Лимит одновременно открытых файлов в системе # Лимит одновременно открытых файлов в системе
- name: fs.file-max - name: fs.file-max
@ -56,7 +56,7 @@
name: fs.file-max name: fs.file-max
value: 1000000 value: 1000000
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер буфера приема данных для всех соединений. # Максимальный размер буфера приема данных для всех соединений.
- name: net.core.rmem_max - name: net.core.rmem_max
@ -64,32 +64,32 @@
name: net.core.rmem_max name: net.core.rmem_max
value: 33554432 value: 33554432
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер буфера передачи данных для всех соединений. # Максимальный размер буфера передачи данных для всех соединений.
- name: net.core.wmem_max - name: net.core.wmem_max
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.wmem_max name: net.core.wmem_max
value: 33554432 value: 33554432
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Размер буфера приема данных по умолчанию для всех соединений. # Размер буфера приема данных по умолчанию для всех соединений.
- name: net.core.rmem_default - name: net.core.rmem_default
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.rmem_default name: net.core.rmem_default
value: 8388608 value: 8388608
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Размер буфера передачи данных по умолчанию для всех соединений. # Размер буфера передачи данных по умолчанию для всех соединений.
- name: net.core.wmem_default - name: net.core.wmem_default
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.wmem_default name: net.core.wmem_default
value: 4194394 value: 4194394
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер буфера приема данных для всех соединений. # Максимальный размер буфера приема данных для всех соединений.
- name: net.core.optmem_max - name: net.core.optmem_max
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.optmem_max name: net.core.optmem_max
value: 40960 value: 40960
state: present state: present
sysctl_file: /etc/sysctl.d/kernel_tune.conf sysctl_file: /etc/sysctl.d/01-kernel.conf

View file

@ -12,9 +12,6 @@
group: root group: root
mode: "0644" mode: "0644"
#- name: Create users
# ansible.builtin.include_tasks: create_users.yml
- name: Syctl tuning - name: Syctl tuning
ansible.builtin.include_tasks: sysctl_tuning.yml ansible.builtin.include_tasks: sysctl_tuning.yml

View file

@ -1,7 +1,7 @@
--- ---
- name: Установка зависимостей SELinux - name: Установка зависимостей SELinux
become: true become: true
package: ansible.builtin.package:
name: "{{ (ansible_facts['distribution_major_version'] | int >= 8) | ternary('python3-libselinux', 'libselinux-python') }}" name: "{{ (ansible_facts['distribution_major_version'] | int >= 8) | ternary('python3-libselinux', 'libselinux-python') }}"
state: present state: present
@ -9,11 +9,11 @@
ansible.posix.selinux: ansible.posix.selinux:
state: disabled state: disabled
- name: Explicitly specifying positional matched groups in replacement # - name: Explicitly specifying positional matched groups in replacement
ansible.builtin.replace: # ansible.builtin.replace:
path: /etc/ssh/sshd_config # path: /etc/ssh/sshd_config
regexp: ^(ListenAddress[ ]+)[^\n]+$ # regexp: ^(ListenAddress[ ]+)[^\n]+$
replace: \g<1>0.0.0.0 # replace: \g<1>0.0.0.0
# - name: Disable Root Login # - name: Disable Root Login
# template: # template:

View file

@ -91,4 +91,4 @@
owner: root owner: root
group: root group: root
mode: "0644" mode: "0644"
loop: "{{ physical_interfaces[0:] }}" loop: "{{ physical_interfaces[0:] }}"

View file

@ -1,13 +1,23 @@
--- ---
- name: Find all files in /etc/sysctl.d
ansible.builtin.find:
paths: /etc/sysctl.d
recurse: true
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 - name: Kernel Tuning
ansible.builtin.include_tasks: kernel_tune.yml ansible.builtin.include_tasks: kernel_tune.yml
- name: TCP/UDP Tuning - name: TCP/UDP Tuning
ansible.builtin.include_tasks: tcp_tune.yml ansible.builtin.include_tasks: tcp_tune.yml
- name: IP ip_spoofing
ansible.builtin.include_tasks: ip_spoofing.yml
- name: IP Forwarding - name: IP Forwarding
ansible.builtin.include_tasks: ip_forward.yml ansible.builtin.include_tasks: ip_forward.yml
@ -20,48 +30,16 @@
ansible.builtin.include_tasks: ip_bridge.yml ansible.builtin.include_tasks: ip_bridge.yml
when: br_netfilter_status.stat.exists 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 - name: vm.overcommit_ratio
ansible.posix.sysctl: ansible.posix.sysctl:
name: vm.overcommit_ratio name: vm.overcommit_ratio
value: 100 value: 100
state: present state: present
sysctl_file: /etc/sysctl.d/ip_httpd.conf sysctl_file: /etc/sysctl.d/04-ip_httpd.conf
- name: vm.overcommit_memory - name: vm.overcommit_memory
ansible.posix.sysctl: ansible.posix.sysctl:
name: vm.overcommit_memory name: vm.overcommit_memory
value: 2 value: 2
state: present state: present
sysctl_file: /etc/sysctl.d/ip_httpd.conf sysctl_file: /etc/sysctl.d/04-ip_httpd.conf

View file

@ -8,7 +8,7 @@
name: net.ipv4.tcp_syncookies name: net.ipv4.tcp_syncookies
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер буфера сокетов TCP/UDP. # Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер буфера сокетов TCP/UDP.
# Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется # Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется
@ -25,75 +25,75 @@
name: net.ipv4.tcp_rmem name: net.ipv4.tcp_rmem
value: 4096 8388608 16777216 value: 4096 8388608 16777216
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# На передачу TCP пакетов # На передачу TCP пакетов
- name: net.ipv4.tcp_wmem - name: net.ipv4.tcp_wmem
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_wmem name: net.ipv4.tcp_wmem
value: 4096 4194394 16777216 value: 4096 4194394 16777216
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Для TCP протокола в целом # Для TCP протокола в целом
- name: net.ipv4.tcp_mem - name: net.ipv4.tcp_mem
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_mem name: net.ipv4.tcp_mem
value: 8388608 12582912 16777216 value: 8388608 12582912 16777216
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Для UDP протокола в целом # Для UDP протокола в целом
- name: net.ipv4.udp_mem - name: net.ipv4.udp_mem
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.udp_mem name: net.ipv4.udp_mem
value: 8388608 12582912 16777216 value: 8388608 12582912 16777216
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
- name: net.ipv4.udp_rmem_min - name: net.ipv4.udp_rmem_min
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.udp_rmem_min name: net.ipv4.udp_rmem_min
value: 16384 value: 16384
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
- name: net.ipv4.udp_wmem_min - name: net.ipv4.udp_wmem_min
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.udp_wmem_min name: net.ipv4.udp_wmem_min
value: 16384 value: 16384
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать. # Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
- name: net.core.netdev_max_backlog - name: net.core.netdev_max_backlog
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.netdev_max_backlog name: net.core.netdev_max_backlog
value: 500000 value: 500000
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента. # Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента.
- name: net.ipv4.tcp_max_syn_backlog - name: net.ipv4.tcp_max_syn_backlog
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_max_syn_backlog name: net.ipv4.tcp_max_syn_backlog
value: 5480000 value: 5480000
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Увеличим возможное количество сокетов в состоянии TIME_WAIT. # Увеличим возможное количество сокетов в состоянии TIME_WAIT.
- name: net.ipv4.tcp_max_tw_buckets - name: net.ipv4.tcp_max_tw_buckets
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_max_tw_buckets name: net.ipv4.tcp_max_tw_buckets
value: 5480000 value: 5480000
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным. # Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
- name: net.ipv4.tcp_tw_reuse - name: net.ipv4.tcp_tw_reuse
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_tw_reuse name: net.ipv4.tcp_tw_reuse
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешаем быструю утилизацию сокетов находящихся в состоянии TIME_WAIT DEPRICATRED # Разрешаем быструю утилизацию сокетов находящихся в состоянии TIME_WAIT DEPRICATRED
# - ansible.posix.sysctl: # - ansible.posix.sysctl:
# name: net.ipv4.tcp_tw_recycle # name: net.ipv4.tcp_tw_recycle
# value: 1 # value: 1
# state: present # state: present
# sysctl_file: /etc/sysctl.d/tcp_tune.conf # sysctl_file: /etc/sysctl.d/02-tcp.conf
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной. # Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
# Партнер может не закрыть это соединение никогда. # Партнер может не закрыть это соединение никогда.
@ -102,7 +102,7 @@
name: net.ipv4.tcp_fin_timeout name: net.ipv4.tcp_fin_timeout
value: 3 value: 3
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной # Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
# пропускной способности некоторых сетей # пропускной способности некоторых сетей
- name: net.ipv4.tcp_sack - name: net.ipv4.tcp_sack
@ -110,28 +110,28 @@
name: net.ipv4.tcp_sack name: net.ipv4.tcp_sack
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP. # Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP.
- name: net.ipv4.tcp_synack_retries - name: net.ipv4.tcp_synack_retries
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_synack_retries name: net.ipv4.tcp_synack_retries
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle). # Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle).
- name: net.ipv4.tcp_max_orphans - name: net.ipv4.tcp_max_orphans
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_max_orphans name: net.ipv4.tcp_max_orphans
value: 65536 value: 65536
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне. # Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне.
- name: net.ipv4.tcp_orphan_retries - name: net.ipv4.tcp_orphan_retries
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_orphan_retries name: net.ipv4.tcp_orphan_retries
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE. # Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек) # Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
- name: net.ipv4.tcp_keepalive_time - name: net.ipv4.tcp_keepalive_time
@ -139,21 +139,21 @@
name: net.ipv4.tcp_keepalive_time name: net.ipv4.tcp_keepalive_time
value: 600 value: 600
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Интервал, с которым слать keepalive пакеты (в сек) # Интервал, с которым слать keepalive пакеты (в сек)
- name: net.ipv4.tcp_keepalive_intvl - name: net.ipv4.tcp_keepalive_intvl
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_keepalive_intvl name: net.ipv4.tcp_keepalive_intvl
value: 20 value: 20
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# После скольки неудачных пробах считать соединение разорванным # После скольки неудачных пробах считать соединение разорванным
- name: net.ipv4.tcp_keepalive_probes - name: net.ipv4.tcp_keepalive_probes
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_keepalive_probes name: net.ipv4.tcp_keepalive_probes
value: 2 value: 2
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях, # Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
# в которых долгое время не было трафика. # в которых долгое время не было трафика.
- name: net.ipv4.tcp_slow_start_after_idle - name: net.ipv4.tcp_slow_start_after_idle
@ -161,21 +161,21 @@
name: net.ipv4.tcp_slow_start_after_idle name: net.ipv4.tcp_slow_start_after_idle
value: 0 value: 0
state: present 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 - name: net.ipv4.ip_local_port_range
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.ip_local_port_range name: net.ipv4.ip_local_port_range
value: 2000 65000 value: 2000 65000
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок. # Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок.
- name: net.ipv4.tcp_timestamps - name: net.ipv4.tcp_timestamps
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_timestamps name: net.ipv4.tcp_timestamps
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Параметр отвечающий за алгоритмы сегментации TCP пакетов при передаче данных. # Параметр отвечающий за алгоритмы сегментации TCP пакетов при передаче данных.
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC. # Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
# Включён по умолчанию в linux ядре начиная с версии 2.6.19 # Включён по умолчанию в linux ядре начиная с версии 2.6.19
@ -185,15 +185,15 @@
name: net.ipv4.tcp_congestion_control name: net.ipv4.tcp_congestion_control
value: bbr value: bbr
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Параметр определяет дисциплину обработки очередей # Параметр определяет дисциплину обработки очередей
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR # FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
- name: net.core.default_qdisc - name: net.core.default_qdisc
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.default_qdisc name: net.core.default_qdisc
value: "fq" value: "fq"
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии # Не сохранять результаты измерений TCP соединения в кеше при его закрытии
- name: net.ipv4.tcp_no_metrics_save - name: net.ipv4.tcp_no_metrics_save
@ -201,7 +201,7 @@
name: net.ipv4.tcp_no_metrics_save name: net.ipv4.tcp_no_metrics_save
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь # Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
# пакетов при передаче в рамках TCP подключения) # пакетов при передаче в рамках TCP подключения)
- name: net.ipv4.tcp_window_scaling - name: net.ipv4.tcp_window_scaling
@ -209,28 +209,28 @@
name: net.ipv4.tcp_window_scaling name: net.ipv4.tcp_window_scaling
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Защита от TIME_WAIT атак. # Защита от TIME_WAIT атак.
- name: net.ipv4.tcp_rfc1337 - name: net.ipv4.tcp_rfc1337
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_rfc1337 name: net.ipv4.tcp_rfc1337
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес. # Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес.
- name: net.ipv4.icmp_echo_ignore_broadcasts - name: net.ipv4.icmp_echo_ignore_broadcasts
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.icmp_echo_ignore_broadcasts name: net.ipv4.icmp_echo_ignore_broadcasts
value: 1 value: 1
state: present 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 - name: net.ipv4.icmp_ignore_bogus_error_responses
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.icmp_ignore_bogus_error_responses name: net.ipv4.icmp_ignore_bogus_error_responses
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Максимальное число открытых сокетов, ждущих соединения. # Максимальное число открытых сокетов, ждущих соединения.
# Максимум в CentOS 7 # Максимум в CentOS 7
- name: net.core.somaxconn - name: net.core.somaxconn
@ -238,4 +238,4 @@
name: net.core.somaxconn name: net.core.somaxconn
value: 65535 value: 65535
state: present state: present
sysctl_file: /etc/sysctl.d/tcp_tune.conf sysctl_file: /etc/sysctl.d/02-tcp.conf

View file

@ -1,2 +1,2 @@
--- ---
install_root_cert_pem: root_ca.crt install_root_cert_pem: root_ca.crt

View file

@ -3,13 +3,13 @@
install_root_cert_tmp_path: "{{ install_root_cert_tmp_folder }}/{{ install_root_cert_pem | basename }}" install_root_cert_tmp_path: "{{ install_root_cert_tmp_folder }}/{{ install_root_cert_pem | basename }}"
- block: - block:
- name: Copy certificate to temporary location - name: Copy certificate to temporary location
copy: ansible.builtin.copy:
src: "{{ install_root_cert_pem }}" src: "{{ install_root_cert_pem }}"
dest: "{{ install_root_cert_tmp_path }}" dest: "{{ install_root_cert_tmp_path }}"
- name: Add certificate to Mac OS keychain - name: Add certificate to Mac OS keychain
command: security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "{{ install_root_cert_tmp_path }}" ansible.builtin.command: security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "{{ install_root_cert_tmp_path }}"
# - name: Add certificate to Mac OS (openssl) # - name: Add certificate to Mac OS (openssl)
# copy: # copy:
@ -21,6 +21,6 @@
always: always:
- name: Remove temporary certificate - name: Remove temporary certificate
file: ansible.builtin.file:
path: "{{ install_root_cert_tmp_path }}" path: "{{ install_root_cert_tmp_path }}"
state: absent state: absent

View file

@ -1,16 +1,16 @@
--- ---
- name: Make sure the folder exists (Debian, Ubuntu) - name: Make sure the folder exists (Debian, Ubuntu)
file: ansible.builtin.file:
path: /usr/local/share/ca-certificates path: /usr/local/share/ca-certificates
state: directory state: directory
# Note that the .crt is actually a .pem renamed # Note that the .crt is actually a .pem renamed
- name: Copy the certificate (Debian, Ubuntu) - name: Copy the certificate (Debian, Ubuntu)
copy: ansible.builtin.copy:
src: "{{ install_root_cert_pem }}" src: "{{ install_root_cert_pem }}"
dest: "/usr/local/share/ca-certificates/{{ install_root_cert_pem | basename }}.crt" dest: "/usr/local/share/ca-certificates/{{ install_root_cert_pem | basename }}.crt"
register: result register: result
- name: Update CA Trust (Debian, Ubuntu) - name: Update CA Trust (Debian, Ubuntu)
command: update-ca-certificates ansible.builtin.command: update-ca-certificates
when: result is changed when: result is changed

View file

@ -1,5 +1,5 @@
--- ---
#- name: Check that the root certificate exists # - name: Check that the root certificate exists
# become: no # become: no
# local_action: "stat path={{ install_root_cert_pem }}" # local_action: "stat path={{ install_root_cert_pem }}"
# register: result # register: result

View file

@ -1,21 +1,27 @@
--- ---
- name: Make sure the folder exists (Red Hat) - name: Make sure the folder exists (Red Hat)
file: ansible.builtin.file:
path: /etc/pki/ca-trust/source/anchors path: /etc/pki/ca-trust/source/anchors
state: directory state: directory
owner: root
group: root
mode: "0755"
- name: Copy PEM into folder (Red Hat) - name: Copy PEM into folder (Red Hat)
copy: ansible.builtin.copy:
src: "{{ install_root_cert_pem }}" src: "{{ install_root_cert_pem }}"
dest: "/etc/pki/ca-trust/source/anchors/{{ install_root_cert_pem | basename }}" dest: "/etc/pki/ca-trust/source/anchors/{{ install_root_cert_pem | basename }}"
owner: root
group: root
mode: "0644"
register: result register: result
- name: Update CA Trust (Red Hat) - name: Update CA Trust (Red Hat)
command: update-ca-trust ansible.builtin.command: update-ca-trust
when: result is changed when: result is changed
- name: Update CA Trust (Red Hat < 7) - name: Update CA Trust (Red Hat < 7)
command: update-ca-trust enable ansible.builtin.command: update-ca-trust enable
when: when:
- result is changed - result is changed
- ansible_distribution_version|int < 7 - ansible_distribution_version|int < 7