GNU/Linux >> Tutoriales Linux >  >> Linux

Instale MongoDB usando 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. Usando Vagrant, podemos crear y mantener diferentes entornos de desarrollo de software virtual de manera fácil y rápida. En esta guía, veremos cómo instalar mongoDB usando Vagrant en el sistema operativo Linux.

¿Qué es mongoDB?

MongoDB es una base de datos orientada a documentos NoSQL que se usa cuando tiene que manejar datos descomunales. MongoDB utiliza colecciones y documentos para almacenar los datos. Los documentos son un conjunto de pares clave-valor (JSON) almacenados 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 versión más reciente de mongoDB es 5 . MongoDB está disponible en dos variantes:edición comunitaria y edición empresarial. En este artículo, instalaremos la edición comunitaria mongoDB 5 usando Vagrant en Linux.

Requisitos

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

Y luego, instale Vagrant en su sistema Linux como se describe en el siguiente enlace.

  • Cómo instalar Vagrant en Linux

Inicializar entorno Vagrant

A los efectos de esta guía, utilizaré Oracle Virtualbox como hipervisor, que es el proveedor predeterminado de Vagrant. Y estoy usando Ubuntu 20.04 Vagrant box para implementar mongoDB en él.

Cree un nuevo directorio de proyectos para MongoB.

$ mkdir mongodb_vagrant

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

$ cd mongodb_vagrant
$ vagrant init -m "ubuntu\focal64"

Esto creará un nuevo Vagrantfile en el directorio del proyecto. Abra Vagrantfile en su editor favorito y copie/pegue 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 explicar los parámetros importantes en el código anterior.

El parámetro vm.box apunta a la distribución de Linux subyacente que usamos 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 alguna actualización para el cuadro que se utiliza. Configuración del parámetro box_check_update = false deshabilitará la comprobación de actualizaciones. ¡Esto es opcional! Si prefiere actualizar el cuadro de Vagrant, puede eliminar esta línea:

config.vm.box_check_update = false

A cada VM vagabunda se le asigna default como el nombre. El parámetro vm.define se puede usar para establecer un nombre personalizado para su máquina virtual. En este caso, he establecido el nombre en MongoDB5 .

config.vm.define "MongoDB5"

Puede ejecutar 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 configurará la red para su VM.

config.vm.network "public_network"

He configurado Public_network . Tampoco he proporcionado el nombre de la interfaz, ya que puede variar y la interfaz que se conectará se solicitará durante 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)

He usado el aprovisionador de shell para instalar y configurar MongoDB. El nombre del script es mongo-bootstrap.sh . Puede nombrar el script como desee.

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

Los siguientes parámetros configurarán la memoria y la CPU para su máquina virtual. He configurado la memoria en 2 gigas y 2 Vcores . Puede aumentar y disminuir los valores modificando el v.memory y v.cpus parámetros.

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 es lo que se mostrará en su GUI de Virtualbox.

Crear secuencia de comandos de shell de arranque

Como dije anteriormente, se usa un aprovisionador de shell para instalar y configurar mongoDB en el cuadro vagabundo.

Cree un archivo llamado mongo-bootstrap.sh :

$ vi mongo-bootstrap.sh

Y agregue la siguiente pieza de código en él:

#!/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

Presione ESC y escribe :wq para guardar el archivo y cerrarlo.

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

De forma predeterminada, hay una versión anterior de mongoDB que se envía con Ubuntu. Si desea la última versión de mongodDB, debe agregar el repositorio oficial en mongo-bootstrap.sh expediente.

La siguiente sección de código se encargará de agregar el repositorio, actualizar el índice del paquete, instalar mongoDB y abrir mongod demonio.

El siguiente bloque de código creará un usuario vagabundo con privilegios de administrador. El nombre de usuario será vagrant y la contraseña también está establecida en vagrant . Puede establecer un nombre de usuario y una contraseña diferentes si lo desea.

De forma predeterminada, no se aplica ninguna política de seguridad. Cualquier usuario puede invocar 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 a /etc/mongod.conf archivo.

Este fragmento de código se encargará de agregar el parámetro y reiniciar el mongod daemon para que los cambios sean efectivos.

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

Iniciar la máquina mongoDB Vagrant

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

$ vagrant up

Ahora, espere hasta que la máquina se inicie y la parte de instalación y configuración de mongoDB esté a cargo del script de arranque. Esto tomará un par de minutos.

Para iniciar sesión en la máquina virtual, ejecute el siguiente comando:

$ vagrant ssh

MongoDB escucha en el puerto 27017 . Puedes usar 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 verificar el estado de 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

Acceder a la consola mongoDB

La cáscara de mongo es un cliente cli para conectarse a mongoDB. Ahora se reemplaza con un nuevo cliente cli mongosh de mongoDB V5.

Ejecute mongosh en la terminal para comenzar a usar el shell. Dado que RBAC está habilitado, debe proporcionar las credenciales.

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

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

Aquí estoy conectándome con un usuario 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")

Administrar mongoDB vagrant box desde la línea de comandos

Los siguientes comandos vagabundos lo ayudarán a administrar la máquina virtual mongoDB a través de 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 un uso más detallado de los comandos de Vagrant, consulte nuestro tutorial de Vagrant:

  • Tutorial de Vagrant:Introducción a Vagrant en Linux

Conclusión

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


Linux
  1. Cómo instalar Vagrant en Linux

  2. Cómo instalar Vagrant en Linux

  3. Cómo instalar phpMyAdmin en Linux usando el código fuente

  4. Instalar MongoDB en un CentOS VPS

  5. Cómo instalar MongoDB desde la fuente (y usando YUM) en Linux

La guía completa para usar ffmpeg en Linux

Cómo instalar MongoDB en Linux Mint 19

Cómo instalar MongoDB en Linux Mint 20

Instalar MongoDB en Ubuntu 18.04

Cómo instalar MongoDB en Rocky Linux 8

Cómo instalar MongoDB en Rocky Linux 8