GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Installieren Sie MongoDB mit Vagrant unter Linux

Landstreicher ist eine Open-Source-Software, die eine saubere, einfach zu konfigurierende, reproduzierbare und portable Entwicklungsumgebung bietet. Mit Vagrant können wir einfach und schnell verschiedene virtuelle Softwareentwicklungsumgebungen erstellen und warten. In diesem Handbuch erfahren Sie, wie Sie MongoDB mit Vagrant im Linux-Betriebssystem installieren.

Was ist MongoDB?

MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die verwendet wird, wenn Sie mit riesigen Datenmengen umgehen müssen. MongoDB verwendet Sammlungen und Dokumente, um die Daten zu speichern. Dokumente sind eine Reihe von Schlüssel-Wert-Paaren (JSON), die in Sammlungen gespeichert sind.

Unten ist ein Beispieldokument in JSON Format als Referenz.

{
   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
}

Die neueste Version von mongoDB ist 5 . MongoDB ist in zwei Varianten verfügbar – Community Edition und Enterprise Edition. In diesem Artikel installieren wir die mongoDB 5 Community Edition mit Vagrant unter Linux.

Voraussetzungen

Bevor Sie mit den nächsten Schritten fortfahren, stellen Sie sicher, dass Sie Oracle VirtualBox und Vagrant auf Ihrem Linux-Computer installiert haben. Oracle VirtualBox ist in den offiziellen Repositorys gängiger Linux-Distributionen verfügbar, sodass Sie es mit dem Standard-Paketmanager Ihrer Distribution installieren können.

Installieren Sie dann Vagrant auf Ihrem Linux-System, wie im folgenden Link beschrieben.

  • So installieren Sie Vagrant unter Linux

Vagrant-Umgebung initialisieren

Für die Zwecke dieses Handbuchs verwende ich Oracle Virtualbox als Hypervisor, den Standardanbieter für Vagrant. Und ich verwende Ubuntu 20.04 Vagrant Box, um MongoDB darin bereitzustellen.

Erstellen Sie ein neues Projektverzeichnis für MongoB.

$ mkdir mongodb_vagrant

Wechseln Sie in das Projektverzeichnis und initialisieren Sie die Vagrant-Umgebung, indem Sie den folgenden Befehl ausführen:

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

Dadurch wird eine neue Vagrant-Datei im Projektverzeichnis erstellt. Öffnen Sie die Vagrant-Datei in Ihrem bevorzugten Editor und kopieren/fügen Sie die folgenden Zeilen darin ein:

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

Erlauben Sie mir, die wichtigen Parameter im obigen Code zu erklären.

Der Parameter vm.box verweist auf die zugrunde liegende Linux-Distribution, die wir zur Installation von MongoDB verwenden. In unserem Fall ist es Ubuntu 20.04 LTS.

config.vm.box = "ubuntu/focal64"

Jedes Mal, wenn Sie die VM hochfahren, prüft Vagrant, ob es ein Update für die verwendete Box gibt. Setzen des Parameters box_check_update = false wird die Aktualisierungsprüfung deaktivieren. Dies ist optional! Wenn Sie es vorziehen, die Vagrant-Box zu aktualisieren, können Sie diese Zeile entfernen:

config.vm.box_check_update = false

Jeder vagabundierenden VM wird default zugewiesen als Name. Der Parameter vm.define kann verwendet werden, um einen benutzerdefinierten Namen für Ihre VM festzulegen. In diesem Fall habe ich den Namen auf MongoDB5 gesetzt .

config.vm.define "MongoDB5"

Sie können global-status ausführen Befehl, um den der VM zugewiesenen Namen zu überprüfen:

$ vagrant global-status --prune

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

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

Der folgende Parameter entscheidet, wie das Netzwerk für Ihre VM eingerichtet wird.

config.vm.network "public_network"

Ich habe Public_network eingerichtet . Ich habe auch den Schnittstellennamen nicht angegeben, da er variieren kann und die zu verbindende Schnittstelle während vagrant up abgefragt wird wie in der folgenden Protokollausgabe gezeigt.

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

Ich habe den Shell-Provisioner verwendet, um MongoDB zu installieren und einzurichten. Der Skriptname ist mongo-bootstrap.sh . Sie können das Skript nach Belieben benennen.

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

Die folgenden Parameter konfigurieren den Arbeitsspeicher und die CPU für Ihre virtuelle Maschine. Ich habe den Speicher auf 2 GB eingestellt und 2 Vcores . Sie können die Werte erhöhen und verringern, indem Sie v.memory ändern und v.cpus Parameter.

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

Der dem Parameter v.name zugewiesene Name wird in Ihrer Virtualbox-GUI angezeigt.

Bootstrap-Shell-Skript erstellen

Wie ich bereits erwähnt habe, wird ein Shell-Provisioner für die Installation und Konfiguration der mongoDB in der Vagrant-Box verwendet.

Erstellen Sie eine Datei namens mongo-bootstrap.sh :

