Compare commits

..

No commits in common. "3735c11b9f0143d5d8c11c71b12551a8f8ef1335" and "e7150c694ba5082d19d8f1c4978eeab065f6c8af" have entirely different histories.

21 changed files with 138 additions and 384 deletions

View file

@ -17,20 +17,6 @@ all:
ansible_host: 172.20.21.200 ansible_host: 172.20.21.200
kube-node01: kube-node01:
ansible_host: 172.20.21.201 ansible_host: 172.20.21.201
rke-master01:
ansible_host: rke-master01.local.mrwho.ru
rke-node01:
ansible_host: rke-node01.local.mrwho.ru
ca:
ansible_host: ca.local.mrwho.ru
router:
ansible_host: router.local.mrwho.ru
git:
ansible_host: git.local.mrwho.ru
vm03:
ansible_host: 150.251.147.212
# ansible_ssh_user: root
# ansible_ssh_password: OdUdPx7yKa4Ga1i
rocky9-template: # rocky9-template:
ansible_host: 172.20.21.106 # ansible_host: 172.20.21.106

View file

@ -1,33 +0,0 @@
---
# ── Admin groups ───────────────────────────────────────────────────────────────
# Add new users here. Each entry requires:
# username — Linux username
# ssh_key — public SSH key string (optional, but strongly recommended)
#
# To allow a group on a specific host/group, override `users_allowed_admin_groups`
# in the corresponding group_vars/<group>/vars.yml or host_vars/<host>/vars.yml.
users_admin_groups:
super_admin:
- username: mrwho
ssh_key: >-
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAlQz8IhTEQ0utmWmwOC7FijieQULbeyXLDkjmYwSyptqj+7u0qyPPStQzN9leIISSKJ1/eJ5UbETTvc1R1Jg1tdTg5xZTMoz0jwruDP73vYIxLdeO4cZvjJIGyzS2PemUM+016uf4DLZ3jmK4hwEi2mF6UX+NYRPNIuPpr96gP1kYb1vrlG7P0cEk7EbGO6Deda3S64L0lDherSqc/Z7cn8nr6iemTdsBfl303vqFgXf/aWijuvVPUSpSiI3fR0NwvX/RW7oDIFls1dVU5CPkcwaX25Fu3voJ6e3lmduW+1s/vL1nMd5ourET+1Std3S75jqzkVsV3R74Xkgq5avn7w==
middle_admin: []
# Example:
# - username: m.ivanov
# ssh_key: "ssh-rsa AAAA..."
junior_admin: []
# Example:
# - username: j.petrov
# ssh_key: "ssh-rsa AAAA..."
# ── Default access policy ──────────────────────────────────────────────────────
# Which admin groups are provisioned on hosts by default.
# Override in group_vars/<os_group>/vars.yml or host_vars/<host>/vars.yml
# to restrict access on specific servers.
users_allowed_admin_groups:
- super_admin
- middle_admin
- junior_admin

View file

@ -1,37 +0,0 @@
---
# ── SSH connection ─────────────────────────────────────────────────────────────
# Credentials are injected from GitLab CI/CD Variables:
# ANSIBLE_SSH_USER — remote user
# ANSIBLE_SSHKEY_ID_RSA — private SSH key (записывается в ~/.ssh/id_rsa в before_script)
# ANSIBLE_BECOME_PASS — sudo password
ignored_interfaces: lo
ansible_user: "{{ lookup('env', 'ANSIBLE_SSH_USER') | mandatory }}"
ansible_become: true
ansible_become_method: sudo
ansible_become_pass: "{{ lookup('env', 'ANSIBLE_BECOME_PASS') | mandatory }}"
ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
# Zabbix agent default settings
agent_major_version: "7.0"
agent_variant: "2"
agent_2_plugin_list: ['']
agent_param_server:
- 10.203.0.50
agent_param_serveractive:
- 10.203.0.50
agent_param_tlsconnect: unencrypted
agent_param_tlsaccept:
- unencrypted
# Chrony NTP Client settings
chrony_log_enable: true
chrony_log: measurements statistics tracking
chrony_logdir: /var/log/chrony/
chrony_ntp_servers:
- router.local.mrwho.ru
chrony_rtcsync: true
chrony_timezone: Europe/Moscow
# Firewalld defaults
firewall_disable_conflicting_services: true
firewall_transactional_update_reboot_ok: true

View file

@ -1,10 +0,0 @@
---
# ── Rocky Linux 9 specifics ───────────────────────────────────────────────────
ansible_python_interpreter: /usr/bin/python3
# Группа для sudo-привилегий на RHEL-совместимых системах
users_sudo_group: wheel
# Переопределяем логику named-роли: RedHat.yml возвращает '2' для версий != 8,
# на Rocky 9 нужен python3-netaddr / python3-dns
named_python_version: "3"

View file

@ -1,10 +0,0 @@
---
all:
children:
centos:
hosts:
# router:
# ansible_host: 172.20.21.100
rocky9-template:
ansible_host: 172.20.21.106

View file

@ -1,9 +1,8 @@
--- ---
- name: Initial Rocky9 Configuration - name: Initial Rocky9 Configuration
hosts: hosts: all
# - vm03 # - rocky9-template
- rocky9-template
# kuber-node01 # kuber-node01
# - 172.20.21.193 # - 172.20.21.193
become: true become: true
@ -13,7 +12,7 @@
- root-cert - root-cert
- linux_login_banner_rhel9 - linux_login_banner_rhel9
- linux_core_dumps_rhel9 - linux_core_dumps_rhel9
# - linux_ctrl_alt_del_rhel9 - linux_ctrl_alt_del_rhel9
- linux_dnf_automatic_rhel9 - linux_dnf_automatic_rhel9
- linux_wireless_rhel9 - linux_wireless_rhel9
- openssh - openssh
@ -26,14 +25,11 @@
epel_repo: true epel_repo: true
reboot_system: false reboot_system: false
hostname: "{{ inventory_hostname }}.local.mrwho.ru" hostname: "{{ inventory_hostname }}.local.mrwho.ru"
flush_sysctl_rules: true
sysctl_tune: true
openssh_password_authentication: false openssh_password_authentication: false
openssh_permit_root_login: "no" # Completely disable root SSH openssh_permit_root_login: "no" # Completely disable root SSH
openssh_challenge_response_auth: false openssh_challenge_response_auth: false
# Rate limiting and attack mitigation (OpenSSH 9.8+) # Rate limiting and attack mitigation (OpenSSH 9.8+)
openssh_enable_persourcepenalties: false openssh_enable_persourcepenalties: true
openssh_persource_authfail_penalty: "10s" # Aggressive penalty openssh_persource_authfail_penalty: "10s" # Aggressive penalty
openssh_persource_maxstartups: "5:30:10" # Very restrictive openssh_persource_maxstartups: "5:30:10" # Very restrictive
# Disable all port forwarding # Disable all port forwarding
@ -48,7 +44,7 @@
openssh_macs: openssh_macs:
- hmac-sha2-512-etm@openssh.com - hmac-sha2-512-etm@openssh.com
# Minimum RSA key size # Minimum RSA key size
openssh_required_rsa_size: 2048 # Maximum strength (Exceeds NIST/CNSA 3072-bit requirement) openssh_required_rsa_size: 4096 # Maximum strength (Exceeds NIST/CNSA 3072-bit requirement)
# Aggressive session limits # Aggressive session limits
openssh_max_auth_tries: 2 # (Exceeds PCI DSS 8.3.6 limit of 6) openssh_max_auth_tries: 2 # (Exceeds PCI DSS 8.3.6 limit of 6)
openssh_login_grace_time: "20s" openssh_login_grace_time: "20s"

View file

@ -5,5 +5,6 @@ collections:
- name: ansible.utils - name: ansible.utils
version: ">=2.0.0,<5.0.0" version: ">=2.0.0,<5.0.0"
- name: community.general - name: community.general
version: ">=8.0.0"
- name: community.vmware - name: community.vmware
version: ">=4.0.0" version: ">=4.0.0"

View file

