Интеграция с VMWare

Внешний PowerCLI-скрипт для сопоставления виртуальных машин с инвентаризацией: распределение VM по физическим хостам, регистрация новых VM и обнаружение клонов ОС.

Со стороны продукта для этого есть все необходимое: у ОС ведется поле VMWare UUID, а клоны разделяются по окружениям/песочницам (hostname уникален в пределах домен+окружение). Обмен данными - через REST API.

Задача:

  • Распределение VM по физическим хостам (ESXi нодам)
  • Регистрация новых VM

Обнаружение клонов: при клонировании ОС в инфраструктуре появляется несколько ОС с одинаковыми FQDN. Скрипт инвентаризации, работающий изнутри самой ОС, для обнаружения клонов не годится - он не “видит” всей картины. Нужен внешний скрипт, который заметит, что одновременно включены две ВМ с одинаковым FQDN, - это и есть признак клона.

В инвентаризации клоны должны быть разделены по окружениям (песочницам). NULL песочница (отсутствие песочницы) тоже окружение - основное “боевое”. По умолчанию у всех ВМ отсутствует песочница.

При создании клона:

  • Если одна из ОС изолирована в сети (а это было бы логично, т.к. иначе может произойти либо коллизия IP адресов, либо клон с новым IP адресом может начать регистрировать себя в ДНС сервере), то
    • изолированная считает себя оригиналом, но не может обновить свои данные в инвентаризации.
    • PowerCLI скрипт может увидеть, что в VMWare присутствует несколько ОС с таким FQDN, но с разными VMWareUUID.
    • PowerCLI скрипт не сможет создать вторую ОС с таким же FQDN, т.к. это можно сделать только разместив вторую ОС в песочнице (а это ручная операция).
    • PowerCLI будет обновлять все клоны ОС, ориентируясь на их VMWareUUID
  • Если все ОС имеют доступ в сеть, то необходимо вручную завести клонов в инвентаризации, и на машинах клонах явно указать InventoryID клонов, чтобы скрипты изнутри ОС обновляли правильную VM