$ vi mongo-bootstrap.sh

Und fügen Sie den folgenden Code hinzu:

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

Drücken Sie ESC und geben Sie :wq ein um die Datei zu speichern und zu schließen.

Lassen Sie mich Ihnen eine kurze Beschreibung jedes Abschnitts im obigen Code geben.

Standardmäßig gibt es eine ältere Version von mongoDB, die mit Ubuntu ausgeliefert wird. Wenn Sie die neueste Version von mongodDB möchten, müssen Sie das offizielle Repository in mongo-bootstrap.sh hinzufügen Datei.

Der folgende Codeabschnitt kümmert sich um das Hinzufügen des Repositorys, das Aktualisieren des Paketindex, das Installieren von mongoDB und das Aufrufen von mongod Dämon.

Der folgende Codeblock erstellt einen Vagrant-Benutzer mit Administratorrechten. Der Benutzername lautet vagrant und das Passwort ist ebenfalls auf vagrant gesetzt . Wenn Sie möchten, können Sie einen anderen Benutzernamen und ein anderes Passwort festlegen.

Standardmäßig wird keine Sicherheitsrichtlinie erzwungen. Jeder Benutzer kann mongosh aufrufen Shell und beginnen Sie mit der Verwendung der Datenbank. Um eine rollenbasierte Zugriffskontrolle zu erzwingen, sollte der folgende Parameter zu /etc/mongod.conf hinzugefügt werden Datei.

Dieser Codeabschnitt kümmert sich um das Hinzufügen des Parameters und startet den mongod neu Daemon, damit Änderungen wirksam werden.

Vorsicht: Bevor Sie RBAC (rollenbasierte Zugriffskontrolle) aktivieren, sollte ein Admin-Benutzer erstellt werden, damit er/sie anderen Benutzern in jeder Datenbank Zugriff gewähren kann.

MongoDB Vagrant-Maschine starten

Nachdem die Vagrant-Datei und das Bootstrap-Skript erstellt wurden, können Sie die VM starten, indem Sie den folgenden Befehl ausführen:

$ vagrant up

Warten Sie nun, bis der Computer hochgefahren ist und der MongoDB-Installations- und Konfigurationsteil vom Bootstrap-Skript erledigt wird. Dies dauert einige Minuten.

Um sich bei der VM anzumelden, führen Sie den folgenden Befehl aus:

$ vagrant ssh

MongoDB überwacht Port 27017 . Sie können netstat verwenden Befehl, um zu prüfen, ob der Port im Listening-Status ist.

$ sudo netstat -tlnup

Beispielausgabe:

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

Führen Sie den folgenden Befehl aus, um den Status von mongod zu überprüfen Dienst:

$ systemctl status mongod

Beispielausgabe:

● 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

Greifen Sie auf die MongoDB-Shell zu

Die Mongo-Muschel ist ein CLI-Client zur Verbindung mit MongoDB. Jetzt wird es durch einen neuen CLI-Client mongosh ersetzt von mongoDB V5.

Führen Sie mongosh aus im Terminal, um die Shell zu verwenden. Da RBAC aktiviert ist, müssen Sie die Anmeldeinformationen angeben.

Sie können sich mit monosh mit der MongoDB-Datenbank verbinden mit der folgenden Verbindungszeichenfolge.

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

Hier verbinde ich mich mit einem neu erstellten vagabundierenden Benutzer.

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

Alternativ können Sie die Shell starten und die folgenden Befehle ausführen, um eine Verbindung herzustellen:

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

MongoDB Vagrant Box über die Befehlszeile verwalten

Die folgenden Vagrant-Befehle helfen Ihnen bei der Verwaltung der mongoDB-VM über die 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

Weitere Informationen zur Verwendung von Vagrant-Befehlen finden Sie in unserem Vagrant-Tutorial:

  • Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Schlussfolgerung

In dieser Schritt-für-Schritt-Anleitung haben wir gesehen, wie Sie MongoDB in der Ubuntu 20.04 Vagrant-Box einfach einrichten können. Wenn Sie ein mongoDB-Projekt testen oder MongoDB lernen, können Sie schnell eine Vagrant-Box hochfahren und mongodDB wie hier beschrieben in der Vagrant-Box installieren.


Linux
  1. So installieren Sie Vagrant unter Linux

  2. So installieren Sie phpMyAdmin unter Linux mithilfe des Quellcodes

  3. Installieren Sie MongoDB auf einem CentOS VPS

  4. So installieren Sie MongoDB von der Quelle (und mit YUM) unter Linux

  5. Fehler bei Vagrant Up unter Linux

Das vollständige Handbuch zur Verwendung von ffmpeg unter Linux

So installieren Sie MongoDB unter Linux Mint 19

So installieren Sie MongoDB unter Linux Mint 20

Installieren Sie MongoDB auf Ubuntu 18.04

So installieren Sie MongoDB auf Rocky Linux 8

So installieren Sie MongoDB unter Rocky Linux 8