Cómo instalar MongoDB en openSUSE Leap 15.1

En este artículo vamos a ver cómo instalar MongoDB en openSUSE Leap 15.1 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.1

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

  • Una máquina openSUSE Leap 15.1 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.1

Para poder disfrutar de las últimas versiones estables de MongoDB en openSUSE Leap 15.1, 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-4.2.repo

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

[mongodb.org-4.2]
name=Repositorio de MongoDB
baseurl=https://repo.mongodb.org/zypper/suse/15/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.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.1

Vamos a instalar MongoDB en openSUSE Leap 15.1 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.1, 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.1 en cualquier momento, podemos usar el comando systemctl status mongod:

como instalar mongodb en opensuse leap 15.1

Conectar a MongoDB en openSUSE Leap 15.1

Para conectar a MongoDB en openSUSE Leap 15.1 podremos usar el cliente de consola mongo:

~> mongo
MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1e8c7a92-a4e6-46bf-93c5-b83f02038e53") }
MongoDB server version: 4.2.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings:
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten]
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten]
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten]
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-03-15T21:21:19.128+0100 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-03-15T21:21:19.129+0100 I  CONTROL  [initandlisten]
---
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()
---

>

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.
  • Configuración del servicio de monitorización y envío de estadísticas.

Empezando por el último punto, podemos activar o desactivar el servicio de monitorización y estadísticas con los comandos db.enableFreeMonitoring() y db.disable.FreeMonitoring() 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 crear un pequeño servicio que se encargue de cambiar este ajuste en cada inicio del servicio.

Crearemos el archivo de configuración del servicio:

~> sudo nano /etc/systemd/system/thp-off.service

Con este contenido:

[Unit]
Description=Desactivador Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled"

[Install]
WantedBy=multi-user.target

Guardamos los cambios, cerramos el archivo y activamos el servicio para que se ejecute en cada arranque del sistema:

~> sudo systemctl enable thp-off.service

Podemos reiniciar openSUSE Leap 15.1 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]

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 mongo:

~> mongo

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: "chacho", 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:

~> mongo -u chacho
MongoDB shell version v4.2.3
Enter password:
...
>

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

Acceso remoto a MongoDB en openSUSE Leap 15.1

Por defecto, el acceso a MongoDB en openSUSE Leap 15.1 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.1 para MongoDB

Por defecto el firewall de openSUSE Leap 15.1 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 mongo realizaremos una conexión remota al servicio MongoDB del servidor openSUSE Leap 15.1. 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 mongo --host opensuse151.local -u chacho:

instalar mongodb en opensuse leap 15.1

Conclusión

Ahora que sabes cómo instalar MongoDB en openSUSE Leap 15.1 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.1? 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 la creación de nuevos tutoriales de MongoDB y openSUSE Leap 15.1. ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies