# Как развернуть локальные ВМ с помощью Rediacc

Тестирование инфраструктуры локально перед развёртыванием в продакшн экономит время и предотвращает ошибки конфигурации. В этом руководстве вы развернёте минимальный кластер ВМ на вашей рабочей станции, проверите подключение, выполните команды по SSH и удалите всё. По завершении у вас будет воспроизводимая локальная среда разработки.

## Предварительные требования

- Рабочая станция Linux или macOS с включённой аппаратной виртуализацией
- Установленная CLI `rdc` и инициализированная конфигурация с локальным адаптером
- Установленный KVM/libvirt (Linux) или QEMU (macOS), см. [Экспериментальные ВМ](/ru/docs/experimental-vms) для инструкций по настройке

## Интерактивная запись

![Tutorial: rdc ops provisioning](/assets/tutorials/ops-tutorial.cast)

### Шаг 1: Проверка системных требований

Перед развёртыванием убедитесь, что ваша рабочая станция поддерживает виртуализацию и необходимые пакеты установлены.

```bash
rdc ops check
```

Rediacc проверяет аппаратную виртуализацию (VT-x/AMD-V), необходимые пакеты (libvirt, QEMU) и сетевую конфигурацию. Все проверки должны пройти успешно, прежде чем вы сможете создавать ВМ.

### Шаг 2: Развёртывание минимального кластера ВМ

```bash
rdc ops up --basic --skip-orchestration
```

Создаёт кластер из двух ВМ: **мостовую** ВМ (1 CPU, 1024 МБ RAM, 8 ГБ диск) и **рабочую** ВМ (2 CPU, 4096 МБ RAM, 16 ГБ диск). Флаг `--skip-orchestration` пропускает развёртывание платформы Rediacc, предоставляя вам голые ВМ только с SSH-доступом.

> **Примечание:** При первом развёртывании загружаются базовые образы, что занимает больше времени. Последующие запуски используют кэшированные образы.

### Шаг 3: Проверка состояния кластера

```bash
rdc ops status
```

Отображает состояние каждой ВМ в кластере, IP-адреса, распределение ресурсов и статус выполнения. Обе ВМ должны отображаться как работающие.

### Шаг 4: Выполнение команд на ВМ

```bash
rdc ops ssh --vm-id 1 -c hostname
rdc ops ssh --vm-id 1 -c "uname -a"
```

Выполняет команды на мостовой ВМ (ID `1`) по SSH. Используйте `-c` для передачи команды. Для интерактивной оболочки опустите `-c`: `rdc ops ssh --vm-id 1`.

### Шаг 5: Удаление кластера

Когда закончите, уничтожьте все ВМ и освободите ресурсы.

```bash
rdc ops down
```

Удаляет все ВМ и очищает сеть. Кластер можно развернуть заново в любое время с помощью `rdc ops up`.

## Устранение неполадок

**"KVM not available" или "hardware virtualization not supported"**
Убедитесь, что виртуализация включена в настройках BIOS/UEFI. В Linux проверьте с помощью `lscpu | grep Virtualization`. В WSL2 вложенная виртуализация требует определённых флагов ядра.

**"libvirt daemon not running"**
Запустите службу libvirt: `sudo systemctl start libvirtd`. На macOS убедитесь, что QEMU установлен через Homebrew: `brew install qemu`.

**"Insufficient memory for VM allocation"**
Базовый кластер требует не менее 6 ГБ свободной оперативной памяти (1 ГБ мост + 4 ГБ рабочая + накладные расходы). Закройте другие ресурсоёмкие приложения или уменьшите характеристики ВМ.

## Следующие шаги

Вы развернули локальный кластер ВМ, выполнили команды по SSH и удалили его. Для развёртывания реальной инфраструктуры:

- [Экспериментальные ВМ](/ru/docs/experimental-vms), полный справочник по командам `rdc ops`, конфигурации ВМ и поддержке платформ
- [Руководство: Настройка машин](/ru/docs/tutorial-setup), регистрация удалённых машин и настройка инфраструктуры
- [Быстрый старт](/ru/docs/quick-start), развёртывание контейнеризированного сервиса от начала до конца