@ -113,21 +113,21 @@
- name: Set OpenSSH capability flags - name: Set OpenSSH capability flags
ansible.builtin.set_fact: ansible.builtin.set_fact:
# Core capabilities for backwards compatibility # Core capabilities for backwards compatibility
openssh_has_disable_forwarding: "{{ openssh_version is defined and openssh_version is version('7.4', '>=') }}" openssh_has_disable_forwarding: "{{ openssh_version is defined and openssh_version >= 7.4 }}"
openssh_has_ca_signature_algorithms: "{{ openssh_version is defined and openssh_version is version('7.9', '>=') }}" openssh_has_ca_signature_algorithms: "{{ openssh_version is defined and openssh_version >= 7.9 }}"
openssh_has_fido2: "{{ openssh_version is defined and openssh_version is version('8.2', '>=') }}" openssh_has_fido2: "{{ openssh_version is defined and openssh_version >= 8.2 }}"
openssh_has_include: "{{ openssh_version is defined and openssh_version is version('8.2', '>=') }}" openssh_has_include: "{{ openssh_version is defined and openssh_version >= 8.2 }}"
openssh_has_log_verbose: "{{ openssh_version is defined and openssh_version is version('8.5', '>=') }}" openssh_has_log_verbose: "{{ openssh_version is defined and openssh_version >= 8.5 }}"
openssh_has_required_rsa_size: "{{ openssh_version is defined and openssh_version is version('9.3', '>=') }}" openssh_has_required_rsa_size: "{{ openssh_version is defined and openssh_version >= 9.3 }}"
openssh_has_persourcepenalties: "{{ openssh_version is defined and openssh_version is version('9.8', '>=') }}" openssh_has_persourcepenalties: "{{ openssh_version is defined and openssh_version >= 9.8 }}"
openssh_has_mlkem: "{{ openssh_version is defined and openssh_version is version('9.9', '>=') }}" openssh_has_mlkem: "{{ openssh_version is defined and openssh_version >= 9.9 }}"
# Algorithm support flags # Algorithm support flags
openssh_has_rsa_sha2: "{{ openssh_version is defined and openssh_version is version('7.2', '>=') }}" openssh_has_rsa_sha2: "{{ openssh_version is defined and openssh_version >= 7.2 }}"
openssh_has_modern_kex: "{{ openssh_version is defined and openssh_version is version('7.4', '>=') }}" openssh_has_modern_kex: "{{ openssh_version is defined and openssh_version >= 7.4 }}"
# Security restriction flags # Security restriction flags
openssh_blocks_dsa_ca: "{{ openssh_version is defined and openssh_version is version('7.9', '>=') }}" openssh_blocks_dsa_ca: "{{ openssh_version is defined and openssh_version >= 7.9 }}"
openssh_removes_dsa: "{{ openssh_version is defined and openssh_version is version('9.6', '>=') }}" openssh_removes_dsa: "{{ openssh_version is defined and openssh_version >= 9.6 }}"
openssh_dh_disabled_default: "{{ openssh_version is defined and openssh_version is version('10.0', '>=') }}" openssh_dh_disabled_default: "{{ openssh_version is defined and openssh_version >= 10.0 }}"
tags: tags:
- openssh - openssh
- facts - facts
@ -139,7 +139,7 @@
openssh_ca_signature_algorithms: "{{ openssh_ca_signature_algorithms | reject('match', '^sk-') | list }}" openssh_ca_signature_algorithms: "{{ openssh_ca_signature_algorithms | reject('match', '^sk-') | list }}"
when: when:
- openssh_version is defined - openssh_version is defined
- openssh_version is version('8.2', '<') - openssh_version < 8.2
tags: tags:
- openssh - openssh
- facts - facts

View file

@ -9,7 +9,7 @@ ListenAddress {{ address }}
{% endfor %} {% endfor %}
# Protocol (deprecated directive in newer OpenSSH, kept for compatibility) # Protocol (deprecated directive in newer OpenSSH, kept for compatibility)
{% if openssh_version is defined and openssh_version is version('7.4', '<') %} {% if openssh_version is defined and openssh_version < 7.4 %}
Protocol {{ openssh_protocol }} Protocol {{ openssh_protocol }}
{% endif %} {% endif %}
@ -153,6 +153,6 @@ GatewayPorts no
{% if openssh_has_persourcepenalties | default(false) and openssh_enable_persourcepenalties %} {% if openssh_has_persourcepenalties | default(false) and openssh_enable_persourcepenalties %}
# Automatic penalties for repeated failures and suspicious behavior # Automatic penalties for repeated failures and suspicious behavior
PerSourcePenalties authfail:{{ openssh_persource_authfail_penalty }} noauth:{{ openssh_persource_noauth_penalty }} crash:{{ openssh_persource_crash_penalty }} PerSourcePenalties authfail:{{ openssh_persource_authfail_penalty }} noauth:{{ openssh_persource_noauth_penalty }} crash:{{ openssh_persource_crash_penalty }}
PerSourceMaxStartups '{{ openssh_persource_maxstartups }}' PerSourceMaxStartups {{ openssh_persource_maxstartups }}
PerSourceNetBlockSize {{ openssh_persource_netblock_ipv4 }}:{{ openssh_persource_netblock_ipv6 }} PerSourceNetBlockSize {{ openssh_persource_netblock_ipv4 }}:{{ openssh_persource_netblock_ipv6 }}
{% endif %} {% endif %}

View file

@ -1,5 +1,5 @@
--- ---
logrotate_interval: 14
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 }}"
epel_repofile_path: "/etc/yum.repos.d/epel.repo" epel_repofile_path: "/etc/yum.repos.d/epel.repo"

View file

@ -1,11 +1,11 @@
--- ---
- name: Enable EPEL repo - name: Enable EPEL repo
ansible.builtin.package: ansible.builtin.dnf:
name: epel-release name: epel-release
state: present state: present
- name: Install soft from EPEL - name: Install soft from EPEL
ansible.builtin.package: ansible.builtin.dnf:
name: name:
- screen - screen
- unrar - unrar

View file

@ -1,4 +1,16 @@
--- ---
# - name: Add Nginx Repo
# template:
# src: nginx.repo.j2
# dest: /etc/yum.repos.d/nginx.repo
# owner: root
# group: root
# - name: Configure dnf to use fastest mirror
# ansible.builtin.lineinfile:
# path: /etc/dnf/dnf.conf
# regexp: '^fastestmirror='
# line: 'fastestmirror=True'
# - name: Enable fastestmirror in DNF # - name: Enable fastestmirror in DNF
# community.general.ini_file: # community.general.ini_file:
# path: /etc/dnf/dnf.conf # path: /etc/dnf/dnf.conf
@ -14,20 +26,22 @@
option: max_parallel_downloads option: max_parallel_downloads
value: "10" value: "10"
state: present state: present
owner: root
group: root
mode: '0644'
backup: true backup: true
# - name: Ensure the crb repository is enabled - name: Ensure the crb repository is enabled
# community.general.dnf_config_manager: community.general.dnf_config_manager:
# name: crb name: crb
# state: enabled state: enabled
# when: crb_repo is true when: crb_repo is defined
- name: Install EPEL repo - name: Install EPEL repo
ansible.builtin.include_tasks: install-epel-repo.yml ansible.builtin.include_tasks: install-epel-repo.yml
when: epel_repo is true when: epel_repo is defined
# - name: Upgrade all packages
# ansible.builtin.dnf:
# name: "*"
# state: latest
- name: Install soft - name: Install soft
ansible.builtin.dnf: ansible.builtin.dnf:
@ -65,12 +79,11 @@
- nano - nano
- bind-utils - bind-utils
- psmisc - psmisc
# - python-pip - python-pip
- open-vm-tools - open-vm-tools
- qemu-guest-agent - qemu-guest-agent
- cloud-utils-growpart - cloud-utils-growpart
- iptraf-ng - iptraf-ng
- python3-firewall
# - speedtest-cli # - speedtest-cli
# - deltarpm # - deltarpm
# - screen # - screen
@ -79,11 +92,11 @@
# - btop # - btop
state: present state: present
# - name: Обновить всё - name: Обновить всё
# become: true become: true
# ansible.builtin.dnf: ansible.builtin.dnf:
# name: "*" name: "*"
# state: latest state: latest
- name: Удалить старые ядра и ненужные зависимости - name: Удалить старые ядра и ненужные зависимости
become: true become: true

