GNU/Linux >> Linux Esercitazione >  >> Linux

Installa MongoDB usando Vagrant in Linux

Vagabondo è un software open source che fornisce un ambiente di sviluppo pulito, facile da configurare, riproducibile e portatile. Utilizzando Vagrant, possiamo creare e mantenere facilmente e rapidamente diversi ambienti di sviluppo software virtuali. In questa guida vedremo come installare mongoDB utilizzando Vagrant nel sistema operativo Linux.

Cos'è mongoDB?

MongoDB è un database NoSQL orientato ai documenti utilizzato quando devi gestire dati enormi. MongoDB utilizza raccolte e documenti per archiviare i dati. I documenti sono un insieme di coppie chiave-valore (JSON) archiviate nelle raccolte.

Di seguito è riportato un documento di esempio in JSON formato come riferimento.

{
   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 versione più recente di mongoDB è 5 . MongoDB è disponibile in due varianti:community edition ed enterprise edition. In questo articolo, installeremo l'edizione della community mongoDB 5 utilizzando Vagrant in Linux.

Prerequisiti

Prima di procedere con i passaggi successivi, assicurati di aver installato Oracle VirtualBox e Vagrant nella tua macchina Linux. Oracle VirtualBox è disponibile nei repository ufficiali delle distribuzioni Linux più diffuse, quindi puoi installarlo utilizzando il gestore di pacchetti predefinito della tua distribuzione.

E poi, installa Vagrant sul tuo sistema Linux come descritto nel seguente link.

  • Come installare Vagrant su Linux

Inizializza l'ambiente Vagrant

Ai fini di questa guida, utilizzerò Oracle Virtualbox come hypervisor, che è il provider predefinito per Vagrant. E sto usando Ubuntu 20.04 Vagrant box per distribuire mongoDB in esso.

Crea una nuova directory di progetto per MongoB.

$ mkdir mongodb_vagabondo

Passa alla directory del progetto e inizializza l'ambiente vagabondo eseguendo il comando seguente:

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

Questo creerà un nuovo Vagrantfile nella directory del progetto. Apri il Vagrantfile nel tuo editor preferito e copia/incolla le seguenti righe al suo interno:

# -*- 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

Consentitemi di spiegare i parametri importanti nel codice sopra.

Il parametro vm.box punta alla distribuzione Linux sottostante che utilizziamo per installare MongoDB. Nel nostro caso, è Ubuntu 20.04 LTS.

config.vm.box = "ubuntu/focal64"

Ogni volta che avvii la VM, Vagrant verificherà se sono presenti aggiornamenti per la casella utilizzata. Impostazione del parametro box_check_update = false disabiliterà il controllo degli aggiornamenti. Questo è facoltativo! Preferisci aggiornare la casella Vagrant, puoi rimuovere questa riga:

config.vm.box_check_update = false

Ogni VM vagabondo viene assegnata con default come il nome. Il parametro vm.define può essere usato per impostare un nome personalizzato per la tua macchina virtuale. In questo caso, ho impostato il nome su MongoDB5 .

config.vm.define "MongoDB5"

Puoi eseguire lo global-status comando per verificare il nome assegnato alla VM:

$ vagrant global-status --prune

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

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

Il parametro seguente decide come verrà configurata la rete per la tua VM.

config.vm.network "public_network"

Ho impostato Public_network . Inoltre non ho fornito il nome dell'interfaccia poiché potrebbe variare e l'interfaccia da collegare verrà richiesta durante vagrant up come mostrato nell'output del registro sottostante.

==> 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)

Ho usato il provisioner della shell per installare e configurare MongoDB. Il nome dello script è mongo-bootstrap.sh . Puoi nominare lo script come desideri.

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

I seguenti parametri configureranno la memoria e la CPU per la tua macchina virtuale. Ho impostato la memoria su 2gigs e 2 Vcore . Puoi aumentare e diminuire i valori modificando il v.memory e v.cpus parametri.

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

Il nome assegnato al parametro v.name è ciò che verrà visualizzato nella GUI di Virtualbox.

Crea script di shell bootstrap

Come ho affermato in precedenza, viene utilizzato un provisioner della shell per l'installazione e la configurazione di mongoDB nella casella vagrant.

Crea un file chiamato mongo-bootstrap.sh :

