Girar um arquivo de chave com a API
Você pode girar um arquivo de chave programaticamente atualizandoa configuração de automação de um projeto.
Para rotacionar um arquivo de chave usando a API do Ops Manager:
Recupere a configuração atual.
Adicione o novo arquivo de chave que você deseja utilizar com a configuração auth.newKey .
Substitua toda a configuração usando
PUT
. Você deve usarPUT
. Não usePATCH
.
Quando todos os agente MongoDB usarem a nova chave, o Ops Manager substituirá o valor de auth.key pela nova chave que você forneceu em auth.newKey e removerá auth.newKey da configuração de automação.
Pré-requisitos
Você deve ter acesso àAPI . Para saber mais, consulte Configurar o acesso à API.
Sua chave de API deve ter a função
Project Automation Admin
ouProject Owner
.A autenticação deve estar habilitada.
Pelo menos um cluster no projeto deve ser configurado com a opção clusterAuthMode definida como
keyFile
ousendKeyFile
.Todos os clusters no projeto devem estar executando o MongoDB versão 4.2 ou superior.
Variáveis para recursos de API de configuração de automação
Os recursos da API usam uma ou mais dessas variáveis. Substitua essas variáveis pelos valores desejados antes de chamar esses recursos da API.
Nome | Tipo | Descrição |
---|---|---|
PUBLIC-KEY | string | Sua chave de API pública para suas credenciais de API. |
PRIVATE-KEY | string | Sua chave de API privada para suas credenciais de API . |
<OpsManagerHost>:<Port> | string | URL da sua instância do Ops Manager. |
GROUP-ID | string | Identificador único do seu projeto a partir das configurações do projeto. |
CLUSTER-ID | string | Identificador único do seu cluster. |
Procedimento
Recupere e valide a configuração de automação do Ops Manager.
Use o recurso automationConfig para recuperar a configuração. Emita o comando a seguir, substituindo os espaços reservados pelas variáveis para recursos da API de configuração de automação.
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 Valide o arquivo de configuração de automação baixado.
Compare o campo
version
docurrentAutomationConfig.json
com o do arquivo de backup da Configuração de Automação,mms-cluster-config-backup.json
. O valorversion
é o último elemento em ambos os documentos JSON . Você pode encontrar este arquivo em qualquer host que execute o MongoDB agente em:Linux e macOS:
/var/lib/mongodb-mms-automation/mms-cluster-config-backup.json
Windows:
%SystemDrive%\MMSAutomation\versions\mms-cluster-config-backup.json
Se os valores
version
corresponderem, você estará trabalhando com a versão atual do arquivo de configuração de automação.
Adicione seu novo arquivo de chave ao arquivo de configuração de automação que você baixou.
Abra
currentAutomationConfig.json
no seu editor de texto preferido.Adicione o campo auth.newKey . Defina o valor desse campo como o novo arquivo de chave que você deseja que o Ops Manager use.
Observação
A configuração de amostra abaixo é truncada para legibilidade.
{ "auth": { "disabled": "false", "key": "<your-old-key>", "newKey": "<your-new-key>" } }
Se você estiver atualizando o MongoDB Agent, consulte Atualizar versões do agente antes de continuar com este procedimento.
Envie a configuração de automação atualizada.
Use o recurso automationConfig para enviar a configuração de automação atualizada.
Emita o comando a seguir com o caminho para o documento de configuração atualizado e substitua os espaços reservados pelas variáveis para recursos da API de configuração de automação.
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
Após a atualização bem-sucedida da configuração, a API retorna o código de status HTTP 200 OK
para indicar que a solicitação foi bem-sucedida.
Confirme a atualização bem-sucedida da configuração de automação.
Recupere a configuração de automação do Ops Manager e confirme se ela contém as alterações. Para recuperar a configuração, emita o seguinte comando, substituindo os espaços reservados pelas variáveis para recursos de API de configuração de automação.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true"
Verifique o status do sistema para garantir que o estado do objetivo seja atingido.
Use o recurso automationStatus para recuperar o status do sistema. Emita o comando a seguir, substituindo os espaços reservados pelas variáveis para recursos da API de configuração de automação.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationStatus?pretty=true"
Confirme que os valores de todos os campos lastGoalVersionAchieved
na array processes
correspondem ao campo goalVersion
. Para saber mais sobre o status da implementação, consulte Obter o status de automação do plano mais recente.