Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Implementa un clúster a través de la API

Este tutorial manipula el Administración de la API de Cloud Manager configuración de automatización para implementar un clúster que sea propiedad de otro usuario. El tutorial primero crea un nuevo proyecto, luego un nuevo usuario como propietario del proyecto y después un clúster fraccionado propiedad del nuevo usuario. Puedes crear un script para automatizar estos procedimientos para su uso en operaciones rutinarias.

Para realizar estos pasos, debe tener acceso suficiente a Cloud Manager. Un usuario con el Project Owner el rol tiene acceso suficiente.

Los procedimientos instalan un clúster con dos fragmentos. Cada fragmento consta de un conjunto de réplicas de tres miembros. El tutorial instala un mongos y tres servidores de configuración. Cada componente del clúster reside en su propio servidor, lo que requiere un total de 10 hosts.

El tutorial instala el MongoDB Agent en cada host.

Aprovisione diez hosts para servir los componentes del clúster fragmentado. Para conocer los requisitos de los hosts, consulte las Notas de producción en el manual de MongoDB.

Cada host debe proporcionar a su agente MongoDB acceso completo a los nombres de host y puertos de los agentes MongoDB en todos los demás hosts. Cada agente ejecuta el comando hostname -f para identificar su nombre de host y puerto e informarlos a Cloud Manager.

Tip

Para garantizar que los agentes puedan comunicarse entre sí, aprovisione los hosts mediante Automation. Esto instala los agentes de MongoDB con acceso correcto a la red. Utilice este tutorial para reinstalar Automations en esas máquinas.

A medida que trabajes con el API, puedes ver ejemplos en la página de ejemplos de GitHub.

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

PUBLIC-KEY

string

Su clave API pública para sus credenciales de API.

PRIVATE-KEY

string

Tu llave privada de API para tus credenciales de API.

cloud.mongodb.com

string

URL de la instancia de Cloud Manager.

GROUP-ID

string

Identificador único de tu proyecto desde la configuración del proyecto.

1

Utiliza la API de administración de Cloud Manager para enviar un documento de proyectos y crear el nuevo proyecto.

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Content-Type: application/json" \
--request POST "https://cloud.mongodb.com/api/public/v1.0/groups?pretty=true" \
--data '
{
"name": "{GROUP-NAME}"
}'

La API devuelve un documento que incluye los y del proyecto.agentApiKey id

2

Tome nota de estos valores para utilizarlos en este procedimiento y en otros procedimientos de este tutorial.

3

Utiliza el endpoint /users para agregar un usuario al nuevo proyecto.

El cuerpo de la solicitud debe contener un documento JSON con la información del usuario.

Configura el roles.roleName del usuario en GROUP_OWNER y configura el roles.groupId del usuario en el id del nuevo grupo.

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header 'Accept: application/json' \
--header "Content-Type: application/json" \
--request POST "https://cloud.mongodb.com/api/public/v1.0/users?pretty=true" \
--data '
{
"username": "<new_user@example.com>",
"emailAddress": "<new_user@example.com>",
"firstName": "<First>",
"lastName": "<Last>",
"password": "<password>",
"roles": [{
"groupId": "{PROJECT-ID}",
"roleName": "GROUP_OWNER"
}]
}'
1

Para aprender cómo instalar el Agente MongoDB, siga el procedimiento para la plataforma apropiada.

2

Cuando el MongoDB Agent se ejecuta por primera vez, descarga el archivo mms-cluster-config-backup.json, que describe el estado deseado de la configuración de automatización.

En uno de los hosts, navegue hasta /var/lib/mongodb-mms-automation/ y abra mms-cluster-config-backup.json. Confirma que el campo version del archivo esté configurado en 1. Cloud Manager aumenta automáticamente este campo a medida que ocurren cambios.

Para añadir o actualizar una implementación, recupera la configuración, realiza los cambios necesarios y envía la configuración actualizada a través de la API a Cloud Manager.

El siguiente procedimiento implementa una configuración de automatización actualizada a través de la API:

1
  1. Utilice el recurso automationConfig para recuperar la configuración. Ejecute el siguiente comando, reemplazando los marcadores de posición con las variables para los recursos de la API de creación de clústeres.

    curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
    --request GET "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true" \
    --output currentAutomationConfig.json
  2. Validar el archivo de configuración de automatización descargado.

    Compara el campo version del currentAutomationConfig.json con el del archivo de copia de seguridad de Configuración de Automatización, mms-cluster-config-backup.json. El valor version es el último elemento en ambos documentos JSON . Puedes encontrar este archivo en cualquier host que ejecute el MongoDB Agent en:

    • Linux y macOS: /var/lib/mongodb-mms-automation/mms-cluster-config-backup.json

    • Windows: %SystemDrive%\MMSAutomation\versions\mms-cluster-config-backup.json

    Si los valores version coinciden, estás trabajando con la versión actual del archivo de configuración de Automatización.

2

Cree un documento con los siguientes campos. Mientras compila el documento de configuración, consulte la descripción de una configuración de automatización para obtener explicaciones detalladas de las configuraciones. Para ejemplos, consulta la página de MongoDB Labs.

1{
2 "options": {
3 "downloadBase": "/var/lib/mongodb-mms-automation",
4 },
5 "mongoDbVersions": [],
6 "monitoringVersions": [],
7 "backupVersions": [],
8 "processes": [],
9 "replicaSets": [],
10 "sharding": []
11}
3

En el campo monitoringVersions.hostname, introduce el nombre de host del servidor en el que Cloud Manager debe instalar la supervisión. Utiliza el nombre de dominio completo que ejecuta hostname -f en el servidor y devuelve, como en el siguiente ejemplo:

