7.0 KiB
Language / Язык: English | Русский
Быстрый старт
Поднимите локальную лабораторию vSphere, пройдите аутентификацию и выполните первый цикл чтения/мутации против симулятора.
Требования
- Docker и Docker Compose
make(необязательно, но используется в документированных командах)
Python, линтеры и тесты запускаются внутри контейнеров. Для повседневной работы локальный Python-инструментарий не нужен.
Выберите путь
| Путь | Когда использовать |
|---|---|
| Опубликованный образ | Самая быстрая лаборатория на inecs/vmware-api-simulator |
| Helm / Kubernetes | Установка в кластер с Ingress + Let's Encrypt |
| Development checkout | Вклад в код / bind-mount исходников |
1a. Опубликованный образ (Docker Hub)
Использует docker-compose.release.yml — PostgreSQL +
runtime-симулятор + HTTPS gateway с Hub. Сборка исходников не нужна, но Compose
нужно запускать из checkout этого репозитория, чтобы смонтировались
docker/gateway/ и docker/tls/. Seed выполняется автоматически после готовности
симулятора.
# из git checkout этого репозитория (нужны docker/gateway и docker/tls)
docker compose -f docker-compose.release.yml pull
docker compose -f docker-compose.release.yml up -d --wait
Закрепить версию:
IMAGE_TAG=0.1.0 docker compose -f docker-compose.release.yml up -d --wait
Make-хелперы (git checkout):
make release-up
# опциональный повторный seed: make release-seed PROFILE=small
| Порт хоста | Сервис |
|---|---|
443 |
HTTPS gateway (основная точка входа vCenter) |
80 |
HTTP lab face |
5434 |
PostgreSQL (только localhost) |
Миграции выполняются автоматически через one-shot сервис migrate.
Далее — с Дождитесь готовности.
1b. Development checkout
make install
make up
Сервисы (полная картина — Порты):
| Порт хоста | Сервис |
|---|---|
443 |
HTTPS gateway (nginx) → simulator |
80 |
HTTP lab face |
5434 |
PostgreSQL (только localhost) |
Миграции применяются автоматически до готовности симулятора. Внутренний
процесс FastAPI слушает 8080 и на хост не публикуется.
2. Дождитесь готовности
curl -sk https://localhost/health/live
curl -sk https://localhost/health/ready
/health/ready возвращает HTTP 503, пока PostgreSQL недоступен и пока
не применена последняя упакованная миграция.
3. Засейте профиль
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.
4. Проверьте версию API
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.
5. Аутентификация
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):
curl -sk -H "vmware-api-session-id: $SID" https://localhost/api/vcenter/vm
Подробности: Аутентификация.
6. Список VM и включение одной
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. Опрашивайте задачу до завершения:
curl -sk -H "vmware-api-session-id: $SID" \
"https://localhost/api/cis/tasks/${TASK_ID}" | jq .
7. Откройте Web UI
Откройте https://localhost/ — интерактивная консоль, каталог эндпоинтов (vSphere majors 6–9), вид совместимости, apply runtime-контракта и управление demo-cluster. Скриншоты и полный список возможностей — Web UI.
8. Попробуйте клиентскую библиотеку
# 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
Другие стеки: Клиенты и examples/.
Готово, когда…
/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
Дальше
- Конфигурация — env vars, workers, размер seed
- Версии API — hot-swap catalog majors 6–9
- Клиенты — Python, Ansible, Terraform, Pulumi
- Эксплуатация — reseed, migrate, upgrades