GNU/Linux >> Znalost Linux >  >> Linux

Nainstalujte MongoDB pomocí Vagrant v Linuxu

Vagrant je software s otevřeným zdrojovým kódem, který poskytuje čisté, snadno konfigurovatelné, reprodukovatelné a přenosné vývojové prostředí. Pomocí Vagrant můžeme snadno a rychle budovat a udržovat různá virtuální prostředí pro vývoj softwaru. V této příručce uvidíme, jak nainstalovat mongoDB pomocí Vagrant v operačním systému Linux.

Co je mongoDB?

MongoDB je NoSQL databáze orientovaná na dokumenty, která se používá, když musíte zpracovávat obrovské množství dat. MongoDB používá kolekce a dokumenty k ukládání dat. Dokumenty jsou sada párů klíč–hodnota (JSON) uložených ve sbírkách.

Níže je ukázkový dokument v JSON formát pro vaši referenci.

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

Nejnovější verze mongoDB je 5 . MongoDB je k dispozici ve dvou variantách – komunitní edici a podnikovou edici. V tomto článku nainstalujeme komunitní vydání mongoDB 5 pomocí Vagrant v Linuxu.

Předpoklady

Než přistoupíte k dalším krokům, ujistěte se, že jste do svého počítače se systémem Linux nainstalovali Oracle VirtualBox a Vagrant. Oracle VirtualBox je k dispozici v oficiálních repozitářích populárních distribucí Linuxu, takže jej můžete nainstalovat pomocí výchozího správce balíčků vaší distribuce.

A poté nainstalujte Vagrant do svého systému Linux, jak je popsáno v následujícím odkazu.

  • Jak nainstalovat Vagrant na Linux

Inicializovat prostředí Vagrant

Pro účely této příručky budu jako hypervizor používat Oracle Virtualbox, což je výchozí poskytovatel pro Vagrant. A k nasazení mongoDB v něm používám Ubuntu 20.04 Vagrant box.

Vytvořte nový adresář projektu pro MongoB.

$ mkdir mongodb_vagrant

Přepněte se do adresáře projektu a inicializujte prostředí vagrant spuštěním následujícího příkazu:

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

Tím se v adresáři projektu vytvoří nový soubor Vagrantfile. Otevřete soubor Vagrantfile ve svém oblíbeném editoru a zkopírujte/vložte do něj následující řádky:

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

Dovolte mi vysvětlit důležité parametry ve výše uvedeném kódu.

Parametr vm.box ukazuje na základní distribuci Linuxu, kterou používáme k instalaci MongoDB. V našem případě je to Ubuntu 20.04 LTS.

config.vm.box = "ubuntu/focal64"

Pokaždé, když spouštíte virtuální počítač, Vagrant zkontroluje, zda existuje nějaká aktualizace pro použitý box. Nastavení parametru box_check_update = false vypne kontrolu aktualizací. Toto je volitelné! Dáváte přednost aktualizaci boxu Vagrant, můžete odstranit tento řádek:

config.vm.box_check_update = false

Každému virtuálnímu počítači tuláka je přiřazeno default jako jméno. Parametr vm.define lze použít k nastavení vlastního názvu vašeho virtuálního počítače. V tomto případě jsem nastavil název na MongoDB5 .

config.vm.define "MongoDB5"

Můžete spustit global-status příkaz ke kontrole názvu přiřazeného virtuálnímu počítači:

$ vagrant global-status --prune

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

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

Následující parametr rozhoduje o tom, jak bude síť nastavena pro váš VM.

config.vm.network "public_network"

Nastavil jsem Public_network . Neuvedl jsem ani název rozhraní, protože se může lišit a rozhraní, které se má připojit, bude vyzváno během vagrant up jak je uvedeno ve výstupu protokolu níže.

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

K instalaci a nastavení MongoDB jsem použil shell Provider. Název skriptu je mongo-bootstrap.sh . Skript můžete pojmenovat, jak chcete.

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

Následující parametry nakonfigurují paměť a CPU pro váš virtuální počítač. Nastavil jsem paměť na 2gigs a 2 Vcore . Hodnoty můžete zvýšit a snížit úpravou v.memory a v.cpus parametry.

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

Název přiřazený parametru v.name je to, co se zobrazí ve vašem GUI Virtualboxu.

Vytvořit bootstrap shell skript

Jak jsem uvedl dříve, pro instalaci a konfiguraci mongoDB v krabici vagrant se používá shell Provider.

Vytvořte soubor s názvem mongo-bootstrap.sh :

$ vi mongo-bootstrap.sh

A přidejte do něj následující část kódu:

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

Stiskněte ESC a zadejte :wq uložte soubor a zavřete jej.

Dovolte mi, abych vám stručně popsal každou část výše uvedeného kódu.

Ve výchozím nastavení existuje starší verze mongoDB, která se dodává s Ubuntu. Pokud chcete nejnovější verzi mongodDB, musíte přidat oficiální úložiště do mongo-bootstrap.sh soubor.

Následující část kódu se postará o přidání úložiště, aktualizaci indexu balíčku, instalaci mongoDB a vyvolání mongod démon.

Následující blok kódu vytvoří tuláka uživatele s oprávněními správce. Uživatelské jméno bude vagrant a heslo je také nastaveno na vagrant . Pokud chcete, můžete nastavit jiné uživatelské jméno a heslo.

Ve výchozím nastavení není vynucena žádná bezpečnostní politika. Každý uživatel může vyvolat mongosh shell a začít používat databázi. Chcete-li vynutit řízení přístupu na základě rolí, měl by být do /etc/mongod.conf přidán následující parametr soubor.

Tento kus kódu se postará o přidání parametru a restartování mongod aby byly změny účinné.

Pozor: Před povolením RBAC (Role based access control) by měl být vytvořen administrátor, aby mohl udělovat přístup dalším uživatelům v jakékoli databázi.

Spusťte stroj mongoDB Vagrant

Po vytvoření souboru Vagrant a bootstrap skriptu můžete spustit VM spuštěním následujícího příkazu:

$ vagrant up

Nyní počkejte, až se počítač nabootuje a o instalaci a konfiguraci mongoDB se postará bootstrap skript. Bude to pár minut trvat.

Chcete-li se přihlásit k virtuálnímu počítači, spusťte následující příkaz:

$ vagrant ssh

MongoDB naslouchá na portu 27017 . Můžete použít netstat příkaz ke kontrole, zda je port ve stavu naslouchání.

$ sudo netstat -tlnup

Ukázkový výstup:

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

Spuštěním následujícího příkazu zkontrolujte stav mongod služba:

$ systemctl status mongod

Ukázkový výstup:

● 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

Přístup k prostředí mongoDB

mongo shell je cli klient pro připojení k mongoDB. Nyní je nahrazen novým klientem cli mongosh z mongoDB V5.

Spusťte mongosh v terminálu, abyste mohli začít používat shell. Protože je povoleno RBAC, musíte zadat přihlašovací údaje.

K databázi MongoDB se můžete připojit pomocí monosh pomocí následujícího připojovacího řetězce.

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

Zde se připojuji k nově vytvořenému tulákovému uživateli.

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

Případně můžete spustit shell a spustit následující příkazy pro připojení:

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

Spravujte mongoDB vagrant box z příkazového řádku

Následující příkazy tuláků vám pomohou spravovat virtuální počítač mongoDB prostřednictvím rozhraní 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

Podrobnější informace o použití příkazů Vagrant najdete v našem výukovém programu Vagrant:

  • Výukový program Vagrant – Začínáme s Vagrant v Linuxu

Závěr

V tomto průvodci krok za krokem jsme viděli, jak snadno nastavit mongoDB v Ubuntu 20.04 Vagrant box. Pokud testujete projekt mongoDB nebo se učíte mongoDB, můžete rychle roztočit krabici Vagrant a nainstalovat mongodDB do krabice Vagrant, jak je popsáno zde.


Linux
  1. Jak nainstalovat Vagrant v Linuxu

  2. Jak nainstalovat phpMyAdmin v Linuxu pomocí zdrojového kódu

  3. Nainstalujte více verzí MongoDB na linux

  1. Jak nainstalovat Vagrant na Linux

  2. Nainstalujte MongoDB na CentOS VPS

  3. Jak nainstalovat MongoDB ze zdroje (a pomocí YUM) na Linuxu

  1. Jak nainstalovat MongoDB na Debian 10 Linux

  2. Jak nainstalovat Vagrant na Debian 10 Linux

  3. Chyba na Vagrant Up na Linuxu