GNU/Linux >> Tutoriels Linux >  >> Linux

Installer MongoDB à l'aide de Vagrant sous Linux

Vagabond est un logiciel open source qui fournit un environnement de développement propre, facile à configurer, reproductible et portable. En utilisant Vagrant, nous pouvons facilement et rapidement créer et maintenir différents environnements de développement de logiciels virtuels. Dans ce guide, nous verrons comment installer mongoDB à l'aide de Vagrant dans le système d'exploitation Linux.

Qu'est-ce que mongoDB ?

MongoDB est une base de données orientée document NoSQL utilisée lorsque vous devez gérer des données volumineuses. MongoDB utilise des collections et des documents pour stocker les données. Les documents sont un ensemble de paires clé-valeur (JSON) stockées dans des collections.

Ci-dessous un exemple de document en JSON format pour votre référence.

{
   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 version la plus récente de mongoDB est 5 . MongoDB est disponible en deux variantes - édition communautaire et édition entreprise. Dans cet article, nous installerons l'édition communautaire de mongoDB 5 à l'aide de Vagrant sous Linux.

Prérequis

Avant de passer aux étapes suivantes, assurez-vous d'avoir installé Oracle VirtualBox et Vagrant sur votre machine Linux. Oracle VirtualBox est disponible dans les référentiels officiels des distributions Linux populaires, vous pouvez donc l'installer à l'aide du gestionnaire de packages par défaut de votre distribution.

Et ensuite, installez Vagrant sur votre système Linux comme décrit dans le lien suivant.

  • Comment installer Vagrant sur Linux

Initialiser l'environnement Vagrant

Pour les besoins de ce guide, j'utiliserai Oracle Virtualbox comme hyperviseur, qui est le fournisseur par défaut de Vagrant. Et j'utilise la boîte Ubuntu 20.04 Vagrant pour y déployer mongoDB.

Créez un nouveau répertoire de projet pour MongoB.

$ mkdir mongodb_vagrant

Basculez vers le répertoire du projet et initialisez l'environnement vagrant en exécutant la commande suivante :

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

Cela créera un nouveau Vagrantfile dans le répertoire du projet. Ouvrez le Vagrantfile dans votre éditeur préféré et copiez/collez-y les lignes suivantes :

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

Permettez-moi d'expliquer les paramètres importants dans le code ci-dessus.

Le paramètre vm.box pointe vers la distribution Linux sous-jacente que nous utilisons pour installer MongoDB. Dans notre cas, il s'agit d'Ubuntu 20.04 LTS.

config.vm.box = "ubuntu/focal64"

Chaque fois que vous démarrez la machine virtuelle, Vagrant vérifie s'il existe une mise à jour pour la boîte utilisée. Définition du paramètre box_check_update = false désactivera la vérification des mises à jour. C'est facultatif ! Vous préférez mettre à jour la box Vagrant, vous pouvez supprimer cette ligne :

config.vm.box_check_update = false

Chaque VM vagabonde est assignée avec default comme nom. Le paramètre vm.define peut être utilisé pour définir un nom personnalisé pour votre machine virtuelle. Dans ce cas, j'ai défini le nom sur MongoDB5 .

config.vm.define "MongoDB5"

Vous pouvez exécuter le global-status commande pour vérifier le nom attribué à la VM :

$ vagrant global-status --prune

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

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

Le paramètre suivant détermine comment la mise en réseau sera configurée pour votre machine virtuelle.

config.vm.network "public_network"

J'ai configuré Public_network . Je n'ai pas non plus fourni le nom de l'interface car il peut varier et l'interface à connecter sera demandée lors de vagrant up comme indiqué dans la sortie du journal ci-dessous.

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

J'ai utilisé Shell Provisioner pour installer et configurer MongoDB. Le nom du script est mongo-bootstrap.sh . Vous pouvez nommer le script comme vous le souhaitez.

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

Les paramètres suivants configureront la mémoire et le CPU de votre machine virtuelle. J'ai réglé la mémoire sur 2gigs et 2 Vcores . Vous pouvez augmenter et diminuer les valeurs en modifiant le v.memory et v.cpus paramètres.

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

Le nom attribué au paramètre v.name est ce qui sera affiché dans votre interface graphique Virtualbox.

Créer un script shell d'amorçage

Comme je l'ai dit plus tôt, un fournisseur de shell est utilisé pour installer et configurer le mongoDB dans la boîte vagabonde.

Créez un fichier nommé mongo-bootstrap.sh :

$ vi mongo-bootstrap.sh

Et ajoutez-y le morceau de code suivant :

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

Appuyez sur ESC et tapez :wq pour enregistrer le fichier et le fermer.

Permettez-moi de vous donner une brève description de chaque section dans le code ci-dessus.

Par défaut, il existe une ancienne version de mongoDB livrée avec Ubuntu. Si vous voulez la dernière version de mongodDB, vous devez ajouter le référentiel officiel dans le mongo-bootstrap.sh dossier.

La section de code suivante s'occupera d'ajouter le référentiel, de mettre à jour l'index du package, d'installer mongoDB et d'afficher le mongod démon.

Le bloc de code suivant créera un utilisateur vagabond avec des privilèges d'administrateur. Le nom d'utilisateur sera vagrant et le mot de passe est également défini sur vagrant . Vous pouvez définir un nom d'utilisateur et un mot de passe différents si vous le souhaitez.

Par défaut, aucune politique de sécurité n'est appliquée. Tout utilisateur peut invoquer mongosh shell et commencez à utiliser la base de données. Pour appliquer le contrôle d'accès basé sur les rôles, le paramètre suivant doit être ajouté à /etc/mongod.conf fichier.

Ce morceau de code se chargera d'ajouter le paramètre et de redémarrer le mongod démon pour que les modifications soient effectives.

Attention : Avant d'activer RBAC (contrôle d'accès basé sur les rôles), un utilisateur administrateur doit être créé, afin qu'il puisse accorder l'accès à d'autres utilisateurs dans n'importe quelle base de données.

