Files
vmware-api-simulator/docs/ru/seed-profiles.md
T
inecs f8d3cbdd59 Initial commit: VMware vSphere API simulator scaffold.
Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API
contracts, docs, client examples, and the unit/integration/compatibility
test suite for local client and tooling labs without a real vCenter.
2026-07-18 04:42:11 +03:00

4.7 KiB

Language / Язык: English | Русский

Профили seed

Seed атомарно заменяет инвентарь vSphere, используя детерминированные MOID, чтобы лаборатории были воспроизводимыми. Определения находятся в app/vsphere/profiles.py.

make seed                          # по умолчанию: large (10 хостов / 1000 ВМ)
VSPHERE_PROFILE=small make seed

Профили

Профиль Содержимое
small 3 хоста ESXi, 2 datastore, 2 сети, один datacenter/cluster/resource-pool и пять именованных ВМ: web-01, web-02, db-01, app-01, jumpbox (смешанные состояния питания). Используется unit/integration-тестами.
large (по умолчанию) Настраиваемое число хостов/ВМ (SEED_VSPHERE_LARGE_HOSTS по умолчанию 10, SEED_VSPHERE_LARGE_VMS по умолчанию 1000), 4 datastore, 4 сети/portgroup, VmwareDistributedVirtualSwitch, папки ВМ production/staging/templates. Первые пять ВМ совпадают по именам с small для стабильности кулинарных книг; остальные генерируются (префиксы ролей web-, app-, db-, cache-, batch-, jump-, ci-, mon-, log-, ml-).
demo-cluster large с 20 хостами / 1000 ВМ — набор данных в форме предприятия для демо UI.

Каждый профиль также загружает четыре лабораторные учётные записи, права, привязанные к ролям (см. Авторизация), и — там, где существуют таблицы платформы — стартовую content library, категории/теги тегирования и метаданные файлов datastore (seed_platform_extras).

Примеры

make seed                                   # large, 10 хостов / 1000 ВМ
VSPHERE_PROFILE=small make seed
VSPHERE_PROFILE=demo-cluster make seed
VSPHERE_PROFILE=large VSPHERE_HOSTS=20 VSPHERE_VMS=5000 make seed

Либо запустите CLI seed напрямую с базовыми переменными окружения (например, из скрипта без make или на шаге CI):

SEED_VSPHERE_PROFILE=small \
  docker compose run --rm --entrypoint python simulator -m app.simulation.seed_cli

Форма топологии

Каждый профиль строит один и тот же скелет (папка DatacentersDatacenter → подпапки host/vm/datastore/network → один ClusterComputeResource + ResourcePool), затем масштабирует хосты, datastore, portgroup и ВМ. MOID ВМ имеют вид vm-{100+n}; MOID хостов — host-{10+n}; каждая ВМ несёт одинаковую форму оборудования, используемую как REST (hardware/*), так и SOAP (VirtualMachineConfigInfo) ответами — NIC, диски, CD-ROM, порядок загрузки и синтетический guest IP/файловая система.

Демо-кластер через UI

Интерактивная консоль может загружать демо-набор данных и делать reseed по запросу:

  • POST /ui/api/demo/load — загружает demo-cluster
  • POST /ui/api/demo/unload — очищает состояние, созданное через API, затем загружает small
  • GET /ui/api/demo/state
  • POST /ui/api/vsphere/seed?profile=small|large|demo-cluster — reseed любого профиля

Эти вспомогательные эндпоинты UI ориентированы на разработку и сегодня не имеют отдельной аутентификации. Считайте их только лабораторными органами управления.

Reseed в сравнении с состоянием клиентов

Terraform, Pulumi и Ansible могут по-прежнему хранить состояние ресурсов после reseed (MOID и имена ВМ могут измениться). Выполните refresh или destroy/recreate внешнего состояния после замены инвентаря PostgreSQL. См. Эксплуатация и Клиенты.