Ansible

Playbook работает для Debian 10+, Ubuntu 20.04+ и Альт Сервер 10+. Необходим доступ от целевой машины к репозитариям дистрибутива.

1. Установить Ansible:

apt install -y ansible tar wget
apt-get install -y ansible tar wget
dnf install -y ansible tar wget

2. Установить Docker и Docker Compose:

Установить Docker из репозиториев дистрибутива:

apt install -y docker.io
apt-get install -y docker-engine
dnf install -y docker-ce
Внимание

После установки необходимо запустить службу Docker и настроить её автозапуск:

systemctl enable --now docker

Установить Docker Compose из официального репозитория и сделать файл исполняемым:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
Внимание

Работоспособность MITIGATOR с Docker Compose версии v2 не гарантируется.

Информация

Если доступ к https://docker.mitigator.ru ведется через прокси, нужно настроить Docker.

Если в системе отсутствует /etc/docker/daemon.json, будет установлен следующий: daemon.json.

Существующий файл изменен не будет, в этом случае следует совместить конфигурации вручную.

3. Скачать и распаковать необходимые файлы:

wget https://docs.mitigator.ru/master/ansible/mitigator.tar -O- | tar -x
wget https://docs.mitigator.ru/master/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

# https://docs.mitigator.ru/install/versions/#список-минорных-версий
mitigator_version: v23.06.6

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.

  • При первом запуске и при 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

После установки и запуска настроить систему для её стабильной и безопасной работы.