Cómo instalar MongoDB en AlmaLinux 9
MongoDB es un sistema de base de datos NoSQL (no SQL o no relacional) de código abierto, multiplataforma y distribuido. En lugar de almacenar datos en tablas como las bases de datos SQL tradicionales, MongoDB utiliza documentos flexibles para almacenar diversas formas de datos. MongoDB utiliza el formato binario JSON, BSON, para almacenar datos.
MongoDB es una base de datos NoSQL distribuida con alta disponibilidad integrada, conmutación automática por error y redundancia de datos, y escalado horizontal mediante fragmentación en clústeres distribuidos. Admite el despliegue geográfico multirregional y proporciona una API de consulta que admite operaciones CRUD (lectura y escritura), canalización de agregación de datos, búsqueda de texto y consultas geoespaciales.
Esta guía te mostrará cómo instalar MongoDB en un servidor Alma Linux 9. También habilitarás la autenticación MongoDB, configurarás un usuario administrador para MongoDB y crearás una nueva base de datos y un nuevo usuario para tus aplicaciones.
Requisitos previos
Para comenzar con esta guía, asegúrate de que tienes lo siguiente:
- Un servidor Alma Linux 9
- Un usuario no root con privilegios de administrador
Preparar el sistema (desactivar thp, configurar ulimit y sysctl.conf)
En esta sección, prepararás y configurarás tu servidor ALma Linux para la instalación de MongoDB. A continuación te indicamos tres cosas importantes que debes hacer:
- Desactivar Transparent Huge Pages (THP) mediante el servicio systemd
- Aumentar el máximo de procesos y archivos abiertos para el usuario ‘mongod
- Configurar vm-max fs a través del archivo/etc/sysctl.conf’.
Así que primero, ejecuta el siguiente comando ‘dnf’ para instalar el editor de texto ‘nano’ en tu sistema Alma Linux.
sudo dnf install nano -y
Desactiva Páginas Transparentes Enormes (THP)
Ahora crea un nuevo archivo de servicio‘/etc/systemd/system/disable-thp.service‘ para desactivar Transparent Huge Pages (THP). Este servicio también se ejecutará en cada arranque del sistema.
sudo nano /etc/systemd/system/disable-thp.service
Introduce la siguiente configuración en el archivo.
[Unit] Description=Disable Transparent Huge Pages (THP) [Service] Type=simple ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag" [Install] WantedBy=multi-user.target
Cuando hayas terminado, guarda y sal del archivo.
A continuación, ejecuta el siguiente comando‘systemctl‘ para recargar el gestor systemd y aplicar tus cambios.
sudo systemctl daemon-reload
Por último, inicia y activa el comando‘disable-thp.service‘ con el comando que aparece a continuación. Con esto, THP se desactivará automáticamente al iniciarse.
sudo systemctl enable --now disable-thp.service
Configurar ulimits
Crea una nueva configuración‘/etc/security/limits.d/mongodb.conf‘ con el siguiente editor‘nano‘.
sudo nano /etc/security/limits.d/mongodb.conf
Introduce en el archivo la configuración que aparece a continuación. Esto permite al usuario‘mongod‘ ejecutar procesos máximos y abrir descriptores de archivo máximos para‘64000‘.
mongod soft nproc 64000 mongod hard nproc 64000 mongod soft nofile 64000 mongod hard nofile 64000
Guarda el archivo y sal del editor.
Configurar sysctl.conf
Abre el archivo‘/etc/sysctl.conf‘ utilizando el editor‘nano‘.
sudo nano /etc/sysctl.conf
Añade las siguientes líneas para configurar fs.file-max, max map count y activar swappiness.
fs.file-max = 2097152 vm.max_map_count = 262144 vm.swappiness = 1
Guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando‘sysctl‘ para aplicar los cambios.
sudo sysctl -p
Opcionalmente, también puedes reiniciar el servidor para aplicar tus cambios.
sudo reboot
Instalar MongoDB
Ahora, después de configurar tu servidor Alma Linux, inicia la instalación del servidor MongoDB con lo siguiente – En este caso, instalarás MongoDB 7.0 en el servidor Alma Linux 9.
En primer lugar, crea un nuevo archivo de repositorio MongoDB‘/etc/yum.repos.d/mongodb-org-7.0.repo‘ con el siguiente editor‘nano‘.
sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo
Introduce en el archivo la configuración que aparece a continuación.
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-7.0.asc
Guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando‘dnf‘ para listar los repositorios disponibles en tu servidor Alma Linux. Verás que se ha añadido el repositorio MongoDB.
sudo dnf repolist
A continuación, ejecuta el comando‘dnf install‘ para instalar MongoDB y el shell MongoDB en tu sistema. Introduce‘Y’ para confirmar la instalación.
sudo dnf install mongodb-org mongodb-mongosh
Una vez completada la instalación, inicia y activa el servicio‘mongod‘ de MongoDB, y comprueba el estado del servicio‘mongod‘ para asegurarte de que se está ejecutando.
sudo systemctl enable --now mongod sudo systemctl status mongod
A continuación puedes ver que MongoDB se está ejecutando en el servidor Alma Linux.
Habilitar la autenticación de MongoDB
En este punto, el servidor MongoDB se está ejecutando en tu servidor Alma Linux. Ahora asegurarás tu instalación de MongoDB habilitando la autenticación por contraseña y configurando un nuevo usuario administrador de MongoDB. Además, aprenderás el ‘mongosh’ básico o shell de MongoDB para gestionar el servidor MongoDB.
En primer lugar, inicia sesión en el servidor MongoDB utilizando el comando‘mongosh’ que aparece a continuación.
mongosh
Una vez conectado a MongoDB, ejecuta la siguiente consulta para desactivar la Telemetría de MongoDB.
disableTelemetry()
Ahora cambia a la base de datos‘admin‘ y ejecuta la consulta de abajo para configurar un usuario administrador para MongoDB. En este ejemplo, crearás un nuevo usuario‘miAliceAdmin‘ como admin para MongoDB. Introduce también tu contraseña cuando se te solicite.
use admin db.createUser( { user: "myAliceAdmin", pwd: passwordPrompt(), roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] } )
Si se crea el nuevo usuario, verás una salida‘{ ok: 1 }‘.
Escribe‘quit()‘ para salir del servidor MongoDB.
A continuación, abre el archivo‘/etc/mongod.conf‘ utilizando el comando ‘nano‘.
sudo nano /etc/mongod.conf
Descomenta la opción‘security‘ y añade‘authorization: enabled‘ para activar la autenticación por contraseña en MongoDB.
security: authorization: enabled
Guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando‘systemctl‘ para reiniciar el servicio‘mongod‘ y aplicar tus cambios. Con esto, el servidor MongoDB debería estar funcionando con la autenticación activada.
sudo systemctl restart mongod
A continuación, ejecuta el comando«mongosh» para iniciar sesión en MongoDB.
mongosh
Cambia a la base de datos‘admin‘ y autentifícate como usuario‘miAliceAdmin‘ con las siguientes consultas. Introduce tu contraseña cuando se te pida.
use admin db.auth("myAliceAdmin", passwordPrompt())
Si la autenticación se realiza correctamente, obtendrás la salida‘{ ok: 1 }‘.
Además, también puedes acceder a la base de datos‘admin‘ utilizando el usuario‘myAliceAdmin‘ mediante el comando‘mongosh‘ que aparece a continuación.
mongosh --port 27017 --authenticationDatabase \ "admin" -u "myAliceAdmin" -p
Crear un usuario en MongoDB
En esta sección, crearás una nueva base de datos y un nuevo usuario en MongoDB mediante el cliente MongoDB‘mongosh’.
Para crear una nueva base de datos y un nuevo usuario en MongoDB, ejecuta las siguientes consultas. En este ejemplo, crearás una nueva base de datos«mydb» y un nuevo usuario«myUser«. Introduce tu contraseña cuando se te solicite.
use mydb db.createUser( { user: "myUser", pwd: passwordPrompt(), // or cleartext password roles: [ { role: "readWrite", db: "mydb" }, { role: "read", db: "reporting" } ] } )
Si se crean la nueva base de datos y el nuevo usuario, obtendrás la salida‘{ ok: 1 }‘, y escribe‘quit()‘ para salir.
A continuación, inicia sesión en el servidor MongoDB utilizando el comando‘mongosh‘ que aparece a continuación. Introduce la contraseña de«miUsuario» cuando se te solicite.
mongosh --port 27017 --authenticationDatabase \ "mydb" -u "myUser" -p
Si lo consigues, aparecerá el intérprete de comandos de MongoDB.
Conclusión
¡Enhorabuena! Has completado la instalación de MongoDB en el servidor Alma Linux 9. También has asegurado MongoDB creando un usuario administrador y habilitando la autenticación por contraseña. Por último, también has aprendido a crear una base de datos y un usuario en MongoDB, y algunos comandos básicos ‘mongosh’ para conectarte al servidor MongoDB a través de la línea de comandos.