View file

@ -1,23 +1,21 @@
--- ---
# Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях, # Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях,
# когда NAT не правильно отрабатывает по таким интерфейсам # когда NAT не правильно отрабатывает по таким интерфейсам
- name: Set net.bridge.bridge-nf-call-ip6tables - name: net.bridge.bridge-nf-call-ip6tables
ansible.posix.sysctl: ansible.posix.sysctl:
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/03-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: Set 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/03-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: Set 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

View file

@ -1,19 +1,19 @@
--- ---
# Запрет на передачу пакетов через сервер (т.е. работу его как шлюза) # Запрет на передачу пакетов через сервер (т.е. работу его как шлюза)
- name: Set net.ipv4.ip_forward - name: net.ipv4.ip_forward
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.ip_forward name: net.ipv4.ip_forward
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
# Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность) # Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность)
- name: Set net.ipv4.conf.default.accept_source_route - name: net.ipv4.conf.default.accept_source_route
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.default.accept_source_route name: net.ipv4.conf.default.accept_source_route
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
# Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip) # Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip)
# и он ссылается на данный интерфейс, то такой пакет будет принят. # и он ссылается на данный интерфейс, то такой пакет будет принят.
@ -24,45 +24,42 @@
# - Использование политик маршрутизации (Policy Based Routing via ip rule). # - Использование политик маршрутизации (Policy Based Routing via ip rule).
# При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main, # При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main,
# игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов. # игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов.
- name: Set net.ipv4.conf.default.rp_filter - name: net.ipv4.conf.default.rp_filter
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.default.rp_filter name: net.ipv4.conf.default.rp_filter
value: 2 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
- name: net.ipv4.conf.all.rp_filter
- name: Set net.ipv4.conf.all.rp_filter
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.all.rp_filter name: net.ipv4.conf.all.rp_filter
value: 2 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
- name: net.ipv4.conf.lo.rp_filter
- name: Set net.ipv4.conf.lo.rp_filter
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.lo.rp_filter name: net.ipv4.conf.lo.rp_filter
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
- name: net.ipv4.conf.all.send_redirects
- name: Set net.ipv4.conf.all.send_redirects
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.all.send_redirects name: net.ipv4.conf.all.send_redirects
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
- name: Set net.ipv4.conf.default.send_redirects - name: net.ipv4.conf.default.send_redirects
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.default.send_redirects name: net.ipv4.conf.default.send_redirects
value: 0 value: 0
state: present state: present
reload: true reload: true
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf
- name: Set net.ipv4.conf.all.accept_redirects - name: net.ipv4.conf.all.accept_redirects
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.conf.all.accept_redirects name: net.ipv4.conf.all.accept_redirects
value: 0 value: 0
state: present state: present
sysctl_file: /etc/sysctl.d/03-ip_forward.conf sysctl_file: /etc/sysctl.d/ip_forward.conf

View file

