Tutoriales

Instale MongoDB con Vagrant en Linux

Vagabundo es un software de código abierto que proporciona un entorno de desarrollo limpio, fácil de configurar, reproducible y portátil. Con Vagrant podemos crear y mantener de forma fácil y rápida varios entornos de desarrollo de software virtual. En esta guía, aprenderá a instalar mongoDB con Vagrant en el sistema operativo Linux.

¿Qué es mongoDB?

MongoDB es una base de datos NoSQL orientada a documentos que se utiliza cuando necesita procesar grandes cantidades de datos. MongoDB usa colecciones y documentos para almacenar los datos. Los documentos son una serie de pares clave-valor (JSON) que se almacenan en colecciones.

A continuación se muestra un documento de muestra en JSON Formato para su referencia.

   title: 'Install MongoDB-5 In Linux Using Vagrant',
   url: 'https://ostechnix.com/',
   Site: 'ostechnix',
   owner: 'sk',
   author: 'Karthick',
   tags: ['community Edition', 'Linux', 'NoSQL', 'MongoDB5'],
   mongo_version: 5

La última versión de mongoDB es 5. MongoDB está disponible en dos versiones: Community Edition y Enterprise Edition. En este artículo vamos a instalar la edición comunitaria mongoDB 5 con Vagrant en Linux.

requisitos

Antes de continuar con los siguientes pasos, asegúrese de haber instalado Oracle VirtualBox y Vagrant en su computadora Linux. Oracle VirtualBox está disponible en los repositorios oficiales de las distribuciones populares de Linux, por lo que puede instalarlo utilizando el administrador de paquetes estándar de su distribución.

Y luego instale Vagrant en su sistema Linux como se describe en el enlace a continuación.

Inicializar el entorno Vagrant

Para los propósitos de esta guía, usaré Oracle Virtualbox como hipervisor, el proveedor predeterminado de Vagrant. Y estoy usando la caja Ubuntu 20.04 Vagrant para implementar mongoDB en ella.

Cree un nuevo directorio de proyecto para MongoB.

$ mkdir mongodb_vagrant

Cambie al directorio del proyecto e inicialice el entorno de Vagrant ejecutando el siguiente comando:

$ cd mongodb_vagrant
$ vagrant init -m "ubuntufocal64"

Esto crea un nuevo archivo Vagrant en el directorio del proyecto. Abra Vagrantfile en su editor favorito y copie las siguientes líneas en él:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.box_check_update = false
  config.vm.define "MongoDB5"
  config.vm.network "public_network"
  config.vm.provision "shell", path: "mongo-bootstrap.sh"
  config.vm.provider "virtualbox" do |v|
    v.memory = 2048
    v.cpus = 2
    v.name = "MongoDB-5"
  end
end

Permítame explicarle los parámetros importantes en el código anterior.

El parámetro vm.box se refiere a la distribución de Linux subyacente que estamos usando para instalar MongoDB. En nuestro caso es Ubuntu 20.04 LTS.

config.vm.box = "ubuntu/focal64"

Cada vez que inicie la VM, Vagrant verificará si hay una actualización para la caja en uso. Establecer parámetros box_check_update = false desactiva la comprobación de actualizaciones. ¡Esto es opcional! Si prefiere actualizar el cuadro Vagrant, puede eliminar esta línea:

config.vm.box_check_update = false

A cada VM perdida se le asigna default que el nombre. El parámetro vm.define se puede utilizar para establecer un nombre personalizado para su máquina virtual. En este caso tengo el nombre. colocar MongoDB5.

config.vm.define "MongoDB5"

Puedes el global-status Comando para verificar el nombre asignado a la VM:

$ vagrant global-status --prune

id       name        provider   state    directory
--------------------------------------------------------------------------------------------

76c3e81  MongoDB5    virtualbox running  /home/karthick/Work/Lab/vagrant/mongodb_vagrant

El siguiente parámetro decide cómo se configura la red para su VM.

config.vm.network "public_network"

He configurado Public_network. Tampoco he dado el nombre de la interfaz, ya que puede variar y la interfaz que se va a conectar se solicita durante el proceso vagrant up como se muestra en la siguiente salida de registro.

==> MongoDB5: Available bridged network interfaces:
1) wlo1
2) eno1
3) docker0
==> MongoDB5: When choosing an interface, it is usually the one that is
==> MongoDB5: being used to connect to the internet.
==> MongoDB5: 
    MongoDB5: Which interface should the network bridge to? 1
==> MongoDB5: Preparing network interfaces based on configuration...
    MongoDB5: Adapter 1: nat
    MongoDB5: Adapter 2: bridged
==> MongoDB5: Forwarding ports...
    MongoDB5: 22 (guest) => 2222 (host) (adapter 1)

Usé Shell Provisioner para instalar y configurar MongoDB. El nombre del guión es mongo-bootstrap.sh. Puedes nombrar el script como quieras.

config.vm.provision "shell", path: "mongo-bootstrap.sh"

Los siguientes parámetros configuran la memoria y la CPU para su máquina virtual. He configurado la memoria para 2 conciertos y 2 colores. Puede aumentar y disminuir los valores cambiando el v.memory y v.cpus Parámetro.

config.vm.provider "virtualbox" do |v|
    v.memory = 2048
    v.cpus = 2
    v.name = "MongoDB-5"
  end

El nombre asignado al parámetro v.name se muestra en su GUI de Virtualbox.

Nombre de VBox

Crear script de shell de arranque

Como ya se mencionó, se utiliza un aprovisionador de shell para la instalación y configuración de mongoDB en la caja de Vagrant.

Crea un archivo llamado mongo-bootstrap.sh:

$ vi mongo-bootstrap.sh

Y agregue el siguiente código:

#!/usr/bin/env bash

# Adding Repo
echo "-------------------------- ADDING REPO -------------------------------------"
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

# Updating Package Index and Installing MongoDB-5
echo "-------------------------- UPDATING PACKAGE INDEX -------------------------------------"
sudo apt update

echo "-------------------------- INSTALL PACKAGES --------------------------"
sudo apt install -y mongodb-org net-tools

# Start and Enable Mongod 
echo "-------------------------- START & ENABLE MONGOD --------------------------"
sudo systemctl enable --now mongod

sleep 20

# Create user
echo "-------------------------- CREATE VAGRANT USER --------------------------"
mongosh << BLK
use admin
db.createUser(

    user: "vagrant",
    pwd: "vagrant",
    roles: [
               role: "userAdminAnyDatabase", db: "admin" ,
               role: "readWriteAnyDatabase", db: "admin" ,
               role: "dbAdminAnyDatabase", db: "admin" ,
               role: "clusterAdmin", db: "admin" 
           ]
)
exit
BLK


## Enable Authorization

sudo cat << EOB >> /etc/mongod.conf
#security:
security:
    authorization: "enabled"
EOB

echo "-------------------------- RESTARTED MONGOD --------------------------"
sudo systemctl restart mongod

prensa ESC y escriba :wq para guardar y cerrar el archivo.

Déjame darte una breve descripción de cada sección en el código anterior.

De forma predeterminada, existe una versión anterior de mongoDB que viene con Ubuntu. Si desea la última versión de mongodDB, debe consultar el repositorio oficial en el mongo-bootstrap.sh Expediente.

La siguiente sección de código se encarga de agregar el repositorio, actualizar el índice del paquete, instalar mongoDB y llamar al mongod Demonio.

Agregar repositorio oficial de Mongodb
Agregar repositorio oficial de Mongodb

El siguiente bloque de código crea un usuario itinerante con privilegios administrativos. El nombre de usuario será vagrant y la contraseña también está activada. colocar vagrant. Si lo desea, puede establecer un nombre de usuario y una contraseña diferentes.

Crear usuarios vagabundos
Crear usuarios vagabundos

De forma predeterminada, no se aplica ninguna política de seguridad. Cualquier usuario puede llamar mongosh Shell y comience a usar la base de datos. Para hacer cumplir el control de acceso basado en roles, se debe agregar el siguiente parámetro /etc/mongod.conf Expediente.

Este bloque de código se encarga de agregar el parámetro y reiniciar el mongod Daemon para que los cambios surtan efecto.

Activar autorización
Activar autorización

Aviso: Antes de habilitar RBAC (Control de acceso basado en roles), se debe crear un usuario administrador para que otros usuarios puedan acceder a cada base de datos.

Inicie la computadora mongoDB Vagrant

Una vez que se crean el archivo Vagrant y el script de arranque, puede iniciar la VM ejecutando el siguiente comando:

$ vagrant up

Ahora espere hasta que la máquina se haya iniciado y la parte de instalación y configuración de mongoDB sea asumida por el script de arranque. Esto tomará unos pocos minutos.

Ejecute el siguiente comando para iniciar sesión en la VM:

$ vagrant ssh

MongoDB escucha en el puerto 27017. Puede utilizar el … netstat Comando para verificar si el puerto está en estado de escucha.

$ sudo netstat -tlnup

Salida de muestra:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      3306/mongod

Ejecute el siguiente comando para ver el estado del mongod Servicio:

$ systemctl status mongod

Salida de muestra:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-08-17 10:24:36 UTC; 2h 21min ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 3306 (mongod)
     Memory: 162.3M
     CGroup: /system.slice/mongod.service
             └─3306 /usr/bin/mongod --config /etc/mongod.conf

Accede al shell mongoDB

los Cuenco de mongo es un cliente CLI para conectarse a mongoDB. Ahora está siendo reemplazado por un nuevo cliente CLI mongosh desde mongoDB V5.

Correr mongosh en la terminal para usar el shell. Dado que RBAC está habilitado, deberá proporcionar credenciales.

Puede conectarse a la base de datos MongoDB utilizando monosh con la siguiente cadena de conexión.

$ mongosh mongodb://<username>:<password>@localhost:<port>/<database>

Aquí me conecto a un vagabundo recién creado.

$ mongosh mongodb://vagrant:[email protected]:27017/admin

Alternativamente, puede iniciar el shell y ejecutar los siguientes comandos para conectarse:

$ monosh
$ use admin
$ db.auth("username","password")
$ db.auth("vagrant","vagrant")
Conéctese a la base de datos de MongoDB como usuario de Vagrant
Conéctese a la base de datos de MongoDB como usuario de Vagrant

Administre el cuadro vagabond de mongoDB desde la línea de comando

Los siguientes comandos vagos lo ayudarán a administrar la máquina virtual mongoDB a través de la CLI:

$ vagrant --global-status --prune      # check the status of the machine 
$ vagrant halt                         # Stop the VM
$ vagrant destroy                      # Destroy the VM and associated VM disk.
$ vagrant ssh                          # Login to Remote Host

Para obtener más información sobre el uso de los comandos de Vagrant, consulte nuestro tutorial de Vagrant:

diploma

En esta guía paso a paso, hemos visto cómo configurar fácilmente mongoDB en la caja de Ubuntu 20.04 Vagrant. Si está probando un proyecto de mongoDB o aprendiendo sobre mongoDB, puede iniciar rápidamente una caja Vagrant e instalar mongodDB en la caja Vagrant como se describe aquí.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba