VxRail:如何在 VxRail 版本 7.0.x 和 8.0.x 中查询或更新管理帐户
Summary: 本文介绍如何在版本 7.0.x 和 8.0.x 的 VxRail Manager 中查询和更新保存的 VxRail 凭据。
Instructions
从 VxRail 版本 7.0.010 开始,vCenter 和 ESXi 主机管理帐户存储在密码箱微服务中。
查询或更新管理帐户的方法与以前的版本有所不同。
下面访问的密码是 base64 编码的,而不是纯文本的。
先决条件
- 使用“mystic”管理员用户通过 SSH 连接到 VxRail Manager
- 切换到 root 用户。
su -
查询现有的已保存凭据:
查询 vCenter 管理帐户:
要运行的命令:
curl --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -X GET 'http://localhost/rest/vxm/internal/lockbox/v1/credentials?lockbox_name=SYSTEM&credential_names=management_account_vc'|jq
示例输出:
{
"items": [
{
"connection_type": "OK",
"credential_name": "management_account_vc",
"is_found": true,
"password": "xxxxxxxxxxx",
"username": "management@localos"
}
]
}
在此示例中,vCenter 管理帐户用户名为 management@localos,编码后的密码为 xxxxxxxxxxx.
要解码密码,请使用以下命令。
echo -n 'xxxxxxxxxxx' | base64 -d
查询 ESXi 主机管理帐户:
1.要访问帐户,您必须知道 PowerEdge 服务编号 (ST)— 七个字符的序列号,例如 AB1CDE2 — 才能访问特定凭据。
更换具有 <host-SN> 与服务编号
。例如,您可以使用 VxRail 插件程序的以下部分查看序列号和主机名:
2.使用以下命令收集 VxRail 主机凭据,并将 <host-SN> 替换为服务器的服务编号。
curl --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -X GET 'http://localhost/rest/vxm/internal/lockbox/v1/credentials?lockbox_name=SYSTEM&credential_names=management_account_esxi__<host-SN>'| jq
使用上一个服务编号示例:
curl --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -X GET 'http://localhost/rest/vxm/internal/lockbox/v1/credentials?lockbox_name=SYSTEM&credential_names=management_account_esxi__AB1CDE2'| jq
输出:
{
"items": [
{
"credential_name": "management_account_esxi__V015001",
"is_found": true,
"password": "XXXXXXXX",
"username": "management"
}
]
}
在此示例中,ESXi 主机管理帐户用户名为 management。编码后的密码为 XXXXXXXX。
要解码,请使用以下命令:
echo -n 'XXXXXXXX' | base64 -d
更新保存的凭据:
更新 vCenter 管理帐户:
1.停止 vmware-marvin 服务:
systemctl stop vmware-marvin
2.要对密码进行编码,请运行以下命令替换密码:
echo -n 'Password123!' | base64 UGFzc3dvcmQxMjMh
-n 是避免插入新行字符所必需的;否则,这将是与预期不同的密码。
3.查询当前的 vCenter 管理帐户用户名。如果您不知道 vCenter 管理帐户用户名,请参阅上一节“查询 vCenter 管理帐户”以查询用户名。
4.要更新 vCenter 管理帐户,请运行以下命令并将 VC_MGMT_USER_NAME and ENCODED_PASSWD_FROM_STEP_1:
curl -X PUT --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "accept: application/json" -H "Content-Type: application/json" -d '{"lockbox_name":"SYSTEM","credentials":[{"credential_name":"management_account_vc","username":"VC_MGMT_USER_NAME","password":"ENCODED_PASSWD_FROM_STEP_1"}]}' 'http://localhost/rest/vxm/internal/lockbox/v1/credentials'
示例:
curl -X PUT --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "accept: application/json" -H "Content-Type: application/json" -d '{"lockbox_name":"SYSTEM","credentials":[{"credential_name":"management_account_vc","username":"vxrm@localos","password":"UGFzc3dvcmQxMjMh"}]}' 'http://localhost/rest/vxm/internal/lockbox/v1/credentials'
5.从 vCenter 更新管理帐户密码,导航到 vSphere>汉堡菜单>管理>用户和组>按 vCenter 管理帐户所在的域进行筛选,编辑帐户,然后设置新的纯文本密码。
6.开始 vmware-marvin 服务:
systemctl start vmware-marvin
更新 ESXi 主机管理帐户
1.要对密码进行编码,请运行以下示例中的命令:
示例:
echo -n 'Password123!' | base64 UGFzc3dvcmQxMjMh
2.您应该知道 ESXi 主机序列号 (SN) 或服务编号。
3.您应该知道 ESXi 主机管理帐户用户名(提醒:管理帐户用户和序列号列在 VxVerify 输出文件中: vxverify_tests.json)
4.停止 vmware-marvin 服务:
systemctl stop vmware-marvin
5.要更新 ESXi 主机管理帐户,请运行以下命令并将 ESX_MGMT_USER_NAME 和 ENCODED_PASSWD_FROM_STEP_1 和 <host-SN>:
curl -X PUT --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "Accept: application/json" -H "Content-Type: application/json" -d '{"lockbox_name":"SYSTEM","credentials":[{"credential_name":"management_account_esxi__<host-SN>","username":"ESXI_MGMT_USER_NAME","password":"ENCODED_PASSWD_FROM_STEP_1"}]}' 'http://localhost/rest/vxm/internal/lockbox/v1/credentials'
示例:
curl -X PUT --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "Accept: application/json" -H "Content-Type: application/json" -d '{"lockbox_name":"SYSTEM","credentials":[{"credential_name":"management_account_esxi__V010101","username":"esxmgmt","password":"UGFzc3dvcmQxMjMh"}]}' 'http://localhost/rest/vxm/internal/lockbox/v1/credentials'
如何解密密码:
echo -n "VnhsYWJSQGlsMSE=" | base64 -d VxlabR@il1!
6.请导航至 https://ESXiIPAddress 并以 root 用户身份登录。单击 管理>用户和组编辑>ESXi 管理用户>设置新的明文密码。
7.开始 vmware-marvin 服务:
systemctl start vmware-marvin
更改密码后:
1.从 VxRail UI > 运行状况监视>运行状况监视状态>启用或使用 CLI 启用运行状况监视。
curl -X PUT --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "Accept: application/json" -H "Content-Type: application/json" http://127.0.0.1/rest/vxm/internal/configservice/v1/configuration/keys/state_cluster_suppressed -d '{"value": "false"}'
2.重新启动 vmware-marvin 服务管理所有 jukebox 操作。
systemctl restart vmware-marvin
Additional Information
可以通过运行 VxVerify 来检测凭据,请参阅文章:VxRail:如何运行 VxRail Verify 工具。