Cómo instalar MongoDB en openSUSE Leap 15

En este artículo vamos a ver cómo instalar MongoDB en openSUSE Leap 15 paso a paso, de modo que puedas utilizar este motor de bases de datos noSQL en tu servidor.

Antes de instalar MongoDB en openSUSE Leap 15

Si tu intención es seguir esta guía de instalación de MongoDB en openSUSE Leap 15 deberías partir de las siguientes condiciones básicas:

  • Una máquina openSUSE Leap 15 actualizada.
  • Acceso a terminal de consola con un usuario con permisos de sudo o, en su defecto, el usuario root.
  • Conexión a Internet.

Cómo añadir el repositorio de MongoDB para openSUSE Leap 15

Para poder disfrutar de las últimas versiones estables de MongoDB en openSUSE Leap 15, vamos a instalar el repositorio oficial, perteneciente al sitio del proyecto. Para ello crearemos un nuevo archivo de configuración de repositorio:

~> sudo nano /etc/zypp/repos.d/mongodb-5.0.repo

El contenido será la información de acceso al repositorio:

[mongodb.org-5.0]
name=Repositorio de MongoDB para openSUSE Leap 15
baseurl=https://repo.mongodb.org/zypper/suse/15/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

Guardamos los cambios, cerramos el archivo y actualizamos las listas de paquetes:

~> sudo zypper refresh

Al actualizar por primera vez la información del nuevo repositorio se nos preguntará por el grado de confianza de la clave pública:

...
¿Desea rechazar la clave o confiar en ella siempre? [r/a/?] (r): a

Deberíamos contestar «siempre«, con la letra «a«.

Cómo instalar MongoDB en openSUSE Leap 15

Vamos a instalar MongoDB en openSUSE Leap 15 mediante el comando zypper, para lo que instalaremos el paquete mongodb-org:

~> sudo zypper install -y mongodb-org

Tras la descarga e instalación de los paquetes y dependencias de MongoDB se crea un nuevo servicio en openSUSE Leap 15, el servicio mongod.service o simplemente mongod, que queda habilitado para el arranque automático junto al sistema. Sin embargo, el servicio mongod no queda en ejecución de inmediato, por lo que debemos iniciarlo la primera vez de forma manual si queremos empezar a trabajar enseguida:

~> sudo systemctl start mongod

Para comprobar el estado del servicio MongoDB en openSUSE Leap 15 en cualquier momento, podemos usar el comando systemctl status mongod:

como instalar mongodb en opensuse leap 15

Conectar a MongoDB en openSUSE Leap 15

Para conectar a MongoDB en openSUSE Leap 15 podremos usar el cliente de consola mongosh, instalado como dependencia en el paso anterior:

~> mongosh
Current Mongosh Log ID: 63e91249152d515d9d31beb6
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.7.0
Using MongoDB:          5.0.14
Using Mongosh:          1.7.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/


To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.

------
   The server generated these startup warnings when booting
   ###: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
   ###: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
------

------
   Enable MongoDB's free cloud-based monitoring service, which will then receive and display
   metrics about your deployment (disk utilization, CPU, operation statistics, etc).

   The monitoring data will be available on a MongoDB website with a unique URL accessible to you
   and anyone you share the URL with. MongoDB may use this information to make product
   improvements and to suggest MongoDB products and deployment options to you.

   To enable free monitoring, run the following command: db.enableFreeMonitoring()
   To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
------

test>

La primera vez que conectamos al servicio volcará bastante información en pantalla relativa a varios avisos:

  • Acceso sin restricciones (contraseña) al servicio.
  • Modo THP activado.
  • Servicio de monitorización y envío de estadísticas.

Empezando por el último punto, podemos desactivar el servicio de monitorización y estadísticas con el disableTelemetry() respectivamente. En este tutorial desactivaremos este servicio:

> db.disableFreeMonitoring()

Para los dos otros puntos cerraremos la conexión para liberar la consola:

> exit

Desactivar HTP (transparent hugepage)

Este mensaje es debido a que cierto valor de configuración del kernel está configurado como always, cosa que podemos comprobar desde consola:

~> cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

Podemos desactivar este valor manualmente desde consola:

~> sudo /bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled"

Si hacemos de nuevo la comprobación veremos que ahora el valor ha cambiado:

~> cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

Ahora el valor es never, que es el que sugiere MongoDB. Sin embargo, este ajuste se perderá al apagar la máquina. Para solucionar esto, podemos modificar la configuración del servicio MongoDB para que configure este parámetro antes de iniciar.

Editamos el archivo de configuración del servicio:

~> sudo nano /usr/lib/systemd/system/mongod.service

Añadiremos una directiva ExecStartPre en la sección Service:

