You can programmatically rotate a key file by updating a project's automation configuration.
Para rotar un archivo clave usando la API de Ops Manager:
Recuperar la configuración actual.
Agregue el nuevo archivo de clave que desea utilizar con la configuración auth.newKey.
Replace the entire configuration using
PUT. You must usePUT. Do not usePATCH.
Cuando todos los agentes de MongoDB usan la nueva clave, Ops Manager reemplaza el valor de auth.key con la nueva clave que proporcionó en auth.newKey y elimina auth.newKey de la configuración de automatización.
Requisitos previos
You must have access to the API. To learn more, see Configure API Access.
Su clave API debe tener el rol
Project Automation AdminoProject Owner.La autenticación debe estar habilitada.
Al menos un clúster en el proyecto debe estar configurado con la opción clusterAuthMode establecida
keyFileensendKeyFileo.Todos los clústeres del proyecto deben ejecutar MongoDB versión 4.2 o superior.
Variables para recursos de la API de configuración de automatización
Los recursos de la API utilizan una o más de estas variables. Reemplaza estas variables con tus valores deseados antes de llamar a estos recursos API.
Nombre | Tipo | Descripción |
|---|---|---|
| string | Your public API Key for your API credentials. |
| string | Your private API Key for your API credentials. |
| string | URL de su instancia de Ops Manager. |
| string | Identificador único de su proyecto desde la configuración de su proyecto. |
| string | Identificador único de su clúster. |
Procedimiento
Recupere y valide la configuración de automatización de Ops Manager.
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 Validar el archivo de configuración de automatización descargado.
Compare the
versionfield of thecurrentAutomationConfig.jsonwith that of the Automation Configuration backup file,mms-cluster-config-backup.json. Theversionvalue is the last element in both JSON documents. You can find this file on any host running the MongoDB Agent at:Linux and macOS:
/var/lib/mongodb-mms-automation/mms-cluster-config-backup.jsonWindows:
%SystemDrive%\MMSAutomation\versions\mms-cluster-config-backup.json
Si los valores
versioncoinciden, está trabajando con la versión actual del archivo de configuración de automatización.
Agrega tu nuevo archivo de clave al archivo de configuración de automatización que descargaste.
Abra
currentAutomationConfig.jsonen su editor de texto preferido.Agregue el campo auth.newKey. Establezca el valor de este campo con el nuevo archivo de clave que desea que Ops Manager use.
Nota
La siguiente configuración de muestra está truncada para facilitar su lectura.
{ "auth": { "disabled": "false", "key": "<your-old-key>", "newKey": "<your-new-key>" } }
Si está actualizando el Agente MongoDB, consulte Actualizar versiones del agente antes de continuar con este procedimiento.
Envíe la configuración de automatización actualizada.
Utilice el recurso automationConfig para enviar la configuración de automatización actualizada.
Emita el siguiente comando con la ruta al documento de configuración actualizado y reemplace los marcadores de posición con las variables para los recursos de API de configuración de automatización.
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
Tras una actualización exitosa de la configuración, la API devuelve el código de estado HTTP 200 OK para indicar que la solicitud se realizó correctamente.
Confirmar la actualización exitosa de la configuración de automatización.
Recupere la configuración de automatización de Ops Manager y confirme que contenga los cambios. Para recuperarla, ejecute el siguiente comando, reemplazando los marcadores de posición con las variables de los recursos de la API de configuración de automatización.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true"
Verifique el estado de la implementación para garantizar que se alcance el estado objetivo.
Utilice el recurso automationStatus para recuperar el estado de la implementación. Ejecute el siguiente comando, reemplazando los marcadores de posición con las variables de los recursos de la API de configuración de automatización.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationStatus?pretty=true"
Confirme que los valores de todos los lastGoalVersionAchieved campos de la processes matriz coincidan con los del goalVersion campo. Para obtener información sobre el estado de la implementación, consulte Obtener el estado de automatización del último plan.