1"monitoringVersions": [
2 {
3 "hostname": "<server_x.example.com>",
4 "logPath": "/var/log/mongodb-mms-automation/monitoring-agent.log",
5 "logRotate": {
6 "sizeThresholdMB": 1000,
7 "timeThresholdHrs": 24
8 }
9 }
10]

Este ejemplo de configuración también incluye el campo logPath, que indica la ubicación del registro, y logRotate, que indica los umbrales del registro.

4

Este clúster tiene 10 instancias de MongoDB, como se describe en el Implementa un clúster a través de la API, cada una de ellas ejecutándose en su propio servidor. Por lo tanto, el arreglo processes de la configuración de automatización tendrá 10 documentos, uno para cada instancia de MongoDB.

El siguiente ejemplo agrega el primer documento a la arreglo processes. Reemplace <process_name_1> con cualquier nombre que elija y reemplace <server1.example.com> con el FQDN del host.

Agrega 9 documentos: uno para cada instancia de MongoDB en su clúster compartido.

Especifique la args2_6 sintaxis para el processes.<args> campo. El processes.args2_6 objeto acepta la mayoría de las configuraciones y parámetros de MongoDB para las versiones 2.6 y posteriores. Para obtener más información, consulte Configuración y compatibilidad con automatización de MongoDB.

1"processes": [
2 {
3 "version": "4.0.6",
4 "name": "<process_name_1>",
5 "hostname": "<server1.example.com>",
6 "logRotate": {
7 "sizeThresholdMB": 1000,
8 "timeThresholdHrs": 24
9 },
10 "authSchemaVersion": 5,
11 "featureCompatibilityVersion": "4.0",
12 "processType": "mongod",
13 "args2_6": {
14 "net": {
15 "port": 27017
16 },
17 "storage": {
18 "dbPath": "/data/"
19 },
20 "systemLog": {
21 "path": "/data/mongodb.log",
22 "destination": "file"
23 },
24 "replication": {
25 "replSetName": "rs1"
26 }
27 }
28 },
29]
5

Agrega dos documentos del set de réplicas al arreglo replicaSets. Agrega tres miembros a cada documento.

Ejemplo

Esta sección agrega un miembro de set de réplicas al primer documento de set de réplicas:

Importante

Debe incluir "protocolVersion": 1 en el documento raíz para cada conjunto de réplicas.

1"replicaSets": [
2 {
3 "_id": "rs1",
4 "members": [
5 {
6 "_id": 0,
7 "host": "<process_name_1>",
8 "priority": 1,
9 "votes": 1,
10 "secondaryDelaySecs": 0,
11 "hidden": false,
12 "arbiterOnly": false
13 }
14 ],
15 "protocolVersion": 1
16 }
17]

En el arreglo sharding, añade los sets de réplicas a las particiones y añade el nombre del set de réplicas del servidor de configuración, como en el siguiente ejemplo:

1"sharding": [
2 {
3 "shards": [
4 {
5 "tags": [],
6 "_id": "shard1",
7 "rs": "rs1"
8 },
9 {
10 "tags": [],
11 "_id": "shard2",
12 "rs": "rs2"
13 }
14 ],
15 "name": "sharded_cluster_via_api",
16 "configServerReplica": "rs-config",
17 "collections": []
18 }
19]
6

Utiliza 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 la API de creación de clúster.

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Content-Type: application/json"
--request PUT "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true" \
--data @currentAutomationConfig.json

Tras la actualización exitosa de la configuración, la API devuelve el código de estado HTTP 200 OK para indicar que la solicitud se ha realizado correctamente.

7

Recupera la configuración de automatización de Cloud Manager y confirma que contenga los cambios. Para recuperar la configuración, emite el siguiente comando, reemplazando los marcadores de posición con las Variables para los recursos de la API de creación del clúster.

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--request GET "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true"
8

Utilice el recurso automationStatus para verificar que la actualización de configuración se haya implementado completamente. Ejecute el siguiente comando:

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--request GET "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/automationStatus?pretty=true"

El comando curl devuelve un objeto JSON que contiene el arreglo processes y la clave y el valor goalVersion. El arreglo processes contiene un documento para cada servidor que alberga una instancia de MongoDB. La nueva configuración se implementa de forma exitosa cuando todos los campos lastGoalVersionAchieved en el arreglo processes son iguales al valor especificado para goalVersion.

Ejemplo

En esta respuesta, processes[2].lastGoalVersionAchieved está detrás de goalVersion. Esto indica que la instancia de MongoDB en server3.example.com se está ejecutando una versión posterior a la de goalVersion. Espere unos segundos y vuelva a ejecutar el comando curl.

1{
2 "goalVersion": 2,
3 "processes": [{
4 "hostname": "server1.example.com",
5 "lastGoalVersionAchieved": 2,
6 "name": "ReplSet_0",
7 "plan": []
8 }, {
9 "hostname": "server2.example.com",
10 "lastGoalVersionAchieved": 2,
11 "name": "ReplSet_1",
12 "plan": []
13 }, {
14 "hostname": "server3.example.com",
15 "lastGoalVersionAchieved": 1,
16 "name": "ReplSet_2",
17 "plan":[]
18 }]
19}

Para ver la nueva configuración en la consola de Cloud Manager:

  1. En MongoDB Cloud Manager, vaya a Processes página para tu proyecto.

    1. Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.

    2. Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.

    3. En la barra lateral, haz clic en Processes en la sección Database.

      Se muestra la página Procesos.

  2. Revisa la nueva configuración.

Para que una versión adicional de MongoDB esté disponible en el clúster, consulta Actualizar la versión de MongoDB de una implementación.

Volver

Tutorials

En esta página