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.