@ -1,12 +1,12 @@
--- ---
# Remove kernel.panic entry from /etc/sysctl.conf # Remove kernel.panic entry from /etc/sysctl.conf
- name: Set kernel.panic - name: kernel.panic
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.panic name: kernel.panic
state: absent state: absent
sysctl_file: /etc/sysctl.conf sysctl_file: /etc/sysctl.conf
# Отключаем отслеживание ядром нажатие специальных сочетаний клавиш # Отключаем отслеживание ядром нажатие специальных сочетаний клавиш
- name: Set kernel.sysrq - name: kernel.sysrq
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.sysrq name: kernel.sysrq
value: 0 value: 0
@ -14,21 +14,21 @@
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Добавление к файлу дампа ядра PID процесса # Добавление к файлу дампа ядра PID процесса
- name: Set kernel.core_uses_pid - name: kernel.core_uses_pid
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.core_uses_pid name: kernel.core_uses_pid
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами # Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами
- name: Set 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/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому. # Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому.
- name: Set kernel.msgmax - name: kernel.msgmax
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.msgmax name: kernel.msgmax
value: 65536 value: 65536
@ -36,14 +36,14 @@
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер (в байтах) на сегменте shared memory. # Максимальный размер (в байтах) на сегменте shared memory.
- name: Set kernel.shmmax - name: kernel.shmmax
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.shmmax name: kernel.shmmax
value: 68719476736 value: 68719476736
state: present state: present
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать. # Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать.
- name: Set kernel.shmall - name: kernel.shmall
ansible.posix.sysctl: ansible.posix.sysctl:
name: kernel.shmall name: kernel.shmall
value: 4294967296 value: 4294967296
@ -51,7 +51,7 @@
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Лимит одновременно открытых файлов в системе # Лимит одновременно открытых файлов в системе
- name: Set fs.file-max - name: fs.file-max
ansible.posix.sysctl: ansible.posix.sysctl:
name: fs.file-max name: fs.file-max
value: 1000000 value: 1000000
@ -59,35 +59,35 @@
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер буфера приема данных для всех соединений. # Максимальный размер буфера приема данных для всех соединений.
- name: Set net.core.rmem_max - name: net.core.rmem_max
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.rmem_max name: net.core.rmem_max
value: 33554432 value: 33554432
state: present state: present
sysctl_file: /etc/sysctl.d/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер буфера передачи данных для всех соединений. # Максимальный размер буфера передачи данных для всех соединений.
- name: Set 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/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Размер буфера приема данных по умолчанию для всех соединений. # Размер буфера приема данных по умолчанию для всех соединений.
- name: Set 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/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Размер буфера передачи данных по умолчанию для всех соединений. # Размер буфера передачи данных по умолчанию для всех соединений.
- name: Set 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/01-kernel.conf sysctl_file: /etc/sysctl.d/01-kernel.conf
# Максимальный размер буфера приема данных для всех соединений. # Максимальный размер буфера приема данных для всех соединений.
- name: Set 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

View file

@ -1,7 +0,0 @@
- name: Set logrotate rsyslog
ansible.builtin.template:
src: logrotate-rsyslog.j2
dest: /etc/logrotate.d/rsyslog
mode: "0644"
owner: root
group: root

View file

@ -12,16 +12,8 @@
group: root group: root
mode: "0644" mode: "0644"
- name: Добавить строку в файл, если её нет
ansible.builtin.lineinfile:
path: /etc/vconsole.conf
regexp: '^FONT\s*='
line: 'FONT="UniCyr_8x16"'
create: true
- name: Syctl tuning - name: Syctl tuning
ansible.builtin.include_tasks: sysctl_tuning.yml ansible.builtin.include_tasks: sysctl_tuning.yml
when: sysctl_tune is true
############# DEPRICATED ################### ############# DEPRICATED ###################
@ -32,46 +24,17 @@
# - 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:
file: install_packages.yml file: install_packages.yml
- name: Disable SELinux - name: Setup secutity options
ansible.builtin.include_tasks: ansible.builtin.include_tasks:
file: security_setup.yml file: security_setup.yml
- name: Logrotate
ansible.builtin.include_tasks:
file: logrotate.yml
- name: Check if Cloud-Init present
ansible.builtin.stat:
path: /etc/cloud
register: cloudinit_status
- name: Disable cloud-init
ansible.builtin.file:
path: /etc/cloud/cloud-init.disabled
state: touch
owner: root
group: root
mode: '0644'
when: cloudinit_status.stat.exists
- name: Migrate legacy network scripts to NetworkManager keyfiles
ansible.builtin.command:
cmd: nmcli connection migrate
become: true
register: migration_result
changed_when: "'successfully migrated' in migration_result.stdout"
- name: Reboot System - name: Reboot System
ansible.builtin.debug: ansible.builtin.reboot:
msg: reboot_timeout: 60
- "Going to reboot..."
- "System: {{ ansible_distribution }}"
- "Version: {{ ansible_distribution_version }}"
notify: "Reboot Server"
when: reboot_system is true when: reboot_system is true

