9.0 KiB
Анализ сбоя создания VM (f12vmbad.har)
Операция: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Статус операции
- isSuccessful:
false - isInProgress:
false - Время выполнения: 15:08:01 → 15:11:42 (≈3 минуты 40 секунд)
- Причина: Зависание на этапе "Добавление правил FW"
Хронология выполнения (Stages)
✅ Этап 1: Подготовка среды
- Статус: Успешно
- Длительность: 13 секунд
- Действия:
- Определение ресурсной платформы: OK
- Подготовка операции: OK
- Определение переменных для работы с VM: OK
✅ Этап 2: Работа с сервисом (Cloud Director)
- Статус: Успешно
- Длительность: 192.8 секунды (~3 минуты)
- Действия:
- Подготовка конфигурационных файлов: OK
- Авторизация в Cloud Director: OK
- Установка сервиса: OK ✓
- VM
ff12web01успешно создана в Cloud Director
- VM
❌ Этап 3: Работа с сервисом (Firewall Rules)
- Статус: FAILED ❌
- Длительность: 15.5 секунд (зависание)
- Действие: "Добавление правил FW [PROCESS]"
- Проблема:
- Процесс начался в 15:11:35.807
dtFinish:null(не завершился)- Сообщение осталось в статусе
[PROCESS]
✅ Этап 4: Настройка vIP
- Статус: Успешно
- Длительность: 0.7 секунды
- Действия: Выделение VIP-адресов: OK
✅ Этап 5: Настройка DNS
- Статус: Успешно
- Длительность: 1 секунда
- Действия: Подготовка DNS записей: OK
Корневая причина сбоя
🔥 Систематический сбой на этапе Firewall
Факты:
- VM успешно создана в Cloud Director (VCD).
- VIP-адреса выделены корректно.
- DNS-записи настроены.
- Firewall Rules НЕ применены → операция застопорилась и упала по таймауту.
- Процесс завис именно на вызове "Добавление правил FW [PROCESS]" без финализации.
Возможные причины
1. Проблемы с доступом к NSX Manager/Edge Gateway
- При применении правил FW оркестратор обращается к NSX-T API.
- Возможен таймаут из-за сетевой недоступности или перегрузки NSX Manager.
- Отсутствие
errorLogв ответе говорит о том, что запрос "завис", а не упал с явной ошибкой.
2. Конфликт конфигурации Firewall
- VM
ff12web01создана в vAppxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. - Если в этом vApp или Edge Gateway уже существуют противоречивые правила, новые правила могут не применяться.
- Возможна попытка создания дублирующих NAT/FW правил.
3. Недостаточность прав или квот
- Пустое значение
accessIpList: ""могло быть интерпретировано бэкендом как запрос на открытие доступа со всех адресов (0.0.0.0/0). - Если в организации есть политики безопасности, запрещающие такие правила, запрос может быть заблокирован без явной ошибки.
4. Анализ переданных параметров
Все основные параметры корректны:
- vappUid:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx✓ - vmName:
ff12web01✓ - CPU:
1✓ - RAM:
1GB ✓ - osImage:
Ubuntu_22-20G✓ - userPublicKey: Валидный SSH-ключ
ssh-ed25519 AAAAC3Nz...✓ - userName:
myuser✓ - accessPortList:
["22"](SSH) ✓ - needEnableExternalIp:
true✓
Потенциально проблемные значения:
-
Пустые строки в опциональных полях:
- svcOperationCfsParamId 411 (вероятно
vmDisk):""— лучше передаватьnullили число. - svcOperationCfsParamId 413 (вероятно
accessIpList):""— ожидается JSON-массив типа["0.0.0.0/0"]. - svcOperationCfsParamId 415 (вероятно
cloudInit):""— опционально.
- svcOperationCfsParamId 411 (вероятно
-
Значение "no-needed" (ID 412):
- Неясное назначение параметра. Возможно, это placeholder для неиспользуемого поля.
Вывод: Основные параметры валидны. Пустые строки в опциональных полях технически допустимы, но могут некорректно обрабатываться бэкендом.
Рекомендации
Немедленные действия для отладки
-
Проверить логи NSX Manager:
- Посмотреть, поступал ли запрос на создание FW правил в момент
15:11:35.807. - Если запрос отсутствует → проблема на стороне оркестратора (не дошел до NSX).
- Если запрос есть, но с ошибкой → причина в конфигурации или правах.
- Посмотреть, поступал ли запрос на создание FW правил в момент
-
Проверить текущее состояние Edge Gateway:
- Посмотреть список правил FW для vApp
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. - Убедиться, что нет конфликтующих правил для VM
ff12web01.
- Посмотреть список правил FW для vApp
-
Проверить доступность NSX Manager:
- Убедиться, что NSX API отвечает на запросы.
- Проверить сетевую связность между Jenkins (оркестратор) и NSX Manager.
-
Повторить создание с улучшенными параметрами:
- Передавать
accessIpListкак JSON-массив:["0.0.0.0/0"]вместо пустой строки. - Для
vmDiskуказать либоnull, либо конкретное значение (например,"10"для 10 GB).
- Передавать
Для Terraform Provider
-
Добавить проверку статуса стадий:
- Если
stage.dtFinish == nullиduration > 30s→ считать операцию зависшей. - Отдавать понятное сообщение: "VM создана, но Firewall не настроен".
- Если
-
Повторная попытка при Firewall Timeout:
- Если сбой на этапе "Добавление правил FW", попробовать
retryс экспоненциальной задержкой. - Добавить опцию
skip_firewall_on_timeoutдля продолжения деплоя без FW.
- Если сбой на этапе "Добавление правил FW", попробовать
-
Валидация параметров перед отправкой:
- Не передавать пустые строки для списков (
accessIpList,cloudInit). - Для числовых полей использовать либо валидное значение, либо
null. - Проверять формат JSON-массивов перед сериализацией.
- Не передавать пустые строки для списков (
-
Расширенное логирование:
- Записывать в лог полный JSON всех отправленных параметров.
- Логировать промежуточные статусы стадий для отладки таймаутов.
Заключение
VM физически создана в Cloud Director, но из-за таймаута на этапе применения Firewall Rules ресурс считается неуспешно развернутым (isSuccessful: false).
Основные подозреваемые:
- Недоступность NSX Manager или перегрузка API.
- Конфликт правил FW в целевом Edge Gateway.
- Пустые значения в параметрах (
accessIpList: "",vmDisk: ""), которые могли некорректно обработаться бэкендом.
Для точной диагностики необходимо проверить логи Jenkins (оркестратор) и NSX Manager на момент 15:11:35 → 15:11:42.