Общая информация
Вот то, что известно всем: vpxuser – учетная запись, используемая vCenter`ом для управления ESXi хостами (опрос гипервизора, отправка задачи), которые в него включены. Т.е. учетная запись root (ESXi) не имеет отношения к связи vCenter – ESXi (за исключением того нюанса, что она нужна для включения ESXi в vCenter).
Vpxuser имеет права администратора ESXi. Таким образом, администратор vCenter`а может выполнять практически все те же самые манипуляции с хостом, что и root (ESXi), кроме создания/удаления/изменения локальных пользователей и групп самого ESXi хоста.
Управлять учетной записью vpxuser с помощью службы каталогов AD нельзя.
Пароль vpxuser хранится в зашифрованном виде и на ESXi и в базе vCenter (логично, не правда ли?) и для каждого ESXi этот пароль уникален.
Подключение к ESXi с помощью VPXUSER
В некоторых источниках я видел утверждения вроде этого: «Знание пароля от vpxuser Вам ничего не даст, использовать эту комбинацию для подключения к хосту и любых других целей невозможно». Однако, зная пароль vpxuser, можно подключиться к ESXi и управлять им (опробовано на Standalone ESXi 5.5 u1 и на ESXi 5.5 u1 под управлением vCenter 5.5, и не только на них).
С другой стороны, узнать пароль vpxuser нельзя (по крайней мере я способ так и не нашел), поэтому подключиться таким образом можно только изменив пароль vpxuser, а этого делать не нужно (читаем дальше).
Изменение пароля VPXUSER
В документации можно обнаружить предупреждение, которое в вольном (моем) переводе выглядит так:
ВНИМАНИЕ: проводите манипуляции с учетной записью vpxuser на свой страх и риск, это может повлечь за собой нарушение связи vCenter – ESXi. При включенном lockdown mode на хосте, управление хостом может быть потеряно безвозвратно.
Это действительно так. Опробовав в лаборатории, могу сказать, что после смены пароля vpxuser на ESXi, vCenter теряет с ним связь. НО не сразу. В моем случае это произошло через 18-20 часов. Самое интересное то, что после смены пароля vpxuser на ESXi, я сразу перезагрузил vCenter Service (но не машину, на которой этот сервис развернут), т.е. установленная сессия должна была дропнуться, и креденшиалы, гипотетически бывшие в кэше (а может и не бывшие, а может и не в кэше), должны были очиститься. Но этого не произошло. Тех. поддержка VMware никак не прокомментировала такое поведение, сказав, что не отвечает на вопросы по архитектурным особенностям платформы.
Интересно и другое: далее в этой статье есть информация о политике паролей vpxuser, и по умолчанию длина его пароля 32 символа. Если менять его пароль вручную на ESXi, например с помощью “passwd”, то можно задать пароль намного короче. Видимо, связано это с тем, что политику паролей поддерживает vCenter, а поскольку меняется пароль vpxuser тоже vCenter`ом, то, как говорится «Я своей смешною рожей сам себя и веселю». Т.е. сменить-то пароль можно, и задать его несоответствующим политике можно, но связь с ESXi в итоге будет утеряна.
Потеря связи вполне логична, ведь при ручной смене пароля vpxuser, его пароль в базе vCenter`а не меняется.
Вывод: не меняйте пароль на vpxuser сами, пусть этим занимается vCenter. Если вы изменили пароль vpxuser руками, то с вероятностю 99% рано или поздно vCenter потеряет связь с ESXi. 1% я оставляю на магическое вмешательство.
Устранение проблем
Если все-таки изменения в vpxuser были внесены (например, изменен пароль) и это повлекло недоступность ESXi из vCenter (обычно сопровождается ошибкой: "Call «ServiceInstance.RetrieveContent» for object «ServiceInstance» on Server «ip_address» failed"), то можно поступить следующим образом (если lockdown mode не включен и есть доступ к хосту по SSH):
Для релизов 3.x и 4.х — kb.vmware.com/kb/1005759. Если кратко:
- ПКМ на хосте в vSphere Client`е, disconnect (если, конечно, хост уже не находится в таком состоянии). НЕ УДАЛЯТЬ хост из vCenter`а.
- Подключиться по SSH к хосту и выполнить: “userdel vpxuser”.
- ПКМ на хосте и выбрать “Connect”. Игнорировать все возможные ошибки аутентификации.
- Ввести требуемый логин root и его пароль. Учетная запись vpxuser будет пересоздана.
Для релизов 5.x и 6.x процедура такая же за исключением пункта 2 (т.е. удалять vpxuser не нужно).
Здесь стоит обратить внимание на фразу «если не включен lockdown mode». Если пароль vpxuser был изменен и vCenter потерял связь с ESXi и при этом lockdown mode включен, т.е. доступ к хосту ESXi запрещен всем кроме vCenter, то официальная позиция VMware на этот счет однозначна: «переустанавливайте ESXi».
Политика паролей для vpxuser
Время действия пароля
По умолчанию пароль vpxuser обновляется каждые 30 дней, но это можно изменить:
1. В vSphere Client -> Administration.
2. vCenter Server Settings… -> Advanced Settings.
3. Выбрать параметр VirtualCenter.VimPasswordExpirationInDays, установить нужное значение.
4. Перезагрузить службу vCenter.
Изменять этот параметр VMware не рекомендует. VMware вообще много чего не рекомендует делать, жить вредно, от этого умирают.
Сложность пароля
Пароль vpxuser состоит из 32х символов, и содержит минимум 1 символ из групп: специальные символы ({~@-{} и др.), цифры (1-9), большие буквы (латиница) и строчные буквы (латиница).
В документации указано, что для изменения длины пароля vpxuser можно изменить значение параметра vpxd.hostPasswordLength в файле конфигурации на vCenter:
- Linux (VCSA) — /etc/vmware-vpx/vpxd.cfg;
- Windows – C:ProgramDataVMwareVMware VirtualCentervpxd.cfg;
Параметр vpxd.hostPasswordLength в конфиге отсутствует, его нужно добавить туда. Вот кусочек конфига с этим параметром, где видно место, куда его воткнуть:
< vmacore >
........
< vpxd >
< filterOverheadLimitIssues >true< /filterOverheadLimitIssues >
< hostPasswordLength >32< /hostPasswordLength >
< network >
< rollback >true< /rollback >
< /network >
........
< /vpxd>
Т.е. внутрь vpxd, но не внутрь какого-либо другого вложенного тега.
Вывод: зачем вообще менять политику паролей для vpxuser? Да незачем, VMware не рекомендует заниматься подобной ерундой.
В разных релизах
Вот что интересно: в ранних релизах vSphere пользователь vpxuser на Standalone ESXi не существовал (до включения хоста в vCenter). Об этом говорит статья kb.vmware.com/kb/1005759: The vpxuser account is created by VirtualCenter when an ESX host is added. Do not manipulate this account. Также проверено вручную – на Standalone ESXi 4.1 его действительно нет. Было подозрение, что этот пользователь в 4.1 называется vimuser (т.к. время действия пароля vpxuser контролируется параметром VirtualCenter.VimPasswordExpirationInDays), а vimuser в ESXi 4.1 как раз предопределен, но при включении ESXi 4.1 в vCenter на хосте действительно создается vpxuser и НЕ удаляется после удаления хоста из vCenter`а. Однако, kb1005759 предназначена для релизов 4.х и более ранних. В последних релизах (в 5.5 и 6 точно) vpxuser существует сразу после развертывания ESXi. Судя по всему, эта учетная запись не используется, пока хост не включен в vCenter. Какой-то конкретной информации об этом нюансе я найти не смог, но пользователь a.p. (Guru, vExpert) также считает что эта учетная запись не используется. К тому же, я сменил пароль для vpxuser на Standalone ESXi, и не заметил никаких последствий (например, потеря доступа по SSH, vSphere Client).
Здесь должен быть какой-то вывод
Вывод касательно vpxuser предельно прост — это одна из тех вещей, которые тюнить не стоит практически ни при каких обстоятельствах. Пост призван лишь рассказать чуть больше об этой учетной записи, о ее присутствии в разных релизах и о мифах, вроде того, что её нельзя использовать для прямого подключения к ESXi.
Автор: nokogerra