- Implement timewebcloud provider with DeployAgent, RemoveAgent, ListDeployedAgentNames - Add minimal HTTP API client for Timeweb Cloud (create/list/delete servers) - Register provider in main.go with CLI flags - Add timeweb-list and timeweb-tester utilities - Include Dockerfile and docker-compose.yml for deployment - Update DEPLOY.md with verified OS/preset IDs
3.2 KiB
3.2 KiB
Инструкция по развертыванию
1. Получение API-токена Timeweb Cloud
- Войдите в панель управления Timeweb Cloud: https://timeweb.cloud
- Перейдите в раздел "API и Terraform".
- Создайте новый токен:
- Задайте имя (например,
woodpecker-autoscaler). - Выберите права: управление серверами (Servers).
- Можно отключить подтверждение через Telegram для автоматизации.
- Сохраните токен — он отображается только один раз.
- Задайте имя (например,
2. Определение параметров сервера
Проверенные параметры для CI-агента:
| Параметр | Значение | Описание |
|---|---|---|
| OS ID | 79 |
Ubuntu 22.04 LTS |
| Preset ID | 2451 |
Cloud-40 (2 CPU, 2GB RAM, 40GB NVMe, 800 руб/мес) |
| Availability Zone | spb-1 |
Санкт-Петербург (ru-1) |
Другие варианты:
- Ubuntu 24.04:
os_id=99 - Debian 12:
os_id=95 - Москва:
zone=msk-1,preset_id=4799(Cloud MSK 40) - Новосибирск:
zone=nsk-1,preset_id=4241(Cloud NSK 40)
Для получения полного списка:
./timeweb-list
3. Настройка Woodpecker Autoscaler
Создайте .env файл:
# Woodpecker Server
WOODPECKER_SERVER=http://woodpecker-server:8000
WOODPECKER_TOKEN=your-woodpecker-admin-token
WOODPECKER_GRPC_ADDR=woodpecker-server:9000
WOODPECKER_GRPC_SECURE=false
# Autoscaler
WOODPECKER_POOL_ID=twcloud
WOODPECKER_MIN_AGENTS=0
WOODPECKER_MAX_AGENTS=5
WOODPECKER_WORKFLOWS_PER_AGENT=2
WOODPECKER_AGENT_IDLE_TIMEOUT=10m
WOODPECKER_RECONCILIATION_INTERVAL=1m
WOODPECKER_PROVIDER=timewebcloud
# Timeweb Cloud
WOODPECKER_TIMEWEBCLOUD_API_TOKEN=your-jwt-token
WOODPECKER_TIMEWEBCLOUD_OS_ID=79
WOODPECKER_TIMEWEBCLOUD_PRESET_ID=2451
WOODPECKER_TIMEWEBCLOUD_AVAILABILITY_ZONE=spb-1
# Опционально: SSH-ключи для доступа к агентам
# WOODPECKER_TIMEWEBCLOUD_SSH_KEY_IDS=1234
4. Запуск через Docker Compose
docker-compose up -d
Просмотр логов:
docker-compose logs -f woodpecker-autoscaler
5. Проверка
- Запушьте коммит в репозиторий, подключенный к Woodpecker.
- В логах autoscaler должно появиться
create agentиcreate server. - В панели Timeweb Cloud должен создаться новый сервер с именем
pool-twcloud-agent-<random>. - Через 2-3 минуты агент подключится к серверу и заберет задачу.
- После завершения задачи и истечения
AGENT_IDLE_TIMEOUTсервер будет удален.
6. Тестирование API (опционально)
Для проверки корректности API-клиента:
# Список ОС и тарифов
./timeweb-list
# Тест создания/удаления сервера
TIMEWEB_API_TOKEN=your-token ./timeweb-tester