Files

7.0 KiB
Raw Permalink Blame History

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 69 — из 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 69), вид совместимости, 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

Дальше