PowerProtect:PPDM 部署和管理的虚拟机的密码强化

摘要: 从 19.16 patch2 版本 (19.16.0-21) 开始,由 PPDM 部署和管理的虚拟机(节点)的密码管理已得到增强。这些虚拟机是保护引擎 (vProxies) 和基础架构节点,包括搜索引擎和报告引擎。增强功能包括更高的密码复杂性,在每次虚拟机升级时自动切换密码,以及支持通过 PPDM API 和 CLI 按需切换密码。 本文将提供有关如何更改、更新和管理这些密码的信息。指令可能会因节点类型和使用的方法(API 或命令行)而异。 ...

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

本产品包含多项增强功能。
密码强化的两个主要增强功能是:升级时自动续订密码和增强密码复杂性。
密码复杂性已增加到:

  • 16 个字符
  • 至少包含以下各项中的一项:
    • 大写字母
    • 小写字母
    • 编号
    • 符号

升级时自动续订密码意味着在升级过程中,搜索节点、报告节点和 vProxies 的管理员和根密码会自动重新生成和续订。
搜索节点、报告节点或 vProxies 的密码轮换也可以通过 PPDM API 或 PPDM 命令行工具进行。通过按需管理,可以实现密码轮换。
 

如何通过 PPDM API 轮换密码:

有关 API 调用的更多信息,请参阅 https://developer.dell.com/apis/4378/versions/19.16.0/docs/getting%20started/authentication-and-authorization.md 以开始使用。

对于 vProxy(保护引擎)

步骤 1:向 api/v2/protection-engines 发出 GET 请求,并记录保护引擎的“id”,以便在步骤 2 中的后续管理 API 请求中使用。

{
    "page": {
        "size": 1,
        "number": 1,
        "totalPages": 1,
        "totalElements": 1
    },
    "content": [
        {
            "id": "0b97c547-d74b-4ae1-8cab-06219396dede",
            "name": "VM Proxy Protection Engine",
            "type": "VPE",
            "ipAddress": "127.0.0.1",
            "status": "OPERATIONAL",
            "registeredAt": "2024-06-03T17:41:54.357018499Z",
            "credentials": null,
            "detail": {
                "vpe": {
                    "vcsStatuses": [
                        {
                            "ipAddress": "
vc2.vproxy.asl.lab.emc.com",
                            "name": "vc2.vproxy.asl.lab.emc.com",
                            "status": "CONNECTED"
                        }
                    ],
                    "totalDisabledProxies": 0,
                    "totalReadyProxies": 3,
                    "totalFailedProxies": 0,
                    "protectionSummary": {
                        "maxNoOfProtectableVms": 0,
                        "noOfProtectedVms": 0,
                        "totalProtectedSizeInBytes": 0
                    }
                }
            },
            "_embedded": null,
            "_links": {
                "self": {
                    "href": "
https://irv-host-89-211.vproxy.asl.lab.emc.com:8443/ProtectionEngineResource/0b97c547-d74b-4ae1-8cab-06219396dede"
                }
            }
        }
    ]
}

步骤 2:向保护引擎管理 API 发出 POST 请求。通过以下调用,您可以根据您的偏好更改单个 vProxy 或所有 vProxy。选择以下其中一项。

  • 轮换每个 vProxy 的密码:
API: api/v2/protection-engines/<ProtectionEngineID>/management
Operation: POST
Payload:
{
    "engineId": "<ProtectionEngineID>",

    "engineType": "VPE",
    "operation": "ROTATE_PASSWORD"
}
Note: Each vProxy will have a unique password
  • 轮换一个或多个指定 vProxy 的密码,请执行以下操作:

例如,在下面的 proxyIds 字段中,指定了两个 vProxy ID。

API: api/v2/protection-engines/<ProtectionEngineID>/management
Operation: POST
Payload:
{
    "engineId": "<ProtectionEngineID>",

    "engineType": "VPE",
    "operation": "ROTATE_PASSWORD",
    "代理 ID": ["<vProxyID1>", "<vProxyID2>"]
}