View file

@ -11,23 +11,6 @@
path: "{{ item.path }}" path: "{{ item.path }}"
state: absent state: absent
loop: "{{ files_to_delete.files }}" loop: "{{ files_to_delete.files }}"
when: flush_sysctl_rules is true
- name: Disable Default sysctl.d
ansible.builtin.file:
path: /etc/sysctl.d/50-redhat.conf
state: touch
owner: root
group: root
mode: '0644'
- name: Disable Default sysctl.d
ansible.builtin.file:
path: /etc/sysctl.d/50-default.conf
state: touch
owner: root
group: root
mode: '0644'
- name: Kernel Tuning - name: Kernel Tuning
ansible.builtin.include_tasks: kernel_tune.yml ansible.builtin.include_tasks: kernel_tune.yml
@ -47,16 +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: vm.overcommit_ratio
# - name: Set 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/04-ip_httpd.conf
# sysctl_file: /etc/sysctl.d/04-ip_httpd.conf
# - name: Set 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/04-ip_httpd.conf sysctl_file: /etc/sysctl.d/04-ip_httpd.conf

View file

@ -3,7 +3,7 @@
# Защита на случай TCP Syn атак # Защита на случай TCP Syn атак
# Согласно рекомендациям разработчиков ядра, этот режим лучше отключить. # Согласно рекомендациям разработчиков ядра, этот режим лучше отключить.
# http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt # http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
- name: Set net.ipv4.tcp_syncookies - name: net.ipv4.tcp_syncookies
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_syncookies name: net.ipv4.tcp_syncookies
value: 0 value: 0
@ -20,68 +20,68 @@
# Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума, # Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума,
# заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения. # заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения.
# На приём TCP пакетов # На приём TCP пакетов
- name: Set net.ipv4.tcp_rmem - name: net.ipv4.tcp_rmem
ansible.posix.sysctl: ansible.posix.sysctl:
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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# На передачу TCP пакетов # На передачу TCP пакетов
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Для TCP протокола в целом # Для TCP протокола в целом
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Для UDP протокола в целом # Для UDP протокола в целом
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать. # Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента. # Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Увеличим возможное количество сокетов в состоянии TIME_WAIT. # Увеличим возможное количество сокетов в состоянии TIME_WAIT.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным. # Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
- name: Set 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
@ -97,7 +97,7 @@
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной. # Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
# Партнер может не закрыть это соединение никогда. # Партнер может не закрыть это соединение никогда.
- name: Set net.ipv4.tcp_fin_timeout - name: net.ipv4.tcp_fin_timeout
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_fin_timeout name: net.ipv4.tcp_fin_timeout
value: 3 value: 3
@ -105,28 +105,28 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной # Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
# пропускной способности некоторых сетей # пропускной способности некоторых сетей
- name: Set net.ipv4.tcp_sack - name: net.ipv4.tcp_sack
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_sack name: net.ipv4.tcp_sack
value: 1 value: 1
state: present state: present
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP. # Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle). # Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle).
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне. # Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне.
- name: Set 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
@ -134,21 +134,21 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE. # Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек) # Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
- name: Set net.ipv4.tcp_keepalive_time - name: net.ipv4.tcp_keepalive_time
ansible.posix.sysctl: ansible.posix.sysctl:
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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Интервал, с которым слать keepalive пакеты (в сек) # Интервал, с которым слать keepalive пакеты (в сек)
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# После скольки неудачных пробах считать соединение разорванным # После скольки неудачных пробах считать соединение разорванным
- name: Set 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
@ -156,21 +156,21 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях, # Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
# в которых долгое время не было трафика. # в которых долгое время не было трафика.
- name: Set net.ipv4.tcp_slow_start_after_idle - name: net.ipv4.tcp_slow_start_after_idle
ansible.posix.sysctl: ansible.posix.sysctl:
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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений. # Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок. # Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок.
- name: Set 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
@ -180,7 +180,7 @@
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC. # Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
# Включён по умолчанию в linux ядре начиная с версии 2.6.19 # Включён по умолчанию в linux ядре начиная с версии 2.6.19
# BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал # BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал
- name: Set net.ipv4.tcp_congestion_control - name: net.ipv4.tcp_congestion_control
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_congestion_control name: net.ipv4.tcp_congestion_control
value: bbr value: bbr
@ -188,7 +188,7 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Параметр определяет дисциплину обработки очередей # Параметр определяет дисциплину обработки очередей
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR # FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
- name: Set 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"
@ -196,7 +196,7 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии # Не сохранять результаты измерений TCP соединения в кеше при его закрытии
- name: Set net.ipv4.tcp_no_metrics_save - name: net.ipv4.tcp_no_metrics_save
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.ipv4.tcp_no_metrics_save name: net.ipv4.tcp_no_metrics_save
value: 1 value: 1
@ -204,28 +204,28 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь # Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
# пакетов при передаче в рамках TCP подключения) # пакетов при передаче в рамках TCP подключения)
- name: Set net.ipv4.tcp_window_scaling - name: net.ipv4.tcp_window_scaling
ansible.posix.sysctl: ansible.posix.sysctl:
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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Защита от TIME_WAIT атак. # Защита от TIME_WAIT атак.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес. # Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес.
- name: Set 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/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Не отвечаем на ошибочно сформированные сообщения. # Не отвечаем на ошибочно сформированные сообщения.
- name: Set 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
@ -233,30 +233,9 @@
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
# Максимальное число открытых сокетов, ждущих соединения. # Максимальное число открытых сокетов, ждущих соединения.
# Максимум в CentOS 7 # Максимум в CentOS 7
- name: Set net.core.somaxconn - name: net.core.somaxconn
ansible.posix.sysctl: ansible.posix.sysctl:
name: net.core.somaxconn name: net.core.somaxconn
value: 65535 value: 65535
state: present state: present
sysctl_file: /etc/sysctl.d/02-tcp.conf sysctl_file: /etc/sysctl.d/02-tcp.conf
- name: Set net.netfilter.nf_conntrack_max
ansible.posix.sysctl:
name: net.netfilter.nf_conntrack_max
value: 524288
state: present
sysctl_file: /etc/sysctl.d/02-udp.conf
- name: Set net.netfilter.nf_conntrack_udp_timeout
ansible.posix.sysctl:
name: net.netfilter.nf_conntrack_udp_timeout
value: 10
state: present
sysctl_file: /etc/sysctl.d/02-udp.conf
- name: Set net.netfilter.nf_conntrack_udp_timeout_stream
ansible.posix.sysctl:
name: net.netfilter.nf_conntrack_udp_timeout_stream
value: 30
state: present
sysctl_file: /etc/sysctl.d/02-udp.conf

View file

@ -1,65 +0,0 @@
/var/log/cron {
daily
rotate {{ logrotate_interval }}
size 50M
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
endscript
}
/var/log/maillog {
daily
rotate {{ logrotate_interval }}
size 50M
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
endscript
}
/var/log/secure {
daily
rotate {{ logrotate_interval }}
size 50M
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
endscript
}
/var/log/spooler
{
daily
rotate {{ logrotate_interval }}
compress
missingok
notifempty
sharedscripts
postrotate
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
endscript
}
/var/log/messages {
daily
rotate {{ logrotate_interval }}
size 50M
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/usr/bin/systemctl reload rsyslog.service 2> /dev/null || true
endscript
}

View file

@ -1,6 +1,6 @@
--- ---
# Группа sudo по умолчанию — переопределяется в group_vars для конкретной ОС # Группа sudo по умолчанию — переопределяется в group_vars для конкретной ОС
users_sudo_group: wheel users_sudo_group: sudo
# По умолчанию разрешены все группы администраторов (переопределяется для конкретного хоста/группы) # По умолчанию разрешены все группы администраторов (переопределяется для конкретного хоста/группы)
users_allowed_admin_groups: users_allowed_admin_groups: