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.