...
[Service]
...
ExecStartPre=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled"
...

Guardamos los cambios, cerramos el archivo y recargamos la configuración de los servicios:

~> sudo systemctl daemon-reload

Reiniciando el servicio se ajustará el parámetro del kernel:

~> sudo systemctl restart mongod

Podemos reiniciar openSUSE Leap 15 y tras iniciar sesión comprobaremos que la configuración de THP ahora es la que queremos para MongoDB:

~> cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

Obviamente, esta configuración persistirá tras reiniciar openSUSE Leap 15.

Cómo acceder con contraseña a MongoDB

Para poder activar el uso de contraseñas en MongoDB tendremos que realizar un ajuste en el archivo de configuración del servicio, mongod.conf:

~> sudo nano /etc/mongod.conf

Buscaremos la sección security:

...
#security:
...

Podemos observar un carácter # al principio de la línea, lo que significa que la sección está desactivada. Eliminaremos ese carácter y añadiremos la directiva authorization:

...
security:
  authorization: enabled
...

No utilices tabuladores para añadir sangrado en la línea authorization (o en cualquier otro lugar de los archivos de configuración de MongoDB), usa en su lugar espacios.

Guardamos los cambios, cerramos el archivo y reiniciamos el servicio para aplicar los cambios:

~> sudo systemctl restart mongod

Iniciaremos sesión con el cliente mongosh:

~> mongosh

mongodb en opensuse leap 15

Observarás, si has seguido los pasos anteriores, que se han reducido sustancialmente los avisos al conectar.

Seleccionaremos la base de datos principal:

> use admin

Y añadiremos un nuevo registro para un nuevo usuario:

> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})

Este usuario es administrador al haber definidio un rol tipo root.

Podemos cerrar la conexión y volver a establecerla, pero esta vez especificando el nuevo usuario que acabamos de crear:

~> mongosh -u instalador
Enter password: XXXXXXXX
...
>

Podemos comprobar que se nos solicita la contraseña del usuario para conectar al servicio.

Acceso remoto a MongoDB en openSUSE Leap 15

Por defecto, el acceso a MongoDB en openSUSE Leap 15 está configurado únicamente en modo local. Para permitir conexiones remotas es necesario configurar el servicio a través del archivo mongod.conf:

~> sudo nano /etc/mongod.conf

En esta ocasión buscaremos la directiva bindIp: (ojo, el nombre de la directiva termina en Ip, no en IP):

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
...

Vemos que tiene el valor 127.0.0.1 que es la dirección del adaptador de red local. Podemos sustituir este valor por «0.0.0.0», «::» ó «::,0.0.0.0» según si queremos permitir acceso remoto a través del protocolo IPv4, IPv6 ó ambos:

...
  bindIp: ::,0.0.0.0
...

Guardamos los cambios, cerramos el archivo y reiniciamos el servicio:

~> sudo systemctl restart mongod

Configurar el firewall de openSUSE Leap 15 para MongoDB

Por defecto el firewall de openSUSE Leap 15 suele estar activado, así que si queremos permitir las conexiones remotas al servicio MongoDB tendremos que añadir la regla correspondiente:

~> sudo firewall-cmd --permanent --add-service=mongodb

Y recargamos la configuración del firewall para aplicar los cambios:

~> sudo firewall-cmd --reload

Conexión

Desde otra máquina de la red que tenga instalado el cliente mongosh realizaremos una conexión remota al servicio MongoDB del servidor openSUSE Leap 15. Con el parámetro –host indicaremos la dirección IP o dominio del servidor y con -u el usuario con el que queremos conectar. Por ejemplo, podríamos conectar al servicio que acabamos de instalar y configurar con el comando mongosh --host opensuse15.local.lan -u instalador:

instalar mongodb en opensuse leap 15

Conclusión

Ahora que sabes cómo instalar MongoDB en openSUSE Leap 15 ya puedes hacer funcionar este servicio de bases de datos como soporte de otras aplicaciones que lo usan. Instalar el servicio y realizar una configuración básica de MongoDB sólo lleva unos instantes.

En caso de dudas, preguntas, alguna sugerencia de mejora o notificar algún error, puedes dejar un comentario.

¡Apoya comoinstalar.me!

¿Ya tienes funcionando el servicio gracias a esta guía de instalación de MongoDB en openSUSE Leap 15? Si es así y se te ha pasado por la cabeza agradecérnoslo, la más mínima aportación ayuda muchísimo al mantenimiento de este sitio y puedes hacerlo dejando 1 $ de propina con PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (5 votos)

2 comentarios en «Cómo instalar MongoDB en openSUSE Leap 15»

Deja un comentario