177 lines
7.0 KiB
Markdown
177 lines
7.0 KiB
Markdown
**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
|