请注意返回的响应代码,以确定命令的成功与否:

202:已接受请求以进行处理。(这是成功操作的理想响应)
400:请求无效。
401:请求者无权执行此操作。
403:不允许请求者执行此操作。
404:未找到所请求的资源。
500:意外错误导致服务器无法满足您的请求。

示例响应:

{
    "engineId": "0b97c547-d74b-4ae1-8cab-06219396dede",
    "engineType": "VPE",
    "operation": "ROTATE_PASSWORD",
    "_links": {
        "task": {
            "href": "
https://irv-host-89-211.vproxy.asl.lab.emc.com:8443/api/v2/activities/a27e02fa-64a3-43a6-9d40-6ccbdfeeac39"
        }
    }
}

发出此请求后,将在 PPDM 中创建系统作业。
步骤 3:监视密码轮换请求的活动。

  1. 在 PPDM UI 中的系统作业中监视
  2. 通过 PPDM 活动 API 进行监视

获取步骤 2 中保护引擎管理 API 响应返回的 activityId。
对 api/v2/activities/{activityId} 发出 GET 请求
可以重复该 GET 请求,直到“state”变为“COMPLETED”,此时密码轮换操作即告终止。

{
    "id": "a27e02fa-64a3-43a6-9d40-6ccbdfeeac39",
    "name": "Rotating password on  VM Direct Protection Engine",
    "category": "CONFIG",
    "subcategory": "PROTECTION_ENGINE",
    "classType": "JOB",
    "source": {
        "type": "DATA_MANAGER"
    },
    "createTime": "2024-06-12T03:11:57.063Z",
    "updateTime": "2024-06-12T03:14:47.149Z",
    "startTime": "2024-06-12T03:11:57.063Z",
    "endTime": "2024-06-12T03:14:47.144Z",
    "duration": 170081,
    "averageDuration": 401896.0,
    "averageBytesTransferred": 0.0,
    "progress": 100,
    "owner": {
        "name": "VMDM"
    },
    "state": "COMPLETED",
    "result": {
        "status": "OK_WITH_ERRORS",
        "summaries": []
    },
    "hasLogs": false,
    "hasChildren": true,
    "actions": {
        "cancelable": false,
        "retryable": false
    },
    "stateSummaries": {
        "total": 2,
        "queued": 0,
        "running": 0,
        "pendingCancellation": 0,
        "completed": 1,
        "ok": 1,
        "okWithErrors": 0,
        "canceled": 0,
        "failed": 1,
        "unknown": 0,
        "skipped": 0,
        "criticalEvent": 0
    },
    "displayId": "509A7B79",
    "_links": {
        "self": {
            "href": "
https://10.235.89.211:8443/api/v2/activities/a27e02fa-64a3-43a6-9d40-6ccbdfeeac39"
        }
    }
}


