Многие администраторы помнят, что при анонсе платформы vSphere 8 в прошлом году компания VMware представила технологическое превью технологии Configuration Profiles, которая пришла на смену устаревшему механизму Host Profiles. В недавно состоявшемся релизе vSphere 8 Update 1 движок Configuration Profiles стал полностью поддерживаться в производственной среде. Теперь администраторы могут начать использование этой функциональности и смигрировать в эту среду профили хостов, которые они использовали ранее.
Давайте посмотрим, что такое Configuration Profiles, и как они работают. Они нужны, чтобы выполнять три основные задачи:
Установить желаемую конфигурацию на уровне кластера в форме JSON-документа
Проверить, соответствуют ли хосты кластера желаемой конфигурации
Если они не соответствуют, то привести их к уровню конфигурации, заданной для кластера
Ключевое понятие тут - это JSON-документы. При определении кластера и тонкой настройке параметров вам понадобится редактировать структурированные файлы JSON, поэтому подумайте заранее, какой редактор будете для этого использовать.
1. Включение Configuration Profiles и применение настроек для нового кластера
Начнем с ситуации, когда вам требуется создать новый кластер из хостов ESXi, для которых вы планируете использовать Configuration Profiles. В этом случае при создании кластера вам нужно указать опцию "Manage all hosts in the cluster with a single image" для управления со стороны Lifecycle Manager, а затем выбрать опцию "Manage configuration at a cluster level":
После создания кластера добавляем туда хосты ESXi:
Далее вам нужно настроить один из хостов ESXi таким образом, чтобы он выступал в качестве эталонного хоста (reference host) для настройки всех остальных хостов в кластере. В данном примере - это хост esx-01. Уделите этому процессу максимальное внимание, так как впоследствии эти настройки будут применены на всех хостах кластера.
Выбираем наш кластер из Inventory, идем на вкладку Configure, далее в раздел Desired State->Configuration, где кликаем на ... и выбираем пункт "Extract from reference host":
После этого вы сможете скачать конфигурацию для выбранного хоста в формате JSON:
Открываем скачанный JSON файл:
Там вы увидите 2 основных блока параметров - настройки конфигурации, которые могут быть применены ко всем хостам, и индивидуальные настройки данного хоста (такие как IP-идентификация), указанные в секции "host-specific".
Вот этот вот раздел с идентификатором хоста (UUID) и его параметрами вам и нужно скопировать в отдельный документ. Можно также использовать несколько документов по числу ваших хостов в кластере:
В этих документах поменяйте параметры, которые вы примените к хостам кластера (IP-адреса, имена и прочее):
После того, как вы вписали все параметры, вам нужно заменить идентификаторы хостов (UUID) в самой верхней строчке во всех файлах. Эти идентификаторы можно найти в том же разделе Configuration:
После того, как вы замените все UUID для хостов, скопируйте все блоки с их конфигурациями из файлов в раздел host-specific после первого хоста esx-01.
После того, как вы добавите все секции, используйте любой онлайн валидатор JSON, чтобы проверить корректность полученного файла.
Затем возвращаемся в раздел Configuration и нажимаем Import для загрузки нашего полученного файла в качестве требуемой конфигурации кластера:
После импорта в разделе Compliance вы увидите, что прошла проверка кластера и хост esx-01 отображается как Compliant, а для остальных хостов выводится ошибка. Так и ожидалось, так как остальные хосты требуют настройки.
Если вы нажмете на остальные хосты, то увидите, что у них есть ненастроенные параметры, которые настроены в спецификации кластера, которую мы сейчас загрузили:
Теперь нужно просто нажать кнопку Remediate, чтобы все хосты кластера были настроены в соответствии с указанной конфигурацией:
На время применения настроек хосты могут быть переведены в режим обслуживания, если применяемые настройки того требуют.
После успешного применения настроек все хосты кластера будут отображаться как Compliant:
2. Добавление нового хоста в кластер
Итак, теперь у нас есть полностью Compliant кластер с хостами ESXi, но мы хотим добавить туда еще один хост - как нам сделать это?
Добавляем хост ESXi как обычно, после чего начнется автоматическая проверка на комплаенс, и мы увидим ошибку о том, что новый хост не присутствует в конфигурации кластера:
Первое, что мы делаем - это экспортируем текущую конфигурацию кластера, нажав кнопку Export в разделе Settings:
После этого открываем эту конфигурацию, идем в секцию host-specific и копируем последний блок настроек хоста, вставляем его в самый конец и меняем в этом фрагменте настройки для четвертого хоста, не забыв указать его UUID, который берем из vSphere Client:
После этого сохраняем этот файл и валидируем его JSON. После этого возвращаемся к кластеру и импортируем туда полученную конфигурацию:
После проведения проверки на комплаенс, хост изменит свое состояние с Error на Non-compliant с указанием несоответствующих параметров:
После этого нажимаем кнопку Remediate и конфигурация хоста esx-04 приводится в соответствие конфигурации кластера:
3. Изменение конфигурации кластера
Теперь рассмотрим ситуацию, когда вам нужно что-то поменять в уже работающем кластере, например, добавить порт VMkernel для инфраструктуры vSAN. Для этого внесем соответствующие настройки в конфигурацию хоста esx-01, добавив интерфейс vmk3:
После проверки комплаенса мы увидим, что хост esx-01 не соответствует конфигурации кластера:
Снова делаем экспорт конфигурации кластера:
А также экспортируем конфигурацию хоста esx-01:
Открываем файл конфигурации хоста и находим там секцию, касающуюся интерфейса vmk3:
Далее вставляем эту секцию в файл конфигурации кластера в то же самое место, где мы взяли ее в конфигурации хоста.
Затем из файла конфигурации хоста копируем кусочек про конфигурацию группы портов на виртуальном коммутаторе и тоже вставляем ее в файл конфигурации кластера в раздел port_groups:
Есть еще момент - интерфейс vmk3 имеет свою IP-конфигурацию, а ее нужно будет применить ко всем хостах с их собственными параметрами. Поэтому копируем данный кусочек из раздела host-specific:
И копируем этот кусочек в соотвествующий раздел каждого из хостов в конфигурации кластера, меняя параметры IP-идентификации для каждого из них. Будьте аккуратны со скобками и выбором места для вставки, лучше использовать какой-то специализированный редактор, например, Notepad++.
После этого сохраняем файл конфигурации кластера, валидируем его JSON, затем импортируем его в качестве основной конфигурации кластера, нажав кнопку Import. После проверки комплаенса получим обратную исходной ситуацию - хост esx-01 стал единственным корректным хостом, а вот остальные три - Non-compliant, поскольку у них отсутствует новый интерфейс:
Нажимаем Remediate - и все хосты кластера приходят в соответствие, получив новый интерфейс vmk3 на каждом из хостов:
4. Миграция с конфигурации Host Profiles, содержащей распределенный коммутатор
Начиная с vSphere 8 Update 1 функциональность Configuration Profiles стала поддерживать vSphere Distributed Switch. Поэтому если он у вас настроен в инфраструктуре и управляется со стороны Host Profiles, то можно перенести его под управление Configuration Profiles.
Давайте рассмотрим этот пример. Идем в раздел управления Configuration Profiles и нажимаем там Create Configuration, после чего мы увидим предупреждение о том, что к хостам кластера привязан Host Profile, и что нам нужно отвязать кластер от управления через них и привязать к Configuration Profiles:
Сначала создадим конфигурацию кластера, импортировав ее с одного из хостов, например, esx-01. Для этого нажимаем кнопку Import from reference host:
Далее нажимаем Next и валидируем конфигурацию. Все хосты конфигурации должны быть Compliant:
После этого нажимаем Export Configuration, скачиваем JSON-файл и открываем его в редакторе. Общие параметры для хостов будут одинаковыми, но нас интересует секция host-override. В ней указаны специфические параметры хостов, кроме esx-01, который был использован как reference-host:
Завершаем настройку Configuration Profile для кластера:
После этого переход с Host Profiles на Configuration Profiles будет завершен и все хосты кластера будут отображаться как Compliant:
Также в разделе управления сетями мы увидим, что распределенные коммутаторы VDS привязаны к хостам и инфраструктура успешно переехала на Configuration Profiles:
Если зайти в раздел сетевых адаптеров и выбрать нужный интерфейс, то мы увидим, что порт привязан к соответствующей группе портов распределенного коммутатора:
Последнее, что нам нужно сделать - это отвязать Host Profile от кластера, чтобы больше не использовать его функциональность. Для этого кликаем правой кнопкой по кластеру и в разделе Host Profiles выбираем пункт Detach:
После этого вы сможете далее без проблем управлять конфигурацией кластера и его хостов через Configuration Profiles.