Files
CloudRouterAdvanced/docs/QUICKSTART.md
T

71 lines
4.2 KiB
Markdown
Raw Normal View History

# 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-ключа>"
private_network_cidrs = [
"10.90.0.0/29",
"10.90.0.8/29",
]
```
`private_network_cidrs` — обязательная переменная без значения по умолчанию: один CIDR-префикс на каждую приватную сеть, к которой будут подключены интерфейсы роутеров (один префикс = одна общая сеть = один приватный интерфейс на роутер). Автоматической нарезки нет — префиксы не должны пересекаться и должны вмещать минимум `router_count + 2` адреса.
UUID системной Security Group `default` (уникален для каждого проекта VK Cloud) вычисляется автоматически через `data.vkcs_networking_secgroup`, вручную задавать не нужно. Переменная `default_security_group_id` — override только на крайний случай (нестандартное имя/SDN группы в проекте), не для обычного использования.
## 3. (Опционально) масштабирование
По умолчанию: 2 роутера × 3 интерфейса (1 публичный + 2 приватных, по числу префиксов в `private_network_cidrs`). Меняется без правки кода — либо через `terraform.tfvars`, либо через переменные окружения:
```bash
export TF_VAR_router_count=4
export TF_VAR_private_network_cidrs='["10.90.0.0/28","10.90.0.16/28","10.90.0.32/28"]'
```
## 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-роутерную/N-NIC архитектуру ещё не адаптированы. Для дефолтных значений (`router_count=2`, 2 записи в `private_network_cidrs`) впишите реальные `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
```