vHoge

VMwareのアレコレ備忘録。CLIでがんばるネタ多め。

ESXi の root パスワードを Web UI で変更する

ESXi の root パスワードの変更。
正攻法だとコンソールなり ssh なりで乗り込み、passwdで変更が多そう。
強者だと PowerCLI のSet-VMHostAccount辺り?

これを Web UI から変更を行うお話。

Managed Object Browser

と言ってもお馴染みの vSphere Client / vSphere Web Client ではなく、
Managed Object Browser(MOB) からの操作となる。
MOB MOB が何たるかは公式 Doc
vCenter の一連の管理オブジェクト構造を UI を化しているもので、
そのオブジェクトに応じたメソッドを実行することもできる。

vSphere API (*vmomi) 系の開発やっていると無くてはならないもの。
(PowerCLI 系の開発でも見る?)

Managed ESXi Host from vCenter

と言うわけで MOB から変更ができるので試す。
vCenter TOP の↓のリンクから。
MOB はこちら URL 直で開く場合はhttps://[vCenter FQDN or IP]/mob


認証は vCenter と同じ
URL を開くとベーシック認証にて ID/Pass が求められるので、
然るべき vCenter のアカウントでログイン。
ひとまずはadministrator@vsphere.local で。


MOB TOP 細かい話は割愛。
以下の NAME の項目の VALUE がリンクになっているので、 それを辿っていき対象のホストを開く。
[content] → [rootFolder] → [childEntity] → [hostFolder] → [childEntity] → [host] → [configManager] → [accountManager]
childEntityhostはデータセンタやクラスタ、ホストでリンクが分かれているので、変更対象のホストがいるオブジェクトを選んで辿っていく。


accountManager accountManagerを開くと Properties は無く、Methods のみになっているので、
Methods の中からUpdateUserを開くと別窓が立ち上がる。


UpdateUser VALUE がテキストボックスで、XML っぽいタグが入っている。
ここの値を書き換えて実行することでパスワードを変更できる。
rootのパスワードをvhogehogeにする場合だと以下。

<user>
   <id>root</id>
   <!-- optional -->
   <password>vhogehoge</password>
   <!-- optional -->
   <description></description>
</user>

これで最後にInvoke Methodをクリックすれば変更が反映される。

Standalone ESXi Host

スタンドアロン ESXi でも基本的には同じ方法でいけるが、
ESXi の場合、デフォルトでは MOB が有効化されていない。
503 ESXi の詳細設定でConfig.HostAgent.plugins.solo.enableMobenableにしておく必要がある。
https://kb.vmware.com/s/article/2108405

ベーシック認証は ESXi のアカウントで。
ホストが 1 台しか無い分、パスはシンプルで
[content] → [accountManager] → [UpdateUser] にて
開いたウインドウで VALUE 設定。

同じようにInvoke Methodをクリックすればいける。

お気づきでしょうか?

vCenter 下の ESXi の root パスワードを変更する際、
現在の root パスワードを求められないことを…
なので、vCenter 下にはいるけど root パスワードは忘れた…
とかでも再インストールとかすることなく、容赦なくリセットできる。