Démarrer la machine mongoDB Vagrant

Une fois le fichier Vagrant et le script d'amorçage créés, vous pouvez démarrer la VM en exécutant la commande suivante :

$ vagrant up

Maintenant, attendez que la machine soit démarrée et que la partie installation et configuration de mongoDB soit prise en charge par le script bootstrap. Cela prendra quelques minutes.

Pour vous connecter à la VM, exécutez la commande suivante :

$ vagrant ssh

MongoDB écoute sur le port 27017 . Vous pouvez utiliser le netstat commande pour vérifier si le port est en état d'écoute.

$ sudo netstat -tlnup

Exemple de résultat :

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

Exécutez la commande suivante pour vérifier l'état de mongod service :

$ systemctl status mongod

Exemple de résultat :

● 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

Accéder au shell mongoDB

La coquille mongo est un client cli pour se connecter à mongoDB. Maintenant, il est remplacé par un nouveau client cli mongosh de mongoDB V5.

Exécutez mongosh dans le terminal pour commencer à utiliser le shell. Étant donné que RBAC est activé, vous devez fournir les informations d'identification.

Vous pouvez vous connecter à la base de données MongoDB en utilisant monosh en utilisant la chaîne de connexion suivante.

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

Ici, je me connecte avec un utilisateur vagabond nouvellement créé.

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

Vous pouvez également démarrer le shell et exécuter les commandes suivantes pour vous connecter :

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

Gérer la boîte vagrant mongoDB à partir de la ligne de commande

Les commandes vagabondes suivantes vous aideront à gérer la VM mongoDB via 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

Pour une utilisation plus détaillée des commandes Vagrant, consultez notre tutoriel Vagrant :

  • Tutoriel Vagrant – Premiers pas avec Vagrant sous Linux

Conclusion

Dans ce guide étape par étape, nous avons vu comment configurer facilement mongoDB dans la boîte Ubuntu 20.04 Vagrant. Si vous testez un projet mongoDB ou apprenez mongoDB, vous pouvez rapidement démarrer une boîte Vagrant et installer mongodDB dans la boîte Vagrant comme décrit ici.


Linux
  1. Comment installer Vagrant sur Linux

  2. Comment installer Vagrant sous Linux

  3. Installer MongoDB sur un VPS CentOS

  4. Comment installer MongoDB à partir de la source (et en utilisant YUM) sous Linux

  5. Erreur sur Vagrant Up sous Linux

Le guide complet d'utilisation de ffmpeg sous Linux

Comment installer MongoDB sur Linux Mint 19

Comment installer MongoDB sur Linux Mint 20

Installer MongoDB sur Ubuntu 18.04

Comment installer MongoDB sur Rocky Linux 8

Comment installer MongoDB sur Rocky Linux 8