$ vi mongo-bootstrap.sh

E aggiungi il seguente pezzo di codice al suo interno:

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

Premi ESC e digita :wq per salvare il file e chiuderlo.

Lascia che ti dia una breve descrizione di ciascuna sezione del codice sopra.

Per impostazione predefinita, esiste una versione precedente di mongoDB fornita con Ubuntu. Se vuoi l'ultima versione di mongodDB, devi aggiungere il repository ufficiale in mongo-bootstrap.sh file.

La seguente sezione di codice si occuperà dell'aggiunta del repository, dell'aggiornamento dell'indice del pacchetto, dell'installazione di mongoDB e della visualizzazione di mongod demone.

Il seguente blocco di codice creerà un utente vagabondo con privilegi di amministratore. Il nome utente sarà vagrant e anche la password è impostata su vagrant . Se lo desideri, puoi impostare un nome utente e una password diversi.

Per impostazione predefinita, non viene applicata alcuna politica di sicurezza. Qualsiasi utente può invocare mongosh shell e iniziare a utilizzare il database. Per imporre il controllo dell'accesso basato sui ruoli, è necessario aggiungere il seguente parametro a /etc/mongod.conf file.

Questo pezzo di codice si occuperà di aggiungere il parametro e riavviare mongod demone per rendere effettive le modifiche.

Avviso: Prima di abilitare RBAC (Role based access control), è necessario creare un utente amministratore, in modo che possa concedere l'accesso ad altri utenti in qualsiasi database.

Avvia la macchina mongoDB Vagrant

Una volta creati il ​​file Vagrant e lo script di bootstrap, puoi avviare la VM eseguendo il seguente comando:

$ vagrant up

Ora, attendi fino a quando la macchina non viene avviata e la parte di installazione e configurazione di mongoDB viene gestita dallo script bootstrap. Ci vorranno un paio di minuti.

Per accedere alla macchina virtuale, eseguire il comando seguente:

$ vagrant ssh

MongoDB è in ascolto sulla porta 27017 . Puoi utilizzare il netstat comando per verificare se la porta è in stato di ascolto.

$ sudo netstat -tlnup

Risultato di esempio:

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

Esegui il comando seguente per verificare lo stato di mongod servizio:

$ systemctl status mongod

Risultato di esempio:

● 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

Accedi alla shell mongoDB

La conchiglia di mongo è un client cli per connettersi a mongoDB. Ora è sostituito con un nuovo client cli mongosh da mongoDB V5.

Esegui mongosh nel terminale per iniziare a usare la shell. Poiché RBAC è abilitato, devi fornire le credenziali.

Puoi connetterti al database MongoDB usando monosh utilizzando la seguente stringa di connessione.

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

Qui mi sto connettendo con un utente vagabondo appena creato.

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

In alternativa, puoi avviare la shell ed eseguire i seguenti comandi per connetterti:

$ monosh
$ use admin
$ db.auth("username","password")
$ db.auth("vagrant","vagrant")

Gestisci box vagrant mongoDB dalla riga di comando

I seguenti comandi vagabondi ti aiuteranno a gestire la VM mongoDB tramite 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

Per un utilizzo più dettagliato dei comandi Vagrant, fare riferimento al nostro tutorial Vagrant:

  • Tutorial di Vagrant – Introduzione a Vagrant in Linux

Conclusione

In questa guida passo passo, abbiamo visto come configurare facilmente mongoDB in Ubuntu 20.04 Vagrant box. Se stai testando un progetto mongoDB o stai imparando mongoDB, puoi creare rapidamente una casella Vagrant e installare mongodDB nella casella Vagrant come descritto qui.


Linux
  1. Come installare Vagrant su Linux

  2. Come installare Vagrant su Linux

  3. Come installare phpMyAdmin in Linux usando il codice sorgente

  4. Installa MongoDB su un VPS CentOS

  5. Come installare MongoDB dal sorgente (e usando YUM) su Linux

La guida completa per l'utilizzo di ffmpeg in Linux

Come installare MongoDB su Linux Mint 19

Come installare MongoDB su Linux Mint 20

Installa MongoDB su Ubuntu 18.04

Come installare MongoDB su Rocky Linux 8

Come installare MongoDB su Rocky Linux 8