fixes
This commit is contained in:
parent
3b1faec4ed
commit
9043dfbe5f
14 changed files with 558 additions and 406 deletions
15
ansible.cfg
Normal file
15
ansible.cfg
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
[defaults]
|
||||||
|
roles_path = roles
|
||||||
|
collections_paths = collections
|
||||||
|
filter_plugins = filter_plugins
|
||||||
|
retry_files_enabled = False
|
||||||
|
interpreter_python = auto_silent
|
||||||
|
host_key_checking = False
|
||||||
|
result_format = yaml
|
||||||
|
stdout_callback = default
|
||||||
|
callback_result_format = yaml
|
||||||
|
deprecation_warnings = False
|
||||||
|
|
||||||
|
[ssh_connection]
|
||||||
|
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
|
||||||
|
pipelining = True
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
# ANSIBLE_SSH_USER — remote user
|
# ANSIBLE_SSH_USER — remote user
|
||||||
# ANSIBLE_SSHKEY_ID_RSA — private SSH key (записывается в ~/.ssh/id_rsa в before_script)
|
# ANSIBLE_SSHKEY_ID_RSA — private SSH key (записывается в ~/.ssh/id_rsa в before_script)
|
||||||
# ANSIBLE_BECOME_PASS — sudo password
|
# ANSIBLE_BECOME_PASS — sudo password
|
||||||
|
ignored_interfaces: lo
|
||||||
ansible_user: "{{ lookup('env', 'ANSIBLE_SSH_USER') | mandatory }}"
|
ansible_user: "{{ lookup('env', 'ANSIBLE_SSH_USER') | mandatory }}"
|
||||||
ansible_become: true
|
ansible_become: true
|
||||||
ansible_become_method: sudo
|
ansible_become_method: sudo
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,17 @@ all:
|
||||||
children:
|
children:
|
||||||
centos:
|
centos:
|
||||||
hosts:
|
hosts:
|
||||||
router:
|
# router:
|
||||||
ansible_host: 172.20.21.100
|
# ansible_host: 172.20.21.100
|
||||||
git:
|
# git:
|
||||||
ansible_host: 172.20.21.105
|
# ansible_host: 172.20.21.105
|
||||||
vm01:
|
# vm01:
|
||||||
ansible_host: 80.211.195.127
|
# ansible_host: 80.211.195.127
|
||||||
vm02:
|
# vm02:
|
||||||
ansible_host: 212.60.5.162
|
# ansible_host: 212.60.5.162
|
||||||
|
ca:
|
||||||
|
ansible_host: 192.168.99.20
|
||||||
|
kuber-ctl:
|
||||||
|
ansible_host: 192.168.99.41
|
||||||
|
kuber-node01:
|
||||||
|
ansible_host: 192.168.99.42
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
---
|
---
|
||||||
- name: Initial Rocky9 Configuration
|
- name: Initial Rocky9 Configuration
|
||||||
|
|
||||||
hosts: rocky9-template
|
hosts:
|
||||||
|
- ca
|
||||||
|
# kuber-node01
|
||||||
# - 172.20.21.193
|
# - 172.20.21.193
|
||||||
become: true
|
become: true
|
||||||
vars:
|
vars:
|
||||||
ansible_ssh_user: root
|
#ansible_ssh_user: root
|
||||||
ansible_ssh_password: nmklop90
|
#ansible_ssh_password: nmklop90
|
||||||
reboot_system: false
|
reboot_system: false
|
||||||
hostname: rocky9-template.local.mrwho.ru
|
#hostname: rocky9-template.local.mrwho.ru
|
||||||
roles:
|
roles:
|
||||||
- rocky9
|
- rocky9
|
||||||
- root-cert
|
- root-cert
|
||||||
|
|
|
||||||
10
requirements.yml
Normal file
10
requirements.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
collections:
|
||||||
|
- name: ansible.posix
|
||||||
|
version: ">=1.5.0"
|
||||||
|
- name: ansible.utils
|
||||||
|
version: ">=2.0.0,<5.0.0"
|
||||||
|
- name: community.general
|
||||||
|
version: ">=8.0.0"
|
||||||
|
- name: community.vmware
|
||||||
|
version: ">=4.0.0"
|
||||||
21
roles/rocky9/tasks/ip_bridge.yml
Normal file
21
roles/rocky9/tasks/ip_bridge.yml
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
# Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях,
|
||||||
|
# когда NAT не правильно отрабатывает по таким интерфейсам
|
||||||
|
- name: net.bridge.bridge-nf-call-ip6tables
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.bridge.bridge-nf-call-ip6tables
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_bridge.conf
|
||||||
|
- 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
|
||||||
|
- 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
|
||||||
59
roles/rocky9/tasks/ip_forward.yml
Normal file
59
roles/rocky9/tasks/ip_forward.yml
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
---
|
||||||
|
# Запрет на передачу пакетов через сервер (т.е. работу его как шлюза)
|
||||||
|
- name: net.ipv4.ip_forward
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.ip_forward
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
|
# Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность)
|
||||||
|
- name: net.ipv4.conf.default.accept_source_route
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.conf.default.accept_source_route
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
|
# Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip)
|
||||||
|
# и он ссылается на данный интерфейс, то такой пакет будет принят.
|
||||||
|
# остальные будут отброшены.
|
||||||
|
- name: net.ipv4.conf.default.rp_filter
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.conf.default.rp_filter
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
- name: net.ipv4.conf.all.rp_filter
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.conf.all.rp_filter
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
- name: net.ipv4.conf.lo.rp_filter
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.conf.lo.rp_filter
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
- name: net.ipv4.conf.all.send_redirects
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.conf.all.send_redirects
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
|
#- name: net.ipv4.conf.default.send_redirects
|
||||||
|
# ansible.posix.sysctl:
|
||||||
|
# name: net.ipv4.conf.default.send_redirects
|
||||||
|
# value: 0
|
||||||
|
# state: present
|
||||||
|
# reload: true
|
||||||
|
# sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
|
|
||||||
|
- name: net.ipv4.conf.all.accept_redirects
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.conf.all.accept_redirects
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
||||||
17
roles/rocky9/tasks/ip_spoofing.yml
Normal file
17
roles/rocky9/tasks/ip_spoofing.yml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
# Активируем защиту от 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
|
||||||
95
roles/rocky9/tasks/kernel_tune.yml
Normal file
95
roles/rocky9/tasks/kernel_tune.yml
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
---
|
||||||
|
# Remove kernel.panic entry from /etc/sysctl.conf
|
||||||
|
- name: kernel.panic
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.panic
|
||||||
|
state: absent
|
||||||
|
sysctl_file: /etc/sysctl.conf
|
||||||
|
# Отключаем отслеживание ядром нажатие специальных сочетаний клавиш
|
||||||
|
- name: kernel.sysrq
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.sysrq
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
|
||||||
|
# Добавление к файлу дампа ядра PID процесса
|
||||||
|
- name: kernel.core_uses_pid
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.core_uses_pid
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
# Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами
|
||||||
|
- name: kernel.msgmnb
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.msgmnb
|
||||||
|
value: 65536
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
# Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому.
|
||||||
|
- name: kernel.msgmax
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.msgmax
|
||||||
|
value: 65536
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
|
||||||
|
# Максимальный размер (в байтах) на сегменте shared memory.
|
||||||
|
- name: kernel.shmmax
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.shmmax
|
||||||
|
value: 68719476736
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
# Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать.
|
||||||
|
- name: kernel.shmall
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: kernel.shmall
|
||||||
|
value: 4294967296
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
|
||||||
|
# Лимит одновременно открытых файлов в системе
|
||||||
|
- name: fs.file-max
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: fs.file-max
|
||||||
|
value: 1000000
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
||||||
|
|
||||||
|
# Максимальный размер буфера приема данных для всех соединений.
|
||||||
|
- name: net.core.rmem_max
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.core.rmem_max
|
||||||
|
value: 33554432
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/kernel_tune.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
|
||||||
|
# Размер буфера приема данных по умолчанию для всех соединений.
|
||||||
|
- 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
|
||||||
|
# Размер буфера передачи данных по умолчанию для всех соединений.
|
||||||
|
- 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
|
||||||
|
# Максимальный размер буфера приема данных для всех соединений.
|
||||||
|
- 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
|
||||||
|
|
@ -2,8 +2,9 @@
|
||||||
- name: Set a hostname
|
- name: Set a hostname
|
||||||
ansible.builtin.hostname:
|
ansible.builtin.hostname:
|
||||||
name: "{{ hostname }}"
|
name: "{{ hostname }}"
|
||||||
|
when: hostname is defined
|
||||||
|
|
||||||
- name: Set Prompt
|
- name: Set Prompt coloring
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: prompt.sh.j2
|
src: prompt.sh.j2
|
||||||
dest: /etc/profile.d/prompt.sh
|
dest: /etc/profile.d/prompt.sh
|
||||||
|
|
@ -11,9 +12,9 @@
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
|
|
||||||
# - name: Create users
|
- name: Create users
|
||||||
# ansible.builtin.include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
# file: create_users.yml
|
file: create_users.yml
|
||||||
|
|
||||||
- name: Syctl tuning
|
- name: Syctl tuning
|
||||||
ansible.builtin.include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
|
|
@ -23,9 +24,9 @@
|
||||||
# ansible.builtin.include_tasks:
|
# ansible.builtin.include_tasks:
|
||||||
# file: set_network_nic.yml
|
# file: set_network_nic.yml
|
||||||
|
|
||||||
- name: Setup NIC to eth0
|
# - name: Setup NIC to eth0
|
||||||
ansible.builtin.include_tasks:
|
# ansible.builtin.include_tasks:
|
||||||
file: set_nic_names_eth.yml
|
# file: set_nic_names_eth.yml
|
||||||
|
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
ansible.builtin.include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
---
|
---
|
||||||
|
- name: Ensure jmespath is installed on the control node
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
ansible.builtin.pip:
|
||||||
|
name: jmespath
|
||||||
|
|
||||||
- name: Формируем отсортированный список физических интерфейсов
|
- name: Формируем отсортированный список физических интерфейсов
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
# Сортировка гарантирует порядок: первый в списке станет eth0
|
# Сортировка гарантирует порядок: первый в списке станет eth0
|
||||||
|
|
@ -8,9 +14,13 @@
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
first_iface: "{{ physical_interfaces[0] }}"
|
first_iface: "{{ physical_interfaces[0] }}"
|
||||||
current_ip: "{{ hostvars[inventory_hostname]['ansible_' + physical_interfaces[0].replace('-', '_')]['ipv4']['address'] }}"
|
current_ip: "{{ hostvars[inventory_hostname]['ansible_' + physical_interfaces[0].replace('-', '_')]['ipv4']['address'] }}"
|
||||||
current_mask: "{{ hostvars[inventory_hostname]['ansible_' + physical_interfaces[0].replace('-', '_')]['ipv4']['netmask'] }}"
|
current_mask: "{{ hostvars[inventory_hostname]['ansible_' + physical_interfaces[0].replace('-', '_')]['ipv4']['prefix'] }}"
|
||||||
current_gw: "{{ ansible_default_ipv4.gateway | default(omit) }}"
|
current_gw: "{{ ansible_default_ipv4.gateway | default(omit) }}"
|
||||||
|
|
||||||
|
- name: Debug interface facts
|
||||||
|
ansible.builtin.debug:
|
||||||
|
var: hostvars[inventory_hostname]['ansible_' + physical_interfaces[0].replace('-', '_')]['ipv4']
|
||||||
|
|
||||||
- name: Настройка eth0 с сохранением текущего IP
|
- name: Настройка eth0 с сохранением текущего IP
|
||||||
community.general.nmcli:
|
community.general.nmcli:
|
||||||
conn_name: eth0
|
conn_name: eth0
|
||||||
|
|
@ -22,16 +32,26 @@
|
||||||
state: present
|
state: present
|
||||||
autoconnect: true
|
autoconnect: true
|
||||||
|
|
||||||
|
#- name: Настройка остальных интерфейсов (eth1, eth2...)
|
||||||
|
# community.general.nmcli:
|
||||||
|
# conn_name: eth{{ item.0 + 1 }}
|
||||||
|
# ifname: eth{{ item.0 + 1 }}
|
||||||
|
# type: ethernet
|
||||||
|
# mac: "{{ ansible_facts[item.1]['macaddress'] }}"
|
||||||
|
# state: present
|
||||||
|
# autoconnect: true
|
||||||
|
# Пропускаем первый (индекс 0), так как настроили его выше
|
||||||
|
# loop: "{{ physical_interfaces[1:] | enumerate }}"
|
||||||
- name: Настройка остальных интерфейсов (eth1, eth2...)
|
- name: Настройка остальных интерфейсов (eth1, eth2...)
|
||||||
community.general.nmcli:
|
community.general.nmcli:
|
||||||
conn_name: eth{{ item.0 + 1 }}
|
conn_name: "eth{{ item.0 + 1 }}"
|
||||||
ifname: eth{{ item.0 + 1 }}
|
ifname: "eth{{ item.0 + 1 }}"
|
||||||
type: ethernet
|
type: ethernet
|
||||||
mac: "{{ ansible_facts[item.1]['macaddress'] }}"
|
mac: "{{ ansible_facts[item.1]['macaddress'] }}"
|
||||||
state: present
|
state: present
|
||||||
autoconnect: true
|
autoconnect: true
|
||||||
# Пропускаем первый (индекс 0), так как настроили его выше
|
# Используем срез [1:] и специальный луп для индексации
|
||||||
loop: "{{ physical_interfaces[1:] | enumerate }}"
|
with_indexed_items: "{{ physical_interfaces[1:] }}"
|
||||||
|
|
||||||
- name: Применение настроек (поднятие eth0)
|
- name: Применение настроек (поднятие eth0)
|
||||||
ansible.builtin.shell: nmcli device connect eth0 # noqa: command-instead-of-shell ignore-errors
|
ansible.builtin.shell: nmcli device connect eth0 # noqa: command-instead-of-shell ignore-errors
|
||||||
|
|
@ -41,9 +61,12 @@
|
||||||
changed_when: true
|
changed_when: true
|
||||||
|
|
||||||
- name: Применение настроек для остальных интерфейсов
|
- name: Применение настроек для остальных интерфейсов
|
||||||
ansible.builtin.shell: nmcli device connect eth{{ item.0 + 1 }} # noqa: command-instead-of-shell ignore-errors
|
ansible.builtin.shell: "nmcli device connect eth{{ item.0 + 1 }}"
|
||||||
loop: "{{ physical_interfaces[1:] | enumerate }}"
|
# item.0 — это индекс (0, 1, 2...)
|
||||||
ignore_errors: true # noqa: ignore-errors
|
# item.1 — это имя интерфейса из списка
|
||||||
|
loop: "{{ physical_interfaces[1:] }}"
|
||||||
|
# with_indexed_items: "{{ physical_interfaces[1:] }}"
|
||||||
|
ignore_errors: true
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
|
||||||
- name: Перезапуск NetworkManager для чистоты
|
- name: Перезапуск NetworkManager для чистоты
|
||||||
|
|
@ -52,3 +75,20 @@
|
||||||
state: restarted
|
state: restarted
|
||||||
async: 30
|
async: 30
|
||||||
poll: 0
|
poll: 0
|
||||||
|
|
||||||
|
- name: Create /etc/systemd/network dir
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/systemd/network
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Rename NIC to eth0
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: 70-eth0.link.j2
|
||||||
|
dest: /etc/systemd/network/70-eth{{ item }}.link
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
loop: "{{ physical_interfaces[0:] }}"
|
||||||
|
|
@ -1,414 +1,60 @@
|
||||||
---
|
---
|
||||||
# Remove kernel.panic entry from /etc/sysctl.conf
|
- name: Kernel Tuning
|
||||||
- ansible.posix.sysctl:
|
ansible.builtin.include_tasks: kernel_tune.yml
|
||||||
name: kernel.panic
|
|
||||||
state: absent
|
|
||||||
sysctl_file: /etc/sysctl.conf
|
|
||||||
# Отключаем отслеживание ядром нажатие специальных сочетаний клавиш
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: kernel.sysrq
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
|
|
||||||
# Добавление к файлу дампа ядра PID процесса
|
- name: TCP/UDP Tuning
|
||||||
- ansible.posix.sysctl:
|
ansible.builtin.include_tasks: tcp_tune.yml
|
||||||
name: kernel.core_uses_pid
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: kernel.msgmnb
|
|
||||||
value: 65536
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: kernel.msgmax
|
|
||||||
value: 65536
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
|
|
||||||
# Максимальный размер (в байтах) на сегменте shared memory.
|
- name: IP ip_spoofing
|
||||||
- ansible.posix.sysctl:
|
ansible.builtin.include_tasks: ip_spoofing.yml
|
||||||
name: kernel.shmmax
|
|
||||||
value: 68719476736
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: kernel.shmall
|
|
||||||
value: 4294967296
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
|
|
||||||
# Лимит одновременно открытых файлов в системе
|
- name: IP Forwarding
|
||||||
- ansible.posix.sysctl:
|
ansible.builtin.include_tasks: ip_forward.yml
|
||||||
name: fs.file-max
|
|
||||||
value: 1000000
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
|
|
||||||
# Максимальный размер буфера приема данных для всех соединений.
|
- name: IP Bridge
|
||||||
- ansible.posix.sysctl:
|
ansible.builtin.include_tasks: ip_bridge.yml
|
||||||
name: net.core.rmem_max
|
|
||||||
value: 33554432
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Максимальный размер буфера передачи данных для всех соединений.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.core.wmem_max
|
|
||||||
value: 33554432
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Размер буфера приема данных по умолчанию для всех соединений.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.core.rmem_default
|
|
||||||
value: 8388608
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Размер буфера передачи данных по умолчанию для всех соединений.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.core.wmem_default
|
|
||||||
value: 4194394
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
# Максимальный размер буфера приема данных для всех соединений.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.core.optmem_max
|
|
||||||
value: 40960
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/kernel_tune.conf
|
|
||||||
|
|
||||||
# - name: Deploy kernel_tune.conf
|
# - name: Deploy kernel_tune.conf
|
||||||
# ansible.builtin.template:
|
# ansible.builtin.template:
|
||||||
# src: kernel_tune.conf.j2
|
# src: kernel_tune.conf.j2
|
||||||
# dest: /etc/sysctl.d/kernel_tune.conf
|
# dest: /etc/sysctl.d/kernel_tune.conf
|
||||||
# mode: "0644"
|
# mode: "0644"
|
||||||
|
# - name: Deploy tcp_tune.conf
|
||||||
#- name: Deploy tcp_tune.conf
|
|
||||||
# ansible.builtin.template:
|
# ansible.builtin.template:
|
||||||
# src: tcp_tune.conf.j2
|
# src: tcp_tune.conf.j2
|
||||||
# dest: /etc/sysctl.d/tcp_tune.conf
|
# dest: /etc/sysctl.d/tcp_tune.conf
|
||||||
# mode: "0644"
|
# mode: "0644"
|
||||||
|
# - name: Deploy ip_spoofing.conf
|
||||||
# TCP syncookies - технология, позволяющая не забивать
|
|
||||||
# TCP стек, пока TCP сессия полностью не установится.
|
|
||||||
# Защита на случай TCP Syn атак
|
|
||||||
# Согласно рекомендациям разработчиков ядра, этот режим лучше отключить.
|
|
||||||
# http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_syncookies
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
|
|
||||||
# Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер буфера сокетов TCP/UDP.
|
|
||||||
# Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется
|
|
||||||
# даже при достижении порога ограничения (moderate memory pressure). Размер минимального буфера по умолчанию составляет 8 Кбайт (8192).
|
|
||||||
# Значение по умолчанию: количество памяти, допустимое для буфера передачи сокета TCP по умолчанию. Это значение применяется взамен параметра
|
|
||||||
# /proc/sys/net/core/rmem_default, используемого другими протоколами. Значение используемого по умолчанию буфера обычно (по умолчанию)
|
|
||||||
# составляет 87830 байт. Это определяет размер окна 65535 с заданным по умолчанию значением tcp_adv_win_scale и tcp_app_win = 0, несколько
|
|
||||||
# меньший, нежели определяет принятое по умолчанию значение tcp_app_win.
|
|
||||||
# Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума,
|
|
||||||
# заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения.
|
|
||||||
# На приём TCP пакетов
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_rmem
|
|
||||||
value: 4096 8388608 16777216
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf# На передачу TCP пакетов
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_wmem
|
|
||||||
value: 4096 4194394 16777216
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Для TCP протокола в целом
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_mem
|
|
||||||
value: 8388608 12582912 16777216
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Для UDP протокола в целом
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.udp_mem
|
|
||||||
value: 8388608 12582912 16777216
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.udp_rmem_min
|
|
||||||
value: 16384
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.udp_wmem_min
|
|
||||||
value: 16384
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.core.netdev_max_backlog
|
|
||||||
value: 500000
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_max_syn_backlog
|
|
||||||
value: 5480000
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Увеличим возможное количество сокетов в состоянии TIME_WAIT.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_max_tw_buckets
|
|
||||||
value: 5480000
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_tw_reuse
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Разрешаем быструю утилизацию сокетов находящихся в состоянии TIME_WAIT
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_tw_recycle
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
|
|
||||||
# Партнер может не закрыть это соединение никогда.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_fin_timeout
|
|
||||||
value: 3
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
|
|
||||||
# пропускной способности некоторых сетей
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_sack
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_synack_retries
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle).
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_max_orphans
|
|
||||||
value: 65536
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_orphan_retries
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
|
|
||||||
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_keepalive_time
|
|
||||||
value: 600
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Интервал, с которым слать keepalive пакеты (в сек)
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_keepalive_intvl
|
|
||||||
value: 20
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# После скольки неудачных пробах считать соединение разорванным
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_keepalive_probes
|
|
||||||
value: 2
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
|
|
||||||
# в которых долгое время не было трафика.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_slow_start_after_idle
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.ip_local_port_range
|
|
||||||
value: 2000 65000
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_timestamps
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Параметр отвечающий за алгоритмы сегментации TCP пакетов при передаче данных.
|
|
||||||
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
|
|
||||||
# Включён по умолчанию в linux ядре начиная с версии 2.6.19
|
|
||||||
# BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_congestion_control
|
|
||||||
value: bbr
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Параметр определяет дисциплину обработки очередей
|
|
||||||
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: sysctl net.core.default_qdisc
|
|
||||||
value: fq
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_no_metrics_save
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
|
|
||||||
# пакетов при передаче в рамках TCP подключения)
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_window_scaling
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Защита от TIME_WAIT атак.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.tcp_rfc1337
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.icmp_echo_ignore_broadcasts
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Не отвечаем на ошибочно сформированные сообщения.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.icmp_ignore_bogus_error_responses
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
# Максимальное число открытых сокетов, ждущих соединения.
|
|
||||||
# Максимум в CentOS 7
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.core.somaxconn
|
|
||||||
value: 65535
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
|
||||||
|
|
||||||
#- name: Deploy ip_spoofing.conf
|
|
||||||
# ansible.builtin.template:
|
# ansible.builtin.template:
|
||||||
# src: ip_spoofing.conf.j2
|
# src: ip_spoofing.conf.j2
|
||||||
# dest: /etc/sysctl.d/ip_spoofing.conf
|
# dest: /etc/sysctl.d/ip_spoofing.conf
|
||||||
# mode: "0644"
|
# mode: "0644"
|
||||||
# Активируем защиту от IP-спуфинга.
|
# - name: Deploy ip_forward.conf
|
||||||
- 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
|
|
||||||
|
|
||||||
#- name: Deploy ip_forward.conf
|
|
||||||
# ansible.builtin.template:
|
# ansible.builtin.template:
|
||||||
# src: ip_forward.conf.j2
|
# src: ip_forward.conf.j2
|
||||||
# dest: /etc/sysctl.d/ip_forward.conf
|
# dest: /etc/sysctl.d/ip_forward.conf
|
||||||
# mode: "0644"
|
# mode: "0644"
|
||||||
|
# - name: Deploy ip_bridge.conf
|
||||||
# Запрет на передачу пакетов через сервер (т.е. работу его как шлюза)
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.ip_forward
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
|
|
||||||
# Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность)
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.conf.default.accept_source_route
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
|
|
||||||
# Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip)
|
|
||||||
# и он ссылается на данный интерфейс, то такой пакет будет принят.
|
|
||||||
# остальные будут отброшены.
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.conf.default.rp_filter
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.conf.all.rp_filter
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.conf.lo.rp_filter
|
|
||||||
value: 1
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.all.send_redirects
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.ipv4.all.accept_redirects
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_forward.conf
|
|
||||||
|
|
||||||
#- name: Deploy ip_bridge.conf
|
|
||||||
# ansible.builtin.template:
|
# ansible.builtin.template:
|
||||||
# src: ip_bridge.conf.j2
|
# src: ip_bridge.conf.j2
|
||||||
# dest: /etc/sysctl.d/ip_bridge.conf
|
# dest: /etc/sysctl.d/ip_bridge.conf
|
||||||
# mode: "0644"
|
# mode: "0644"
|
||||||
|
# - name: Deploy httpd-tune.conf
|
||||||
# Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях,
|
|
||||||
# когда NAT не правильно отрабатывает по таким интерфейсам
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.bridge.bridge-nf-call-ip6tables
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_bridge.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.bridge.bridge-nf-call-iptables
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_bridge.conf
|
|
||||||
- ansible.posix.sysctl:
|
|
||||||
name: net.bridge.bridge-nf-call-arptables
|
|
||||||
value: 0
|
|
||||||
state: present
|
|
||||||
sysctl_file: /etc/sysctl.d/ip_bridge.conf
|
|
||||||
|
|
||||||
#- name: Deploy httpd-tune.conf
|
|
||||||
# ansible.builtin.template:
|
# ansible.builtin.template:
|
||||||
# src: httpd-tune.conf.j2
|
# src: httpd-tune.conf.j2
|
||||||
# dest: /etc/sysctl.d/httpd-tune.conf
|
# dest: /etc/sysctl.d/httpd-tune.conf
|
||||||
# mode: "0644"
|
# mode: "0644"
|
||||||
#limit for using memory
|
# limit for using memory
|
||||||
- ansible.posix.sysctl:
|
|
||||||
|
- name: vm.overcommit_ratio
|
||||||
|
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/ip_httpd.conf
|
||||||
|
|
||||||
- ansible.posix.sysctl:
|
- name: vm.overcommit_memory
|
||||||
|
ansible.posix.sysctl:
|
||||||
name: vm.overcommit_memory
|
name: vm.overcommit_memory
|
||||||
value: 2
|
value: 2
|
||||||
state: present
|
state: present
|
||||||
|
|
|
||||||
239
roles/rocky9/tasks/tcp_tune.yml
Normal file
239
roles/rocky9/tasks/tcp_tune.yml
Normal file
|
|
@ -0,0 +1,239 @@
|
||||||
|
# TCP syncookies - технология, позволяющая не забивать
|
||||||
|
# TCP стек, пока TCP сессия полностью не установится.
|
||||||
|
# Защита на случай TCP Syn атак
|
||||||
|
# Согласно рекомендациям разработчиков ядра, этот режим лучше отключить.
|
||||||
|
# http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
|
||||||
|
- name: net.ipv4.tcp_syncookies
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_syncookies
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
|
||||||
|
# Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер буфера сокетов TCP/UDP.
|
||||||
|
# Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется
|
||||||
|
# даже при достижении порога ограничения (moderate memory pressure). Размер минимального буфера по умолчанию составляет 8 Кбайт (8192).
|
||||||
|
# Значение по умолчанию: количество памяти, допустимое для буфера передачи сокета TCP по умолчанию. Это значение применяется взамен параметра
|
||||||
|
# /proc/sys/net/core/rmem_default, используемого другими протоколами. Значение используемого по умолчанию буфера обычно (по умолчанию)
|
||||||
|
# составляет 87830 байт. Это определяет размер окна 65535 с заданным по умолчанию значением tcp_adv_win_scale и tcp_app_win = 0, несколько
|
||||||
|
# меньший, нежели определяет принятое по умолчанию значение tcp_app_win.
|
||||||
|
# Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума,
|
||||||
|
# заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения.
|
||||||
|
# На приём TCP пакетов
|
||||||
|
- name: net.ipv4.tcp_rmem
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_rmem
|
||||||
|
value: 4096 8388608 16777216
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.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
|
||||||
|
# Для 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
|
||||||
|
# Для 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
|
||||||
|
- 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
|
||||||
|
- 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
|
||||||
|
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
|
||||||
|
- 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
|
||||||
|
# Максимальное число запоминаемых запросов на соединение (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
|
||||||
|
# Увеличим возможное количество сокетов в состоянии 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
|
||||||
|
# Разрешаем повторное использование 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
|
||||||
|
# Разрешаем быструю утилизацию сокетов находящихся в состоянии TIME_WAIT DEPRICATRED
|
||||||
|
#- ansible.posix.sysctl:
|
||||||
|
# name: net.ipv4.tcp_tw_recycle
|
||||||
|
# value: 1
|
||||||
|
# state: present
|
||||||
|
# sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
|
||||||
|
# Партнер может не закрыть это соединение никогда.
|
||||||
|
- name: net.ipv4.tcp_fin_timeout
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_fin_timeout
|
||||||
|
value: 3
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
|
||||||
|
# пропускной способности некоторых сетей
|
||||||
|
- name: net.ipv4.tcp_sack
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_sack
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.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
|
||||||
|
# Определяет максимальное число допустимых в системе сокетов 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
|
||||||
|
# Определяется число неудачных попыток, после которого уничтожается соединение 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
|
||||||
|
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
|
||||||
|
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
|
||||||
|
- name: net.ipv4.tcp_keepalive_time
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_keepalive_time
|
||||||
|
value: 600
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.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
|
||||||
|
# После скольки неудачных пробах считать соединение разорванным
|
||||||
|
- 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
|
||||||
|
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
|
||||||
|
# в которых долгое время не было трафика.
|
||||||
|
- name: net.ipv4.tcp_slow_start_after_idle
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_slow_start_after_idle
|
||||||
|
value: 0
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.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
|
||||||
|
# Разрешает временные метки протокола 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
|
||||||
|
# Параметр отвечающий за алгоритмы сегментации TCP пакетов при передаче данных.
|
||||||
|
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
|
||||||
|
# Включён по умолчанию в linux ядре начиная с версии 2.6.19
|
||||||
|
# BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал
|
||||||
|
- name: net.ipv4.tcp_congestion_control
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_congestion_control
|
||||||
|
value: bbr
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
# Параметр определяет дисциплину обработки очередей
|
||||||
|
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
|
||||||
|
- name: net.core.default_qdisc
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.core.default_qdisc
|
||||||
|
value: "fq"
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
|
||||||
|
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии
|
||||||
|
- name: net.ipv4.tcp_no_metrics_save
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_no_metrics_save
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
|
||||||
|
# пакетов при передаче в рамках TCP подключения)
|
||||||
|
- name: net.ipv4.tcp_window_scaling
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.ipv4.tcp_window_scaling
|
||||||
|
value: 1
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.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
|
||||||
|
# Не отвечаем на 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
|
||||||
|
# Не отвечаем на ошибочно сформированные сообщения.
|
||||||
|
- 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
|
||||||
|
# Максимальное число открытых сокетов, ждущих соединения.
|
||||||
|
# Максимум в CentOS 7
|
||||||
|
- name: net.core.somaxconn
|
||||||
|
ansible.posix.sysctl:
|
||||||
|
name: net.core.somaxconn
|
||||||
|
value: 65535
|
||||||
|
state: present
|
||||||
|
sysctl_file: /etc/sysctl.d/tcp_tune.conf
|
||||||
|
|
@ -5,11 +5,11 @@
|
||||||
# register: result
|
# register: result
|
||||||
# failed_when: not result.stat.exists
|
# failed_when: not result.stat.exists
|
||||||
|
|
||||||
- include: debian.yml
|
- ansible.builtin.include_tasks: debian.yml
|
||||||
when: ansible_os_family == "Debian"
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
- include: red_hat.yml
|
- ansible.builtin.include_tasks: red_hat.yml
|
||||||
when: ansible_os_family == "RedHat"
|
when: ansible_os_family == "RedHat"
|
||||||
|
|
||||||
- include: darwin.yml
|
- ansible.builtin.include_tasks: darwin.yml
|
||||||
when: ansible_os_family == "Darwin"
|
when: ansible_os_family == "Darwin"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue