# Quick Start (самостоятельное развёртывание) Пошаговая инструкция для самостоятельного развёртывания сценария из этого репозитория на VK Cloud. ## 1. Подготовка - Аккаунт VK Cloud с включённым API/CLI-доступом, `project_id`. - SSH-ключ загружен в VK Cloud (имя ключа понадобится в `terraform.tfvars`). - Установлены `terraform` (≥1.13) и `ansible`. ## 2. Клонировать репозиторий и задать credentials Отредактировать `terraform/terraform.tfvars`: ``` username = "<ваш VK Cloud логин>" password = "<пароль>" project_id = "<ваш project_id>" ssh_key_name = "<имя загруженного SSH-ключа>" ``` ## 3. (Опционально) масштабирование По умолчанию: 2 роутера × 3 интерфейса (1 публичный + 2 приватных). Меняется без правки кода — либо раскомментировать нужные строки в `terraform.tfvars`, либо через переменные окружения: ```bash export TF_VAR_router_count=4 export TF_VAR_private_interface_count=3 ``` ## 4. Развернуть ```bash cd terraform terraform init terraform plan terraform apply ``` Каждая ВМ сама донастроит сеть при первой загрузке (`network-init.sh.tpl`) и перезагрузится. ## 5. Настроить Ansible > ⚠️ Важно: `ansible/inventory.ini` и роли (`base`/`frr_router`/`keepalived`) пока жёстко рассчитаны на **2** роутера с интерфейсами `eth0`/`eth1` (VRRP-схема) — под новую N-роутерную/3-NIC архитектуру ещё не адаптированы. Для дефолтных значений (`router_count=2`, `private_interface_count=2`) впишите реальные `wan_ip`/`lan_ip`/GRE/BGP-параметры роутеров в `inventory.ini` вручную. При масштабировании выше 2 роутеров или интерфейсов Ansible-слой нужно дорабатывать отдельно. ```bash cd ansible ansible-playbook -i inventory.ini site.yml ``` ## 6. Проверить - SSH на публичные IP роутеров, `cat /var/log/network-config.log` — лог настройки интерфейсов. - `ip a`, `networkctl` — убедиться, что `eth0` (WAN) и `eth1..ethN` (приватные) подняты корректно. - FRR/strongSwan/keepalived статусы — см. раздел "Under the Hood" в [README.md](../README.md). ## Локальная офлайн-проверка поставки (без облака) ```bash terraform/tests/setup-local-terraform.sh venv/bin/pytest terraform/tests -v ```