Criando uma instância de serviço para MongoDBOps Manager programaticamente
Após a instalação MongoDB, é necessário criar pelo menos uma instância MongoDBOps Manager de serviço no projeto operandos. Se você é um Cloud Pak for Data usuário, pode usar a chamada /v3/service_instances da API REST para criar instâncias de serviço programaticamente.
- Quem precisa concluir esta tarefa?
- Para criar uma instância de serviço programaticamente usando a chamada
/v3/service_instancesda API REST, você deve ter a permissão Criar instâncias de serviço (can_provision) em IBM® Software Hub.
- Quando você precisa concluir essa tarefa?
- Conclua esta tarefa apenas se desejar criar uma instância de serviço programaticamente usando a chamada
/v3/service_instancesda API REST.
Métodos alternativos para criar uma instância de serviço
- A partir do cliente web. Para obter mais informações, consulte Criando uma instância de serviço para MongoDBOps Manager a partir do cliente web.
- Usando o
cpd-cli service-instance createcomando. Para obter mais informações, consulte Criando uma instância de serviço para MongoDBOps Manager com o comando cpd-cli service-instance create.
Informações necessárias para concluir esta tarefa
Analise as seguintes informações antes de criar uma instância de serviço para MongoDB :
- Requisitos de Versão
Todos os componentes associados a uma instância do Cloud Pak for Data devem ser instalados ou criados na mesma versão. Por exemplo, se MongoDB estiver instalado na versão 5.3.1, você deve criar a instância do serviço na versão 5.3.1.
Importante: MongoDBOps Manager usa um número de versão diferente de Cloud Pak for Data. Este tópico inclui uma tabela que mostra a MongoDBOps Manager versão para cada atualização do Cloud Pak for Data. Use esta tabela para encontrar a versão correta com base na versão do Cloud Pak for Data que está instalada.
- Variáveis de ambiente
Os comandos nesta tarefa utilizam variáveis de ambiente para que você possa executá-los exatamente como estão escritos.
- Se você não tiver o script que define as variáveis de ambiente, consulte Configurando as variáveis de ambiente de instalação.
- Para usar as variáveis de ambiente do script, você deve obter as variáveis de ambiente antes de executar os comandos nesta tarefa. Por exemplo, execute:
source ./cpd_vars.sh
Antes de iniciar
Esta tarefa pressupõe que os seguintes pré-requisitos estejam atendidos:
| Pré-requisito | Onde Localizar Mais Informações |
|---|---|
| MongoDB está instalado. | Se esta tarefa não estiver concluída, consulte Instalação MongoDB. |
| Você gerou uma chave API. A chave API deve estar associada a um usuário que tenha a permissão Criar instâncias de serviço ( |
Se essa tarefa não estiver concluída, consulte Gerando um token de autorização de API. |
Procedimento
Conclua as seguintes tarefas para criar uma instância de serviço:
Criando uma instância de serviço
Para criar uma instância de serviço:
- Mude para o diretório em sua estação de trabalho onde deseja criar o arquivo JSON que define a carga útil da instância do serviço.
- Defina as variáveis de ambiente usadas para preencher a carga JSON para o MongoDBOps Manager .
- Defina a variável
OPS_MGR_NAMEde ambiente como o nome exclusivo que você deseja usar como nome de exibição para o Ops Manager:export OPS_MGR_NAME="<display-name>"Este nome é exibido na página Instâncias do cliente IBM Software Hub web.
O nome de exibição é um
stringe pode conter apenas caracteres alfanuméricos minúsculos (a-z, 0-9), traços (-) e pontos (.).O nome de exibição deve começar e terminar com um caractere alfanumérico.
- Defina a variável
OPS_MGR_DESCRIPTIONde ambiente para a descrição que você deseja usar para o Ops Manager:export OPS_MGR_DESCRIPTION="<description>"Essa descrição é exibida na página Instâncias do cliente IBM Software Hub web.
A descrição é um
stringe pode conter caracteres alfanuméricos, espaços, traços, sublinhados e pontos. Certifique-se de colocar o nome de exibição entre aspas, conforme mostrado no comandoexportanterior. - Defina a variável
OPS_MGR_VERSIONde ambiente para uma versão que corresponda à versão do IBM Software Hub seu cluster:export OPS_MGR_VERSION=<version>Use a tabela a seguir para determinar os valores disponíveis:
Versão IBM Software Hub Versão Ops Manager 5.3.1 7.0.15, 8.0.6 5.3.0 7.0.15, 8.0.6 - Defina a variável
OPS_MGR_USERNAMEde ambiente com o nome que você deseja usar para acessar o Ops Manager:export OPS_MGR_USERNAME=<username> - Defina a variável
OPS_MGR_PASSWORDde ambiente com a senha que você deseja usar para acessar o Ops Manager:export OPS_MGR_PASSWORD=<password>A senha deve ter pelo menos 8 caracteres e conter pelo menos uma letra, um número e um caractere especial.
- Defina a variável
OPS_MGR_ON_DEDICATEDde ambiente com base na sua intenção de implantar em Ops Manager nós dedicados:export MGR_ON_DEDICATED=<boolean>- Especifique true para executar Ops Manager em nós dedicados.
- Especifique false para executar o Ops Manager em nós onde outros pods estão sendo executados.
Para mais informações, consulte Configurando notas dedicadas para sua MongoDB implantação.
- Defina a variável
AUTO_DELETE_RESOURCESde ambiente com base na sua preferência de excluir automaticamente as reivindicações de volume persistente (PVCs) e os segredos associados ao Ops Manager quando você excluir uma Ops Manager instância.export AUTO_DELETE_RESOURCES=<boolean>- Especifique true para excluir automaticamente os recursos quando você excluir uma instância de serviço.Importante: a exclusão é permanente. Os dados nos PVCs e segredos não podem ser recuperados.
- Especifique false para preservar os recursos ao excluir uma instância de serviço.
- Especifique true para excluir automaticamente os recursos quando você excluir uma instância de serviço.
- Defina a variável
MD_INSTANCE_REPLICASde ambiente para o número de réplicas dos Ops Manager metadados a serem criados:export MD_INSTANCE_REPLICAS=<integer>Especifique um número inteiro entre 1 e 50. Especifique duas ou mais réplicas para alta disponibilidade. O valor recomendado é 3.
- Defina a variável
MD_REPLICA_CPUde ambiente com base no número de CPUs que você deseja alocar para cada réplica Ops Manager de metadados:export MD_REPLICA_CPU=<integer>Especifique um número inteiro entre 1 e 16.
- Defina a variável
MD_REPLICA_MEMORYde ambiente com base na quantidade de memória que deseja alocar para cada réplica Ops Manager de metadados:export MD_REPLICA_MEMORY=<integer>Especifique um número inteiro entre 1 e 64.
- Defina a variável
MD_STORAGE_SIZEde ambiente com base na quantidade de metadados que você planeja armazenar, incluindo backups:export MD_STORAGE_SIZE=<integer>Especifique um número inteiro entre 1 e 300.
- Defina a variável
MD_STORAGE_UNITde ambiente:export MD_STORAGE_UNIT=<unit>Especifique Gi para gibibytes, Ti para tebibytes ou Pi para pebibytes.
- Defina a variável
MGR_INSTANCE_REPLICASde ambiente para o número de réplicas do Ops Manager que deseja criar:export MGR_INSTANCE_REPLICAS=<integer>Especifique um número inteiro entre 1 e 50. Especifique duas ou mais réplicas para alta disponibilidade. O valor recomendado é 3.
- Defina a variável
MGR_REPLICA_CPUde ambiente com base no número de CPUs que você deseja alocar para cada Ops Manager réplica:export MGR_REPLICA_CPU=<integer>Especifique um número inteiro entre 1 e 16.
- Defina a variável
MGR_REPLICA_MEMORYde ambiente com base na quantidade de memória que você deseja alocar para cada Ops Manager réplica:export MGR_REPLICA_MEMORY=<integer>Especifique um número inteiro entre 1 e 64.
- Defina a variável
MGR_STORAGE_SIZEde ambiente com base no número de bancos de dados que você planeja gerenciar a partir desta instância do Ops Manager:export MGR_STORAGE_SIZE=<integer>Especifique um número inteiro entre 1 e 1000.
- Defina a variável
MGR_STORAGE_UNITde ambiente:export MD_STORAGE_UNIT=<unit>Especifique Gi para gibibytes, Ti para tebibytes ou Pi para pebibytes.
- Defina a variável
- Crie o
mongodb-ops-mgr.jsonarquivo de carga útil:cat << EOF > ./mongodb-ops-mgr.json{ "addon_type": "opsmanager", "display_name": "${OPS_MGR_NAME}", "namespace": "${PROJECT_CPD_INST_OPERANDS}", "addon_version": "${VERSION}", "create_arguments": { "description": "${OPS_MGR_DESCRIPTION}", "metadata":{ "opsusername":"${OPS_MGR_USERNAME}", "opspassword":"${OPS_MGR_PASSWORD}" }, "parameters": { "mgrapplyondedicated": "${OPS_MGR_ON_DEDICATED}", "mgrforcedeleteresources": "${AUTO_DELETE_RESOURCES}", "mdnumberofnodes": "${MD_INSTANCE_REPLICAS}", "mdcorespernode": "${MD_REPLICA_CPU}", "mdmemorypernode": "${MD_REPLICA_MEMORY}", "mdsize": "${MD_STORAGE_SIZE}", "mdunit": "${MD_STORAGE_UNIT}", "mdstorageclass": "${STG_CLASS_FILE}", "mgrnumberofnodes": "${MGR_INSTANCE_REPLICAS}", "mgrcorespernode": "${MGR_REPLICA_CPU}", "mgrmemorypernode": "${MGR_REPLICA_MEMORY}", "mgrsize": "${MGR_STORAGE_SIZE}", "mgrunit": "${MGR_STORAGE_UNIT}", "mgrstorageclass": "${STG_CLASS_FILE}" "mgrversion": "${OPS_MGR_VERSION}", } } } EOFAs seguintes variáveis de ambiente utilizam os valores já definidos no script de variáveis de ambiente da sua instalação:${PROJECT_CPD_INST_OPERANDS}${STG_CLASS_FILE}
- Defina a variável
PAYLOAD_FILEde ambiente como o nome completo do arquivo de carga JSON em sua estação de trabalho:export PAYLOAD_FILE=<fully-qualified-JSON-file-name> - Defina as variáveis de ambiente usadas para se conectar à instância onde você deseja criar IBM Software
Hub a instância do serviço:
- Defina a variável
CPD_ROUTEde ambiente:export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})O comando usa a
PROJECT_CPD_INST_OPERANDSvariável, que já está definida no script de variáveis de ambiente da sua instalação. - Defina a variável
API_KEYde ambiente para a chave da API que você criou:export API_KEY=<your_api_key>
- Defina a variável
- Crie a instância do serviço a partir do arquivo de carga útil.
O comando que você executa depende se a instância em IBM Software Hub que deseja criar a instância do serviço usa um certificado autoassinado ou um certificado assinado por uma autoridade certificadora confiável.
A instância utiliza um certificado assinado por uma autoridade certificadora confiável
curl --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
A instância usa um certificado autoassinado (padrão)
curl -k --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
Se a solicitação foi bem-sucedida, o comando retorna um dos seguintes códigos HTTP de resposta:- 200 - A solicitação foi concluída com sucesso e a instância do serviço foi provisionada.
- 202 - A solicitação foi enviada com sucesso. A instância do serviço está sendo provisionada.
Se a solicitação não foi bem-sucedida, use o código HTTP de resposta para determinar o motivo.
Validando se a instância do serviço foi criada
Para validar que a instância do serviço foi criada:
- Defina a variável
INSTANCE_IDde ambiente para o ID que foi retornado peloPOSTcURL comando:export INSTANCE_ID=<ID-from-response> - Obtenha o status da instância do serviço.
O comando que você executa depende se a instância em IBM Software Hub que deseja criar a instância do serviço usa um certificado autoassinado ou um certificado assinado por uma autoridade certificadora confiável.
A instância utiliza um certificado assinado por uma autoridade certificadora confiável
curl --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json'
A instância usa um certificado autoassinado (padrão)
curl -k --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json'
- Se a solicitação foi bem-sucedida, o comando retorna o seguinte código HTTP de resposta: 200Encontre o
provision_statusparâmetro na resposta JSON.- Se o valor for
PROVISIONED, a instância do serviço foi criada com sucesso. - Se o valor for
PROVISION_IN_PROGRESS, aguarde alguns minutos e execute o comando novamente. - Se o valor for
FAILED, verifique os registros dos podszen-core-apizen-watchere para possíveis causas.
- Se o valor for
- Se a solicitação não foi bem-sucedida, use o código HTTP de resposta para determinar o motivo.
- Se a solicitação foi bem-sucedida, o comando retorna o seguinte código HTTP de resposta: 200
O quê fazer em seguida
Depois de provisionar o MongoDB Ops Manager, você pode implantar uma ou mais MongoDB instâncias de banco de dados. Para obter mais informações, consulte Criando uma instância de serviço para um MongoDB programaticamente.