
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.
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.
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.
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.
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")
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í.