**Language / Язык:** [English](../getting-started.md) | [Русский](getting-started.md) # Быстрый старт Поднимите локальную лабораторию vSphere, пройдите аутентификацию и выполните первый цикл чтения/мутации против симулятора. ## Требования - Docker и Docker Compose - `make` (необязательно, но используется в документированных командах) Python, линтеры и тесты запускаются **внутри** контейнеров. Для повседневной работы локальный Python-инструментарий не нужен. ## Выберите путь | Путь | Когда использовать | |---|---| | [Опубликованный образ](#1a-опубликованный-образ-docker-hub) | Самая быстрая лаборатория на `inecs/vmware-api-simulator` | | [Helm / Kubernetes](kubernetes.md) | Установка в кластер с Ingress + Let's Encrypt | | [Development checkout](#1b-development-checkout) | Вклад в код / bind-mount исходников | ## 1a. Опубликованный образ (Docker Hub) Использует [`docker-compose.release.yml`](../../docker-compose.release.yml) — PostgreSQL + runtime-симулятор + HTTPS gateway с Hub. Сборка исходников не нужна, но Compose нужно запускать из **checkout этого репозитория**, чтобы смонтировались `docker/gateway/` и `docker/tls/`. Seed выполняется автоматически после готовности симулятора. ```bash # из git checkout этого репозитория (нужны docker/gateway и docker/tls) docker compose -f docker-compose.release.yml pull docker compose -f docker-compose.release.yml up -d --wait ``` Закрепить версию: ```bash IMAGE_TAG=0.1.0 docker compose -f docker-compose.release.yml up -d --wait ``` Make-хелперы (git checkout): ```bash make release-up # опциональный повторный seed: make release-seed PROFILE=small ``` | Порт хоста | Сервис | |---|---| | `443` | HTTPS gateway (основная точка входа vCenter) | | `80` | HTTP lab face | | `5434` | PostgreSQL (только localhost) | Миграции выполняются автоматически через one-shot сервис `migrate`. Далее — с [Дождитесь готовности](#2-дождитесь-готовности). ## 1b. Development checkout ```bash make install make up ``` Сервисы (полная картина — [Порты](ports.md)): | Порт хоста | Сервис | |---|---| | `443` | HTTPS gateway (nginx) → simulator | | `80` | HTTP lab face | | `5434` | PostgreSQL (только localhost) | Миграции применяются автоматически до готовности симулятора. Внутренний процесс FastAPI слушает `8080` и на хост не публикуется. ## 2. Дождитесь готовности ```bash curl -sk https://localhost/health/live curl -sk https://localhost/health/ready ``` `/health/ready` возвращает HTTP 503, пока PostgreSQL недоступен **и** пока не применена последняя упакованная миграция. ## 3. Засейте профиль ```bash make seed # default: large — 10 hosts / 1000 VMs VSPHERE_PROFILE=small make seed ``` `small` создаёт 3-хостовый кластер с пятью именованными VM (`web-01`, `web-02`, `db-01`, `app-01`, `jumpbox`), datastores, standard portgroup и четырьмя лабораторными принципалами. Другие размеры — [Профили seed](seed-profiles.md). ## 4. Проверьте версию API ```bash curl -sk https://localhost/api/appliance/system/version | jq . ``` Catalog major при холодном старте по умолчанию — **9** (vSphere 8.0 U2 / поверхность Automation 9.1) в Docker Compose. Просмотр и hot-swap majors 6–9 — из Web UI или [Версии API](api-versions.md). ## 5. Аутентификация ```bash SID=$(curl -sk -u 'administrator@vsphere.local:VMware1!' \ -X POST https://localhost/api/session | tr -d '"') echo "$SID" ``` `SID` — это `vmware-api-session-id`. Передавайте его в каждом последующем вызове как заголовок (или опирайтесь на cookie, которую также выставляет ответ login): ```bash curl -sk -H "vmware-api-session-id: $SID" https://localhost/api/vcenter/vm ``` Подробности: [Аутентификация](authentication.md). ## 6. Список VM и включение одной ```bash curl -sk -H "vmware-api-session-id: $SID" \ https://localhost/api/vcenter/vm | jq . curl -sk -X POST -H "vmware-api-session-id: $SID" \ "https://localhost/api/vcenter/vm/vm-104/power?action=start" | jq . ``` Power-действия и другие длительные операции возвращают CIS task id. Опрашивайте задачу до завершения: ```bash curl -sk -H "vmware-api-session-id: $SID" \ "https://localhost/api/cis/tasks/${TASK_ID}" | jq . ``` ## 7. Откройте Web UI Откройте [https://localhost/](https://localhost/) — интерактивная консоль, каталог эндпоинтов (vSphere majors 6–9), вид совместимости, apply runtime-контракта и управление demo-cluster. Скриншоты и полный список возможностей — [Web UI](web-ui.md). ## 8. Попробуйте клиентскую библиотеку ```bash # from the repository root after make up + seed python examples/python/vsphere_rest_smoke.py https://localhost python examples/python/vsphere_soap_smoke.py https://localhost ``` Другие стеки: [Клиенты](clients.md) и [`examples/`](../../examples/README.ru.md). ## Готово, когда… - `/health/ready` возвращает `{"status": "ok"}` (или эквивалентное OK-тело) - `/api/appliance/system/version` сообщает версию активного catalog major - Session login успешен для `administrator@vsphere.local` - `/api/vcenter/vm` перечисляет seeded VM - Power-действие возвращает task id, который доходит до `SUCCEEDED` ## Дальше - [Конфигурация](configuration.md) — env vars, workers, размер seed - [Версии API](api-versions.md) — hot-swap catalog majors 6–9 - [Клиенты](clients.md) — Python, Ansible, Terraform, Pulumi - [Эксплуатация](operations.md) — reseed, migrate, upgrades