故障处理
可以显示有关操作的更多信息。以下选项将提供成功确认或有关各代理的密码轮换结果的更多详细信息:
向 activities?filter=parentId%20eq%20"cb2b62fc-eb4a-4b6c-82d1-f0da5379fc31" 发送 GET 请求,以检索子活动
活动的 result.status 表示操作的状态
活动的 result.error.reason 包含任何错误原因
活动的 owner.ownerResource.id 为 proxyId
在以下示例中,我们有一个已成功轮换的 vProxy 以及另一个因虚拟机未开启而失败的 vProxy。
{
    "page": {
        "size": 2,
        "number": 1,
        "totalPages": 1,
        "totalElements": 2
    },
    "content": [
        {
            "id": "bde117e6-29a2-4710-aae4-2049bdd48f83",
            "name": "Rotating password on  VM Direct Protection Engine 10.235.89.246",
            "category": "CONFIG",
            "subcategory": "PROTECTION_ENGINE",
            "parentId": "a27e02fa-64a3-43a6-9d40-6ccbdfeeac39",
            "classType": "TASK",
            "source": {
                "type": "DATA_MANAGER"
            },
            "createTime": "2024-06-12T03:11:57.137Z",
            "updateTime": "2024-06-12T03:12:06.902Z",
            "startTime": "2024-06-12T03:05:25Z",
            "endTime": "2024-06-12T03:12:06.896Z",
            "duration": 401896,
            "progress": 100,
            "owner": {
                "name": "VMDM",
                "ownerResource": {
                    "id": "8d3df105-4a9f-4813-ad35-9e86081c0aab",
                    "resourceType": "com.emc.brs.vmdm.resources.VPEProxyResource"
                }
            },
            "state": "COMPLETED",
            "result": {
                "status": "OK",
                "summaries": [
                    "Action              : rotate_password\nTransportMode       : HotaddPreferred\nVproxy              : 10.235.89.246\nDescription         : vProxy health check completed.\nVersion             : 19.16.0-21_1\nProtectionType      : VM\nVproxyState         : READY\nVproxyStatus        : Ready\n"
                ]
            },
            "hasLogs": false,
            "hasChildren": false,
            "actions": {
                "cancelable": false,
                "retryable": false
            },
            "steps": [],
            "_links": {
                "self": {
                    "href": "
https://10.235.89.211:8443/api/v2/activities/bde117e6-29a2-4710-aae4-2049bdd48f83"
                }
            }
        },
        {
            "id": "6f0ab242-be4b-4f2f-9515-cf49e29691e8",
            "name": "Rotating password on  VM Direct Protection Engine 10.235.89.237",
            "category": "CONFIG",
            "subcategory": "PROTECTION_ENGINE",
            "parentId": "a27e02fa-64a3-43a6-9d40-6ccbdfeeac39",
            "classType": "TASK",
            "source": {
                "type": "DATA_MANAGER"
            },
            "createTime": "2024-06-12T03:11:57.117Z",
            "updateTime": "2024-06-12T03:14:47.129Z",
            "startTime": "2024-06-12T03:13:46.992Z",
            "endTime": "2024-06-12T03:14:47.122Z",
            "duration": 60130,
            "progress": 100,
            "owner": {
                "name": "VMDM",
                "ownerResource": {
                    "id": "081b5d4c-c1e7-4e18-9ba4-11f6a87cdb8e",
                    "resourceType": "com.emc.brs.vmdm.resources.VPEProxyResource"
                }
            },
            "state": "COMPLETED",
            "result": {
                "status": "FAILED",
                "summaries": [
                    "Action              : rotate_password\nTransportMode       : HotaddPreferred\nVproxy              : 10.235.89.237\nError               : Update request unsuccessful.  Unable to Update vProxy.  VM '10.235.89.237' (vm-39577) is not powered on. (0)\nVersion             : 19.16.0-21_1\nProtectionType      : VM\nVproxyState         : READY\nVproxyStatus        : Failed\n"
                ],
                "error": {
                    "原因": "VM '10.235.89.237' (vm-39577) is not powered on."
                }
            },
            "hasLogs": false,
            "hasChildren": false,
            "actions": {
                "cancelable": false,
                "retryable": false
            },
            "_links": {
                "self": {
                    "href": "
https://10.235.89.211:8443/api/v2/activities/6f0ab242-be4b-4f2f-9515-cf49e29691e8"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "
https://10.235.89.211:8443/api/v2/activities?page=1&pageSize=100&filter=parentId%20eq%20%22a27e02fa-64a3-43a6-9d40-6ccbdfeeac39%22{&orderby,queryState,q,groupBy,groupByValue}",
            "templated": true
        }
    }
}

对于搜索引擎

步骤 1:向 API/v2/搜索引擎发出 GET 请求,并记录搜索引擎的“id”,以便在步骤 2 中的后续管理 API 请求中使用。
{
    "page": {
        "size": 1,
        "number": 1,
        "totalPages": 1,
        "totalElements": 1
    },
    "content": [
        {
            "id": "f04c5e04-cc22-424b-9275-905b4f2644b9",
            "name": "Search",
            "config": {
                "indexRetentionDays": 80
            },
            "state": "OPERATIONAL",
            "stateDetail": "Cluster is operational",
            "updatedBy": "admin",
            "maintenanceMode": false,
            "summary": {
                "totalNodes": 1,
                "totalFailed": 0,
                "totalDiskUsage": 1082130432,
                "totalDiskCapacity": 1048062197760,
                "totalAssets": 0,
                "totalAssetsIndexed": 0,
                "lastIndexingActivitySyncTime": "2024-06-14T00:47:33.161905476Z",
                "updateRetryCount": 0,
                "diskCacheNfsServer": "10.235.89.236",
                "nodes": [
                    {
                        "id": "2b2a347c-b6f1-4d2f-b8f7-a8d9867b2228",
                        "hostname": "10.235.89.236",
                        "status": "Ready"
                    }
                ]
            }
        }
    ]
}
步骤 2 向搜索引擎管理 API 发出 POST 请求。
  • 轮换每个搜索节点的密码
API: api/v2/search-clusters/<ClusterID>/management
Operation: POST
Payload:
{
    "operation": "ROTATE_PASSWORD"
}
响应代码:
202:已接受请求以进行处理。
400:请求无效。
401:请求者无权执行此操作。
403:请求者无法执行此操作。
409:由于存在冲突,该操作无法完成。操作已在进行中。
409 表示现有操作正在运行,应重试该请求,直到不再返回 409 为止。
500:意外错误导致服务器无法满足您的请求。
示例响应:
{
    "operation": "ROTATE_PASSWORD",
    "activityId": "f04c5e04-cc22-424b-9275-905b4f2644b9"
}
步骤 3:监视密码轮换请求的活动。
  1. 在 PPDM UI 中的系统作业中监视
  2. 通过 PPDM 活动 API 进行监视
获取搜索群集管理 API 响应返回的 activityId。
对 api/v2/activities/{activityId} 发出 GET 请求
可以重复该 GET 请求,直到“state”变为“COMPLETED”,此时密码轮换操作即告终止。
{
    "id": "f04c5e04-cc22-424b-9275-905b4f2644b9",
    "name": "Rotating password on  Search",
    "category": "CONFIG",

    "subcategory": "SEARCH_ENGINE",
    "parentId": "78227493-cbe4-46d8-b462-0ce20d2a4781",
    "classType": "JOB",
    "source": {
        "type": "DATA_MANAGER"
    },
    "createTime": "2024-06-12T04:02:26.265Z",
    "updateTime": "2024-06-12T04:02:35.062Z",
    "startTime": "2024-06-12T04:02:26.305Z",
    "endTime": "2024-06-12T04:02:35.056Z",
    "duration": 8751,
    "progress": 100,
    "owner": {
        "name": "VMDM",
        "ownerResource": {
            "resourceType": "com.emc.brs.vmdm.resources.search.SearchClusterResource"
        }
    },
    "state": "COMPLETED",
    "result": {
        "status": "OK",
        "summaries": []
    },
    "hasLogs": false,
    "hasChildren": true,
    "actions": {
        "cancelable": false,
        "retryable": false
    },
    "activityInitiatedType": "MANUAL",
    "_links": {
        "self": {
            "href": "https://10.235.89.213:8443/api/v2/activities/f04c5e04-cc22-424b-9275-905b4f2644b9"
        }
    }
}
如需了解各搜索节点的密码轮换结果的更多详细信息,请执行以下操作:
向 activities?filter=parentId%20eq%20"f04c5e04-cc22-424b-9275-905b4f2644b9" 发出 GET 请求,以检索子活动
{
    "page": {
        "size": 1,

        "number": 1,
        "totalPages": 1,
        "totalElements": 1
    },
    "content": [
        {
            "id": "570d6e07-fc9b-4f7b-a852-fc1ce14f7303",
            "name": "Rotating password on  Search Node 10.235.89.238",
            "category": "CONFIG",
            "subcategory": "SEARCH_ENGINE",
            "parentId": "f04c5e04-cc22-424b-9275-905b4f2644b9",
            "classType": "TASK",
            "source": {
                "type": "DATA_MANAGER"
            },
            "createTime": "2024-06-12T04:02:27.305Z",
            "updateTime": "2024-06-12T04:02:35.027Z",
            "startTime": "2024-06-12T04:02:27.327Z",
            "endTime": "2024-06-12T04:02:35.020Z",
            "duration": 7693,
            "progress": 100,
            "owner": {
                "name": "VMDM",
                "ownerResource": {
                    "resourceType": "com.emc.brs.vmdm.resources.search.SearchClusterResource"
                }
            },
            "state": "COMPLETED",
            "result": {
                "状态": "OK",
                "summaries": [
                    "Node                : 10.235.89.238\nAction              : rotate_password\nVcenter             :
vc2.vproxy.asl.lab.emc.com\nDescription         : Node health check completed.\nStatus              : Ready\nActionStatus        : Success\nVersion             : 'Release: '19.17.0-1_SNAPSHOT20240610094653', Build number: '1', Build date: '202406100946'' (19.17.0.1.SNAPSHOT20240610094653 \"202406100946\")\n"
                ]
            },
            "hasLogs": false,
            "hasChildren": false,
            "actions": {
                "cancelable": false,
                "retryable": false
            },
            "_links": {
                "self": {
                    "href": "
https://10.235.89.213:8443/api/v2/activities/570d6e07-fc9b-4f7b-a852-fc1ce14f7303"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "
https://10.235.89.213:8443/api/v2/activities?page=1&pageSize=100&filter=parentId%20eq%20%22f04c5e04-cc22-424b-9275-905b4f2644b9%22{&orderby,queryState,q,groupBy,groupByValue}",
            "templated": true
        }
    }
}

用于报告的引擎


步骤 1:对 api/v2/report-nodes 发出 GET 请求,并记录“id”,以便在步骤 2 中的后续管理 API 请求中使用。
{
    "activityId": "aea5f18e-b58f-415f-acdc-abfe7f96007d",
    "_links": {
        "task": {
            "href": "
https://10.235.89.211:8443/api/v2/activities/aea5f18e-b58f-415f-acdc-abfe7f96007d"
        }
    }
}
步骤 2:向报告节点管理 API 发出 POST 请求。
  • 轮换每个报告节点的密码:
API: api/v2/report-nodes/<NodeID>/management
Operation: POST
Payload:
{
    "operation": "ROTATE_PASSWORD"
}
202:已接受请求以进行处理。
400:错误请求。
401:请求者无权执行此操作。
403:请求者无法执行此操作。
409:由于存在冲突,该操作无法完成。操作已在进行中。
409 表示现有操作正在运行,应重试该请求,直到不再返回 409 为止。
500:内部服务器错误。
示例响应:
{
    "activityId": "ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b",
    "_links": {
        "task": {
            "href": "
https://10.235.89.211:8443/api/v2/activities/ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b"
        }
    }
}
发出此请求后,将在 PPDM 中创建系统作业。
步骤 3:监视密码轮换请求的活动。
  1. 在 PPDM UI 中的系统作业中监视
  2. 通过 PPDM 活动 API 进行监视
获取报告节点管理 API 响应返回的 activityId。
对 api/v2/activities/{activityId} 发出 GET 请求
可以重复该 GET 请求,直到“state”变为“COMPLETED”,此时密码轮换操作即告终止。
{
    "id": "ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b",
    "name": "Rotating 
 password  Report Node irv-host-89-247.vproxy.asl.lab.emc.com",
    "category": "CONFIG",
    "parentId": "61772f5d-0514-4207-93bf-aa1d0bd994c2",
    "classType": "JOB",
    "source": {
        "type": "DATA_MANAGER"
    },
    "createTime": "2024-06-12T04:14:30.923Z",
    "updateTime": "2024-06-12T04:14:44.322Z",
    "startTime": "2024-06-12T04:14:30.972Z",
    "endTime": "2024-06-12T04:14:44.317Z",
    "duration": 13345,
    "progress": 100,
    "owner": {
        "name": "Reporting",
        "ownerResource": {
            "resourceType": "com.emc.brs.reporting.rest.model.ReportNodeResponse"
        }
    },
    "state": "COMPLETED",
    "result": {
        "status": "OK",
        "summaries": []
    },
    "hasLogs": false,
    "hasChildren": true,
    "actions": {
        "cancelable": false,
        "retryable": false
    },
    "activityInitiatedType": "MANUAL",
    "_links": {
        "self": {
            "href": "
https://10.235.89.211:8443/api/v2/activities/ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b"
        }
    }
}
有关各个报告节点密码轮换结果的更多详细信息:
向 activities?filter=parentId%20eq%20"ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b" 发出 GET 请求,以检索子活动
确认状态为“COMPLETED”,并且 result.status 为“OK”
{
    "page": {
        "size": 1,
        "
number": 1,
        "totalPages": 1,
        "totalElements": 1
    },
    "content": [
        {
            "id": "44a62ec8-5f06-4da2-a49d-2098548028f1",
            "name": "Rotating password  Report Node
irv-host-89-247.vproxy.asl.lab.emc.com",
            "category": "CONFIG",
            "parentId": "ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b",
            "classType": "TASK",
            "source": {
                "type": "DATA_MANAGER"
            },
            "createTime": "2024-06-12T04:14:31.027Z",
            "updateTime": "2024-06-12T04:14:44.200Z",
            "startTime": "2024-06-12T04:14:31.046Z",
            "endTime": "2024-06-12T04:14:44.194Z",
            "duration": 13148,
            "progress": 100,
            "owner": {
                "name": "Reporting",
                "ownerResource": {
                    "resourceType": "com.emc.brs.reporting.rest.model.ReportNodeResponse"
                }
            },
            "state": "COMPLETED",
            "result": {
                "状态": "OK",
                "summaries": [
                    "Node                :
irv-host-89-247.vproxy.asl.lab.emc.com\nAction              : rotate_password\nUserName            : admin\nVcenter             : vc2.vproxy.asl.lab.emc.com\nDescription         : Node health check completed.\nStatus              : Ready\nActionStatus        : Success\nVersion             : 'Release: '19.16.0-21_1', Build number: '1', Build date: '2024-06-11T07:35:03Z'' (19.16.0.21.1 \"2024-06-11T07:35:03Z\")\n"
                ]
            },
            "hasLogs": false,
            "hasChildren": false,
            "actions": {
                "cancelable": false,
                "retryable": false
            },
            "activityInitiatedType": "MANUAL",
            "_links": {
                "self": {
                    "href": "
https://10.235.89.211:8443/api/v2/activities/44a62ec8-5f06-4da2-a49d-2098548028f1"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "
https://10.235.89.211:8443/api/v2/activities?page=1&pageSize=100&filter=parentId%20eq%20%22ab8b4132-ab37-4d7f-98a0-4a6b54d53e0b%22{&orderby,queryState,q,groupBy,groupByValue}",
            "templated": true
        }
    }
}

如何通过审核日志监视密码轮换成功

轮换密码时会创建审核日志条目(仅通过 API 调用执行时)。
保护引擎:

报告引擎:

搜索引擎
 

通过命令行工具轮换密码

基础架构节点的密码轮换(搜索/报告):

PPDM 命令行工具 /opt/emc/vmdirect/bin/infranodemgmt:
用法: /opt/emc/vmdirect/bin/infranodemgmt SUBCOMMAND [OPTIONS]
子命令列表:
 delete   删除基础架构节点虚拟机。
 get      获取基础架构节点的配置。
 modify   修改基础架构节点的配置。
 rotatepw 轮换一个或所有基础架构节点的密码。
 redeploy 使用新数据盘重新部署基础架构节点虚拟机(利用所提供的 OVA 或软件存储库中的最新 OVA)。
 upgrade  升级基础架构节点虚拟机(将仅升级系统磁盘)。
 power    对节点虚拟机执行电源关闭和开启操作。
rotatepw 选项:
  -node_id 字符串
    基础架构节点 ID。
        使用“-node_id all”轮换每个节点的密码。
  -out 字符串
    [可选] 将每个节点的结果附加到 csv 文件。

执行步骤:

  1. 以管理员身份通过 SSH 连接到 PPDM
  2. 轮换密码:
    • 对于一个节点: 
      1. 执行:source /opt/emc/vmdirect/unit/vmdirect.env
      2. 获取目标节点的 node_id: /opt/emc/vmdirect/bin/infranodemgmt get
      3. 执行目标 node_id 的密码轮换: /opt/emc/vmdirect/bin/infranodemgmt rotatepw -node_id <node_id here>
    • 对于所有节点: /opt/emc/vmdirect/bin/infranodemgmt rotatepw -node_id all
    • 具有每个附加到 CSV 文件的结果的所有节点: /opt/emc/vmdirect/bin/infranodemgmt rotatepw -node_id all -out /your/file/path

轮换外部 vProxies 的密码:

密码轮换仅适用于外部 vProxy。
PPDM 命令行工具 /opt/emc/vmdirect/bin/vproxymgmt:
用法: /opt/emc/vmdirect/bin/vproxymgmt SUBCOMMAND [OPTIONS]
子命令列表:
 get      列出现有的 vProxy 配置。
 modify   修改现有的 vProxy 配置。
 rotatepw 轮换一个或所有 vProxy 的密码。
 redeploy 重新部署 vProxy(使用所提供的 OVA 或最新版本中的 OVA)。
 power    对 vProxy 执行电源关闭和开启操作。
 delete   删除现有的 vProxy。
rotatepw 选项:
  -vproxy_id 字符串
    vProxy ID。
        使用“-vproxy_id all”轮换每个 vproxy 的密码。
  -out 字符串
    [可选] 将每个 vproxy 的结果附加到 csv 文件。

执行步骤:

  1. 以管理员身份通过 SSH 连接到 PPDM
  2. 轮换密码:
    • 对于一个 vProxy: 
      1. 执行:source /opt/emc/vmdirect/unit/vmdirect.env
      2. 获取需要密码轮换的节点的 vproxy_id: /opt/emc/vmdirect/bin/vproxymgmt get
      3. 为目标 vproxy_id 运行密码轮换: /opt/emc/vmdirect/bin/vproxymgmt rotatepw -vproxy_id <vproxy_id here>
    • 所有外部 vProxy: /opt/emc/vmdirect/bin/vproxymgmt rotatepw -vproxy_id all
    • 对于将状态附加到 CSV 文件的所有外部 vProxy: /opt/emc/vmdirect/bin/vproxymgmt rotatepw -vproxy_id all -out /your/file/path

infranodemgmt/vproxymgmt 工具的退出代码

请参阅成功或失败的密码轮换命令的退出代码。

所有密码轮换均成功时,退出代码为 0。

Waiting for password rotation to complete node for node with ID '3cfd58b9-2998-4b86-bde8-701ff92810e7' ...



已成功执行“rotate_password”操作。
Waiting for password rotation to complete node for node with ID 'ff2e0863-a9a1-43e8-b68f-77ca6b80097c' ...



已成功执行“rotate_password”操作。
两个密码轮换(共两个)成功。
admin@irv-host-89-210:~> echo $?
0

一个或多个密码失败时,退出代码为 1。

Waiting for password rotation to complete node for node with ID '3cfd58b9-2998-4b86-bde8-701ff92810e7' ...



“rotate_password”操作为“failure”。服务器“irv-host-89-249.vproxy.asl.lab.emc.com”(VM-39396) 当前处于关闭状态。
Waiting for password rotation to complete node for node with ID 'ff2e0863-a9a1-43e8-b68f-77ca6b80097c' ...



已成功执行“rotate_password”操作。
两个密码轮换中的一个失败。
admin@irv-host-89-210:~> echo $?
1

CSV 输出文件

通过使用-out <Path/Filename.csv 命令,可以为每个命令操作创建一个输出文件。> 这有助于跟踪所做的更改。-out 将为每次密码轮换生成一行结果,该结果将追加到由 -out 指定的文件中,包含以下字段值:
  • 时间 UTC、节点类型、节点 ID、主机名、结果(“结果”是“成功”或错误消息) 
输出文件示例:
时间 UTC、节点类型、节点 ID、主机名、结果
2024-05-15T00:03:50Z,vProxy,fb3e7e15-e5f7-456b-8207-e78344e32cf3,10.235.89.236,Success
2024-05-15T00:05:25Z,vProxy,32c44830-a3d0-4711-9a96-34a0c3c5d487,10.235.89.237,Success
2024-05-15T00:48:58Z,node,3cfd58b9-2998-4b86-bde8-701ff92810e7,10.235.89.238,'rotate_password' operation failed. VM '10.235.89.238' (vm-39345) is not powered on.
2024-05-15T00:49:08Z,node,ff2e0863-a9a1-43e8-b68f-77ca6b80097c,irv-host-89-249.vproxy.asl.lab.emc.com,Success

故障处理:

无效密码轮换的处理

  • 密码轮换失败时,将返回错误消息。为轮换返回错误消息的每个节点重试密码轮换。

密码轮换结果在极少数情况下可能不确定:

  • 如果 PPDM 无法获取在外部节点上执行的更改密码操作的结果,则密码轮换的结果可能不确定。在这种情况下,不知道节点的实际密码是新生成的密码还是现有密码。
  • 在这种情况下,get-secret 命令的 infranodemgmt/vproxymgmt 工具的输出中都会显示现有密码和“New”密码。此命令需要 root。
  • “新”密码的标记如以下示例所示。在这种情况下,只有管理员密码处于不确定状态。
  • 两个密码中的一个应为有效密码。
  1. 以管理员身份通过 SSH 连接到 PPDM。提升到 root 用户。
  2. source /opt/emc/vmdirect/unit/vmdirect.env
  3. /opt/emc/vmdirect/bin/infranodemgmt node -get secret
节点 ID:ff2e0863-a9a1-43e8-b68f-77ca6b80097c
节点类型:报告节点
主机名:irv-host-89-249.vproxy.asl.lab.emc.com
已禁用:false
Status:就绪
虚拟机名称:irv-host-89-249.vproxy.asl.lab.emc.com
vCenter 资源清册源 ID:980e9a79-86a9-51d9-8191-9224f78273b5
VCenter:vc2.vproxy.asl.lab.emc.com
AdminCredentials-用户名: 'admin' Password: '9VgBfj+gW,W3(sTo'
(新)管理员凭证-用户名:'admin' Password: 'dgwK2qHgdGp#,AR0'
RootCredentials-用户名: 'root' Password: 'V86!QW3P4;,;*48a'
 
文章属性
文章编号: 000226181
文章类型: How To
上次修改时间: 05 9月 2025
版本:  3
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。