Перейти к основному содержанию

Как я vCenter чинил

internet-lab.ru

Два дня занимался реанимацией vCenter 7, после того как на нём истёк срок действия сертификатов. Собрал вместе все полезные статьи, которые помогли мне привести в порядок систему виртуализации.

Как это было

В какой-то момент я не смог ввести один из хостов в режим обслуживания.

vCenter — failed to enter namespaces maintenance mode

Странно, — подумал я, и перезагрузил vCenter. Предварительно перевёл кластер vCenter HA в режим обслуживания. Службы не запустились. Ой, — сказал я. В результате анализа проблемы был сделан вывод, что виноваты сертификаты. Менять сертификаты при работающем кластере vCenter HA нельзя, поэтому нужно разрушить кластер. Обычно кластер удаляется через GUI:

Удаляю vCenter HA

Но у меня vCenter не запускает службы, удаляю из консоли:

vcha-destroy -f

Разгар рабочего дня, нужно быстро чинить. Использую Certificate Manager для сброса сертификатов на самоподписанные.

vCenter 7 — устанавливаю свой сертификат

/usr/lib/vmware-vmca/bin/certificate-manager

vcenter

Выбираю пункт 8 (Reset all Certificates). Скрипт сгенерирует для всех сервисов самоподписанные сертификаты. Перезагружаю vCenter. Службы стартуют, всё вроде бы работает. Вечером выпускаю корпоративные сертификаты и накатываю их тем же скриптом. Казалось бы, всё в порядке? Но нет, на следующий день снова начинаются проблемы. Не могу изменить конфигурацию дисков любой виртуальной машины.

VMware — недоступно изменение конфигурации виртуального диска

vmware

В логах вижу "Invalid SSL certificate". Снова сертификаты? Я же их перевыпустил и обновил!

Интернет рассказал мне замечательную историю. 1 марта 2018 г. CA/Browser Forum, отраслевая организация, состоящая из центров сертификации (CA), веб-браузеров и операционных систем, приняла бюллетень 193, чтобы сократить максимальный срок действия сертификатов SSL/TLS до двух лет (825 дней, если быть точным). Все организации бросились исполнять, включая VMware, и заменять сроки действия сертификатов везде где только можно. И где нельзя. В результате, в vCenter сертификаты для взаимодействия внутренних сервисов между собой (vCenter STS Certificate) тоже стали жить два года, хотя они самоподписанные. Изначально механизм замены этих сертификатов не был предусмотрен, ибо они генерировались на 10 лет при установке, и на них все тупо забивали.

Результатом бурной деятельности стало то, что карета vCenter через два года после установки превращается в тыкву. Можно, конечно, переустановить vCenter с нуля, но выход есть. Вернее есть утилита lsdoctor, которая умеет исправлять эту проблему с сертификатами.

VMware — lsdoctor Tool

Прежде чем запустить утилиту, нужно её загрузить, например, с помощью WinSCP. Однако, WinSCP не хочет коннектиться:

vmware

Решаю и эту проблему:

Соединение с vCenter через WinSCP падает с ошибкой: Received too large SFTP packet

Запускаю утилиту lsdoctor с атрибутом -t (--trustfix):

python lsdoctor.py -t

Утилита, к счастью, обновляет STS сертификаты, всё начинает работать.

Наводим порядок

Начинаю приводить всё в порядок. Удаляю старый просроченный корпоративный сертификат из хранилища TRUSTED_ROOTS:

Удаление CA сертификата с истёкшим сроком действия из хранилища TRUSTED_ROOTS в vCenter 7

Проверяю количество отозванных сертификатов, их оказывается много:

/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOT_CRLS | grep Number

Полечил, после этого vCenter стал работать заметно быстрее:

VMware — служба vPostgres не запускается (crl-fix.sh)

В уведомлениях нахожу предупреждение: "Identity Source LDAP Certificate is about to expire". Это означает, что у одного из источников аутентификации, доменного, истёк срок действия сертификата. Да что за дела, я же менял сертификат! Оказалось, что срок действия сертификата Identity Source хранится отдельно. Решаю и эту проблему:

vCenter — Identity Source LDAP Certificate is about to expire

Нахожу более продвинутую утилиту для работы с сертификатами: vCert:

VMware — vCert

Утилита помогает найти и исправить ещё пару ошибок:

​​vmware

Внимательно просматриваю сертификаты в vCert и нахожу ещё один просроченный, уже в приложении vSphere Replication.

Установка vSphere Replication 8.5.0

vSphere Replication 8.5.0 — установка SSL сертификата

Удаляю протухший промежуточный сертификат через оснастку конфигурирования vSphere Replication и заменяю на новый. После этого регистрирую vSphere Replication заново, процесс проходит без проблем, просто жму кнопку Далее.

В настройках каждого хоста обновляю сертификат, на всякий случай. Просто хочу решить все мелкие недоработки перед следующим этапом. После того как всё заработало нормально, выполняю контрольную перезагрузку vCenter.

Осталось одно дело, заново собрать кластер vCenter HA.

vcenter

Вроде починились...

 

Похожие материалы