Ansible
Playbook работает для Debian 10+, Ubuntu 20.04+ и Альт Сервер 10+. Необходим доступ от целевой машины к репозитариям дистрибутива.
1. Установить Ansible:
apt install -y ansible tar wgetapt-get install -y ansible tar wgetdnf install -y ansible tar wget2. Установить Docker и Docker Compose:
Установить Docker из репозиториев дистрибутива:
apt install -y docker.ioapt-get install -y docker-enginednf install -y docker-ceПосле установки необходимо запустить службу Docker и настроить её автозапуск:
systemctl enable --now dockerУстановить Docker Compose из официального репозитория и сделать файл исполняемым:
curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose && \
chmod +x /usr/bin/docker-composeЕсли доступ к https://docker.mitigator.ru ведется через прокси, нужно настроить Docker.
Если в системе отсутствует /etc/docker/daemon.json, будет установлен следующий:
daemon.json.
Существующий файл изменен не будет, в этом случае следует совместить конфигурации вручную.
3. Скачать и распаковать необходимые файлы:
wget https://docs.mitigator.ru/v25.06/ansible/mitigator.tar -O- | tar -x && \
wget https://docs.mitigator.ru/v25.06/ansible/config.yml -O mitigator/config.yml4. Отредактировать mitigator/config.yml:
mitigator_arch: "nehalem"
mitigator_nic_driver: vfio-pci
mitigator_nics:
- "0b:00.0"
- "13:00.0"
mitigator_hugepage_size: "2M"
mitigator_hugepage_nr: 1536
mitigator_nr_policies: 100
# MITIGATOR version (required). Versions: https://docs.mitigator.ru/install/versions/
mitigator_version: "" # vXX.YY.Z
# IP address for container-to-host access (required).
# It is usually the IP address of the server’s MGMT interface.
# Do not use domain names: connectivity will break in case of a DNS failure.
mitigator_host_address: "" # 192.0.2.1
# IP address or domain name for API and UI clients.
# Defaults to the value of `mitigator_host_address`.
mitigator_public_address: "" # 192.0.2.1
# You must log in to the image repository docker.mitigator.ru. Set the login and password (required)
mitigator_registry_user: "" # guest
mitigator_registry_pass: "" # mitigator
mitigator_pull_images: y-
mitigator_arch: микроархитектура процессора, для которой будет загружена оптимизированная сборка обработчика пакетов:nehalemилиhaswell(указания по выбору). -
mitigator_nic_driver: драйвер сетевой карты для DPDK (подробнее о выборе). -
Настройки обработчика пакетов:
mitigator_nics: сетевые порты с указанием PCI-адресов и ядер процессора. Подразумевается, что они перечислены в порядке ext0, int0, ext1, int1 и т.д. Портов может быть нечетное количество.
-
mitigator_hugepage_size: размер страницы (2Mили1G);mitigator_hugepage_nr: количество страниц.
-
mitigator_nr_policies: максимальное количество политик защиты. -
Обязательно указать версию MITIGATOR.
-
При первом запуске и при
mitigator_pull_images: yбудет выполнена загрузка образов MITIGATOR, для чего нужно задать логин и пароль:mitigator_registry_userиmitigator_registry_pass. -
Можно настроить прокси для Docker´а и компонент MITIGATOR.
5. Развернуть MITIGATOR на целевую машину mitigator.local, базовая команда:
ansible-playbook -i mitigator.local, mitigator/mitigator.ymlЗапятая после имени сервера — не опечатка.
-
Если плэйбук выполняется на той же машине, куда устанавливается MITIGATOR, добавьте
--connection=local. -
Иначе, если MITIGATOR устанавливается на удаленном сервере:
- Если имя пользователя для подключения отличается от текущего, добавьте
--user=login(гдеlogin— имя пользователя). - Если для подключения нужен пароль, установите
sshpassи добавьте--ask-pass(будет запрошен пароль). - Если подключение происходит не от
root, добавьте--becomeи--ask-become-pass(будет запрошен пароль дляsudoилиsu).
- Если имя пользователя для подключения отличается от текущего, добавьте
Playbook безопасно исполнять повторно в случае проблем.
В конце установки машина перезагрузится. При выполнении playbook на той же машине, куда устанавливается MITIGATOR, необходимо самостоятельно проконтролировать успешность запуска systemd-сервиса mitigator.
Дополнение
1. Задания в роли ансибла разделены на 4 «тега»: checks, system, hugepages, mitigator.
Задания под тегом, соответственно, предназначены для проверки конфигурации, настройки системы, настройки hugepages и настройки непосредственно MITIGATOR. При необходимости перезапустить роль и перенастроить установку только частично, можно запустить playbook с необходимым набором тегов, например:
ansible-playbook --become --ask-become-pass \
--tags "system,hugepages" \
-i mitigator.local, mitigator/mitigator.ymlПосле установки и запуска настроить систему для её стабильной и безопасной работы.