Playbook работает для Debian 10+ и Ubuntu 16.04+. Необходим доступ от целевой машины к репозитариям дистрибутива.
1. Установить Ansible (пример для Debian/Ubuntu):
apt install -y ansible tar wget
2. Установить Docker и Docker Compose:
Следуя официальной документации по установке для вашей ОС:
Следует устанавливать Docker Compose версии v1. Работоспособность MITIGATOR с Docker Compose версии v2 не гарантируется.
Если в системе отсутствует /etc/docker/daemon.json
, будет установлен следующий:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "2"
}
}
Существующий файл изменен не будет, в этом случае следует совместить конфигурации вручную.
3. Скачать и распаковать необходимые файлы:
wget https://docs.mitigator.ru/v22.12/ansible/mitigator.tar -O- | tar -x
wget https://docs.mitigator.ru/v22.12/ansible/config.yml -O mitigator/config.yml
4. Отредактировать 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: latest
mitigator_registry_user: guest
mitigator_registry_pass: mitigator
mitigator_pull_images: y
#mitigator_http_proxy: ""
#mitigator_https_proxy: ""
#mitigator_no_proxy: ""
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
(latest
по умолчанию).
При первом запуске и при mitigator_pull_images: y
будет выполнена загрузка
образов MITIGATOR, для чего нужно задать логин и пароль:
mitigator_registry_user
и mitigator_registry_pass
.
Можно настроить прокси для Docker´а и компонент MITIGATOR.
5. Развернуть MITIGATOR на целевую машину mitigator.local
,
куда есть доступ по SSH:
ansible-playbook --become --ask-become-pass \
-i mitigator.local, mitigator/mitigator.yml
Запятая после имени хоста — не опечатка. Если имя пользователя SSH
отличается от локального, например, login
, добавляется параметр -u login
.
--become
и --ask-become-pass
используются для повышения привилегий, когда
подключение осуществляется не напрямую через пользователя root
(необходимо для выполнения части задач в процессе инсталяции).
В конце установки машина перезагрузится.
Playbook безопасно исполнять повторно в случае проблем.
1. Задания в роли ансибла разделены на 4 «тега»: checks, system, hugepages, mitigator.
Задания под тегом, соответственно, предназначены для проверки конфигурации, настройки системы, настройки hugepages и настройки непосредственно MITIGATOR. При необходимости перезапустить роль и перенастроить установку только частично, можно запустить playbook с необходимым набором тегов, например:
ansible-playbook --become --ask-become-pass \
--tags "system,hugepages" \
-i mitigator.local, mitigator/mitigator.yml
После установки и запуска настроить систему для её стабильной и безопасной работы.