使用 API 轮换密钥文件
您可以通过更新项目的自动化配置,以编程方式轮换密钥文件。
要使用 Ops Manager API 轮换密钥文件,请执行以下操作:
检索当前配置。
添加要与auth.newKey设置一起使用的新密钥文件。
使用
PUT
替换整个配置。 您必须使用PUT
。 请勿使用PATCH
。
当所有 MongoDB 代理都使用新密钥时,Ops Manager 会将auth.key的值替换为您在auth.newKey中提供的新密钥,并从自动化配置中删除auth.newKey 。
先决条件
您必须有权访问 API 。 要了解更多信息,请参阅配置 API 访问权限。
您的 API 密钥必须具有
Project Automation Admin
或Project Owner
角色。必须启用身份验证。
项目中至少有一个集群必须将clusterAuthMode选项设置为
keyFile
或sendKeyFile
。项目中的所有集群都必须运行 MongoDB 4.2 或更高版本。
自动化配置 API 资源的变量
API 资源使用其中的一个或多个变量。 在调用这些 API 资源之前,将这些变量替换为您所需的值。
步骤
从 Ops Manager 检索并验证自动化配置。
使用AutomationConfig资源检索配置。 发出以下命令,将占位符替换为自动化配置 API 资源的变量。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true" \ --output currentAutomationConfig.json 验证下载的自动化配置文件。
将
currentAutomationConfig.json
的version
字段与自动化配置备份文件mms-cluster-config-backup.json
进行比较。version
值是两个JSON文档中的最后一个元素。 您可以在任何运行 MongoDB Agent 的主机上找到此文件,网址为:Linux 和 macOS:
/var/lib/mongodb-mms-automation/mms-cluster-config-backup.json
Windows:
%SystemDrive%\MMSAutomation\versions\mms-cluster-config-backup.json
如果
version
值匹配,则您正在使用当前版本的自动化配置文件。
将新密钥文件添加到下载的自动化配置文件中。
在您首选的文本编辑器中打开
currentAutomationConfig.json
。添加auth.newKey字段。将此字段的值设置为您希望 Ops Manager 使用的新密钥文件。
注意
为了便于阅读,以下示例配置已被截断。
{ "auth": { "disabled": "false", "key": "<your-old-key>", "newKey": "<your-new-key>" } }
如果您要更新 MongoDB 代理,请在继续执行此过程之前参阅更新代理版本。
发送更新的自动化配置。
使用AutomationConfig资源发送更新的自动化配置。
使用更新后的配置文档的路径发出以下命令,并将占位符替换为自动化配置 API 资源的变量。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Content-Type: application/json" --request PUT "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true" \ --data @currentAutomationConfig.json
成功更新配置后,API 会返回 HTTP 200 OK
状态代码,以指示请求已成功。
检查部署状态以确保达到目标状态。
使用AutomationStatus资源检索部署状态。 发出以下命令,将占位符替换为自动化配置 API 资源的变量。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationStatus?pretty=true"
确认processes
数组中所有lastGoalVersionAchieved
字段的值与goalVersion
字段匹配。 要了解部署状态,请参阅获取最新计划的自动化状态。