Tutorial

Cómo instalar MongoDB desde los repositorios APT predeterminados de Ubuntu 20.04

Published on April 7, 2021
Español
Cómo instalar MongoDB desde los repositorios APT predeterminados de Ubuntu 20.04

Introducción

MongoDB es una base de datos de documentos gratuita y de código abierto utilizada comúnmente en las aplicaciones web modernas.

En este tutorial, instalará MongoDB, administrará su servicio y, de forma opcional, habilitará el acceso remoto.

Nota: Al momento de la publicación de este artículo, este tutorial instala la versión 3.6 de MongoDB, que es la versión disponible en los repositorios predeterminados de Ubuntu. Sin embargo, generalmente recomendamos instalar la versión más reciente de MongoDB, es decir, la versión 4.4 al momento de la publicación de este artículo. Si desea instalar la versión más reciente de MongoDB, le recomendamos que siga esta guía sobre Cómo instalar MongoDB en Ubuntu 20.04.

Requisitos previos

Para seguir este tutorial, necesitará lo siguiente:

Paso 1: Instalar MongoDB

En los repositorios oficiales de paquetes de Ubuntu se incluye MongoDB, lo que significa que podemos instalar los paquetes necesarios utilizando apt. Como se mencionó en la introducción, la versión disponible en los repositorios predeterminados no es la más reciente. Para instalar la versión más reciente de Mongo, siga este tutorial.

Primero, actualice la lista de paquetes para tener la versión más reciente de listados de repositorios:

  1. sudo apt update

A continuación, instale el propio paquete de MongoDB:

  1. sudo apt install mongodb

Este comando le solicitará confirmar que quiere instalar el paquete mongodb y sus dependencias. Para hacerlo, presione Y y, luego, ENTER.

Este comando instala varios paquetes que contienen una versión estable de MongoDB, junto con herramientas de administración útiles para el servidor de MongoDB. El servidor de la base de datos se inicia de forma automática tras la instalación.

A continuación, comprobaremos que el servidor esté activo y funcione de forma correcta.

Paso 2: Comprobar el servicio y la base de datos

El proceso de instalación inició MongoDB de forma automática, pero verificaremos que el servicio se inicie y que la base de datos funcione.

Primero, compruebe el estado del servicio:

  1. sudo systemctl status mongodb

Verá este resultado:

Output
● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Según este resultado, el servidor MongoDB está funcionando.

Podemos verificar esto en profundidad estableciendo conexión con el servidor de la base de datos y ejecutando el siguiente comando de diagnóstico. Con esto se mostrarán la versión actual de la base de datos, la dirección y el puerto del servidor, y el resultado del comando status:

  1. mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Output
MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Un valor de 1 para el campo ok en la respuesta indica que el servidor funciona correctamente.

A continuación, veremos la forma de administrar la instancia del servidor.

Paso 3: Gestionar el servicio de MongoDB

El proceso de instalación descrito en el Paso 1 configura MongoDB como servicio de systemd, lo que significa que puede administrarlo utilizando comandos systemctl estándares, junto con todos los demás servicios de sistema en Ubuntu.

Para verificar el estado del servicio, escriba lo siguiente:

  1. sudo systemctl status mongodb

Puede detener el servidor en cualquier momento escribiendo lo siguiente:

  1. sudo systemctl stop mongodb

Para iniciar el servidor cuando esté detenido, escriba lo siguiente:

  1. sudo systemctl start mongodb

También puede reiniciar el servidor con el siguiente comando:

  1. sudo systemctl restart mongodb

Por defecto, MongoDB se configura para iniciarse de forma automática con el servidor. Si desea desactivar el inicio automático, escriba lo siguiente:

  1. sudo systemctl disable mongodb

Puede volver a habilitar el inicio automático en cualquier momento con el siguiente comando:

  1. sudo systemctl enable mongodb

A continuación, ajustaremos la configuración del firewall para nuestra instalación MongoDB.

Paso 4: Ajustar el firewall (opcional)

Suponiendo que siguió las instrucciones del tutorial de configuración inicial para servidores para habilitar el firewall en su servidor, no será posible acceder al servidor de MongoDB desde Internet.

Si tiene intención de usar el servidor de MongoDB solo a nivel local con aplicaciones que se ejecuten en el mismo servidor, este es el ajuste recomendado y seguro. Sin embargo, si desea poder conectarse con su servidor MongoDB desde Internet, deberá permitir las conexiones entrantes añadiendo una regla UFW.

Para permitir el acceso a MongoDB en su puerto predeterminado 27017 desde cualquier parte, podría ejecutar sudo ufw allow 27017. Sin embargo, permitir el acceso a Internet al servidor de MongoDB en una instalación predeterminada proporciona acceso ilimitado al servidor de la base de datos y a sus datos.

En la mayoría de los casos, solo se debe acceder a MongoDB desde determinadas ubicaciones de confianza, como otro servidor que aloje una aplicación. Para permitir solo el acceso al puerto predeterminado de MongoDB mediante otro servidor de confianza, puede especificar la dirección IP del servidor remoto en el comando ufw. De esta manera, solo se permitirá que esa máquina se conecte de forma explícita:

  1. sudo ufw allow from trusted_server_ip/32 to any port 27017

Puede verificar el cambio en los ajustes del firewall con ufw:

  1. sudo ufw status

Debería ver la habilitación del tráfico hacia el puerto 27017 en el resultado. Tenga en cuenta que si decidió permitir que solo una dirección IP determinada se conecte con el servidor de MongoDB, en el resultado de este comando se enumerará la dirección IP de la ubicación autorizada en lugar de Anywhere.

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 27017 (v6) ALLOW Anywhere (v6)

Puede encontrar ajustes de firewall más avanzados para restringir el acceso a servicios en Aspectos básicos de UFW: Reglas y comandos comunes de firewall.

Aunque el puerto esté abierto, MongoDB seguirá escuchando solo en la dirección local 127.0.0.1. Para permitir conexiones remotas, agregue la dirección IP pública de su servidor al archivo mongodb.conf.

Abra el archivo de configuración de MongoDB en su editor de texto preferido: Este comando de ejemplo utiliza nano:

  1. sudo nano /etc/mongodb.conf

Agregue la dirección IP de su servidor de MongoDB al valor bindIP: Asegúrese de colocar una coma entre la dirección IP existente y la que agregó.

/etc/mongodb.conf
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Guarde el archivo y salga del editor. Si utilizó nano para editar el archivo, hágalo pulsando CTRL + X, Y y, luego, ENTER.

Luego, reinicie el servicio de MongoDB:

  1. sudo systemctl restart mongodb

MongoDB ahora recibirá conexiones remotas, pero cualquiera podrá acceder a él. Siga el tutorial Cómo instalar y proteger MongoDB en Ubuntu 20.04 para agregar un usuario administrativo y ampliar el bloqueo.

Conclusión

Puede encontrar tutoriales más detallados sobre cómo configurar y utilizar MongoDB en estos artículos de la comunidad de DigitalOcean. La documentación oficial de MongoDB también es un gran recurso en el que se abordan las posibilidades que ofrece MongoDB.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean


Default avatar

Software Engineer, CTO @Makimo

Creating bespoke software ◦ CTO & co-founder at Makimo. I’m a software enginner & a geek. I like making impossible things possible. And I need tea.


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
1 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Thanks!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more