Dans cet article, nous allons vous montrer comment installer MongoDB, gérer ses services et autoriser les connexions à distance sur un VPS Ubuntu 18.04.
MongoDB est un système de gestion de base de données open source qui appartient à une famille de NoSQL. NoSQL est différent des bases de données SQL traditionnelles basées sur des tables (MySQL et PostgreSQL) - les données sont stockées dans des documents flexibles de type JSON sans schéma prédéfini, ce qui permet d'apporter des modifications importantes aux bases de données sans temps d'arrêt. Commençons par l'installation.
Étape 1 :Connectez-vous à votre serveur
Avant de commencer, vous devez vous connecter à votre serveur via SSH en tant qu'utilisateur root. Pour cela, utilisez la commande suivante :
ssh root@IP_Address -p port_number
Vous devrez remplacer IP_Address et port_number par l'adresse IP de votre serveur et le numéro de port SSH. Si vous n'avez pas accès au compte root, vous pouvez utiliser un compte avec des privilèges sudo à la place.
Une fois connecté, assurez-vous que votre serveur est à jour en exécutant les commandes suivantes :
sudo apt update sudo apt upgrade
Étape 2 :Installer MongoDB
Les référentiels de packages logiciels officiels Ubuntu sont livrés avec la version 3.6.3 de MongoDB, mais dans cet article, nous allons installer MongoDB 4.0, qui est la dernière version disponible. Cependant, vous pouvez toujours vérifier si une nouvelle version de MongoDB est disponible sur leur site officiel.
Pour installer MongoDB 4.0 Community Edition sur Ubuntu, nous devons importer la clé publique utilisée par le système de gestion des packages. Nous pouvons le faire avec la commande suivante :
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Puisque nous avons maintenant la clé importée, nous pouvons ajouter le référentiel MongoDB avec cette ligne suivante :
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Nous mettons ensuite à jour la liste des packages :
sudo apt update
À ce stade, le référentiel est activé et la liste des packages est mise à jour. Nous pouvons maintenant poursuivre l'installation du package MongoDB CE en saisissant la commande suivante :
sudo apt install mongodb-org
Les packages mongodb-org-server, mongodb-org-mongos, mongodb-org-shell et mongodb-org-tools seront installés sur votre système dans le cadre du package mongodb-org.
MongoDB 4.0 Community Edition est maintenant installé sur le serveur. Nous devons ensuite démarrer le service MongoDB et lui permettre de démarrer au démarrage.
sudo systemctl start mongod sudo systemctl enable mongod
Pour vérifier l'installation de MongoDB, nous pouvons vérifier l'état de la connexion en tapant la commande :
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Vous devriez avoir une sortie semblable à celle-ci :
MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c806e0e1-ab30-4d41-b882-026c09d2893f") } MongoDB server version: 4.0.6 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Félicitations, vous avez installé avec succès MongoDB sur votre serveur. La prochaine étape consistera à configurer votre serveur MongoDB.
Étape 3 :Configurer MongoDB
Nous pouvons configurer l'instance MongoDB en modifiant le mongod.conf
fichier, situé dans /etc/
. Nous utiliserons Nano pour modifier le fichier, mais vous pouvez utiliser votre éditeur de texte préféré si vous le souhaitez.
sudo nano /etc/mongod.conf
Afin de permettre les connexions à distance et de mieux sécuriser MongoDB, nous allons apporter quelques modifications au fichier de configuration. MongoDB écoute par défaut les connexions sur le port 27017 sur localhost (IP 127.0.0.1) uniquement. Afin d'autoriser une connexion MongoDB à distance, vous devez ajouter l'adresse IP de votre serveur au fichier de configuration MongoDB. Ceci est illustré ci-dessous à titre d'exemple :
bind_ip = 127.0.0.1, your_server_ip #port = 27017 security: authorization: enabled
Nous avons également inclus une option d'autorisation qui réglementera l'accès des utilisateurs aux bases de données MongoDB. Si l'option d'autorisation n'est pas activée, chaque utilisateur aura accès à toutes les bases de données MongoDB et pourra effectuer n'importe quelle action, ce qui constitue un risque pour la sécurité. Après avoir enregistré les modifications dans le fichier de configuration MongoDB, nous devons redémarrer le service MongoDB avec la commande suivante pour que les modifications prennent effet :
sudo systemctl restart mongod
Étape 4 :Création d'un utilisateur administratif MongoDB
Puisque nous avons configuré le serveur MongoDB et activé l'option d'authentification, nous devons maintenant créer un compte utilisateur administratif MongoDB qui sera utilisé pour gérer l'instance MongoDB.
Pour accéder au shell mongo, tapez :
mongo
Ensuite, nous utiliserons la commande suivante pour nous connecter à la base de données d'administration :
use admin
Sortie :
switched to db admin
Nous allons exécuter la commande suivante pour créer un nouvel utilisateur administratif appelé mongo_admin avec le rôle userAdminAnyDatabase :
db.createUser( { user: "mongo_admin", pwd: "Strong_Pas$w0rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Et nous obtiendrons ceci en sortie :
Successfully added user: { "user" : "mongo_admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
N'oubliez pas de remplacer "Strong_Pas$w0rd" par un véritable mot de passe fort. Nous pouvons maintenant quitter le shell mongo :
quit()
Étape 5 :Vérification de l'accès de l'utilisateur administratif
Pour confirmer les modifications, nous allons accéder au shell mongo en utilisant l'utilisateur mongo_admin que nous avons créé :
mongo -u mongo_admin -p --authenticationDatabase admin use admin show users
Et si vous avez suivi toutes les étapes jusqu'à présent, vous devriez avoir le résultat suivant :
Sortie :
> use admin switched to db admin > show users { "_id" : "admin.mongo_admin", "user" : "mongo_admin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
Vous pouvez également essayer de lister les utilisateurs lorsque vous accédez au shell mongo (sans arguments) et utiliser les mêmes commandes que nous avons utilisées auparavant.
Étape 6 :Autoriser l'accès à distance à MongoDB dans le pare-feu
Dans cette étape, nous fournirons un accès à distance à notre MongoDB en l'autorisant dans notre pare-feu. Si vous n'utilisez aucun pare-feu sur votre serveur, vous pouvez ignorer cette étape. Le port par défaut de MongoDB est 27017, donc dans nos exemples, nous allons vous montrer comment autoriser ce port via votre pare-feu.
Si vous utilisez l'UFW (pare-feu non compliqué), vous pouvez utiliser les conseils suivants pour permettre à MongoDB d'être accessible à distance.
Pour autoriser l'accès à MongoDB sur son port par défaut (27017) de partout, vous pouvez utiliser la commande suivante :
sudo ufw allow 27017
Pour autoriser l'accès à MongoDB sur son port par défaut 27017 à partir d'une adresse IP spécifique uniquement, vous pouvez utiliser la commande :
sudo ufw allow from allowed_IP_address/32 to any port 27017
Vous devrez remplacer l'adresse_IP_autorisée par l'adresse IP réelle que vous souhaitez utiliser.
Vous pouvez confirmer la modification des paramètres du pare-feu avec :
sudo ufw status
Sortie :
Status: active To Action From -- ------ ---- 27017 ALLOW Anywhere OpenSSH ALLOW Anywhere 27017 (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Étape 7 :Connectez-vous à MongoDB
Maintenant que nous avons installé et configuré MongoDB, nous devons mentionner différentes manières de s'y connecter. Nous devons nous assurer que notre configuration MongoDB fonctionne avant d'essayer d'accéder au shell Mongo.
Instance MongoDB locale sur le port par défaut
La connexion la plus élémentaire au shell mongo consiste simplement à exécuter la commande mongo sans aucun argument :
mongo
Instance MongoDB locale sur un port autre que celui par défaut
Si nous voulons nous connecter au shell Mongo sur un port spécifique, nous pouvons utiliser :
mongo --port port_number
Remplacez simplement le numéro de port par votre numéro de port réel.
Instance MongoDB sur un hôte distant
Si nous devons nous connecter à une machine hôte distante avec l'instance MongoDB, nous pouvons utiliser les méthodes suivantes :
Nous pouvons spécifier une chaîne de connexion.
mongo mongodb://your_domain_name.com:port_number
Nous pouvons utiliser l'option de ligne de commande –host
mongo --host your_domain_name.com:port_number
ou nous pouvons utiliser le –host
mongo --host your_domain_name.com --port port_number
Instance MongoDB avec authentification
Nous allons utiliser ces exemples pour vous montrer comment vous connecter à une instance MongoDB qui nécessite une authentification.
Nous pouvons définir le nom d'utilisateur, la base de données d'authentification et le numéro de port dans notre chaîne de connexion. De plus, nous pouvons définir le mot de passe (qui est facultatif) dans notre chaîne de connexion. Si le mot de passe n'est pas défini dans notre chaîne de connexion, le shell demandera le mot de passe.
mongo --host mongodb://user@your_domain_name.com:port_number/?authSource=admin
Nous pouvons utiliser les options de ligne de commande –username
mongo --username user --password --authenticationDatabase admin --host your_domain_name.com --port port_number
Se connecter à un ensemble de répliques MongoDB
Nous pouvons spécifier le nom et les membres du jeu de répliques dans la chaîne de connexion.
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA
Si vous utilisez le format de connexion DNS Seedlist, vous pouvez spécifier la chaîne de connexion :
mongo "mongodb+srv://server.your_domain_name.com/"
Nous pouvons spécifier le nom du jeu de réplicas et les membres à partir du –host
mongo --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
Connexion TLS/SSL
Nous pouvons spécifier l'option ssl=true dans la chaîne de connexion.
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA&ssl=true
ou nous pouvons spécifier –ssl dans la ligne de commande et utiliser l'exemple précédent sur la façon de se connecter au jeu de réplicas nommé replA :
mongo --ssl --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
Si vous souhaitez utiliser les commandes ci-dessus, n'oubliez pas de remplacer les valeurs telles que your_domain_name.com, host_name, user et replA dans les commandes par les valeurs réelles.
Étape 8 :désinstaller MongoDB
Si pour une raison quelconque vous n'aimez pas MongoDB et que vous devez le supprimer de votre système, vous pouvez suivre ces commandes :
sudo service mongod stop sudo apt purge mongodb-org* sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
Dans cet article, nous vous avons montré comment installer MongoDB, personnaliser le pare-feu, créer un utilisateur administrateur, activer l'accès à distance, se connecter à MongoDB et comment désinstaller et supprimer MongoDB. Vous pouvez maintenant utiliser ces connaissances et commencer à créer vos projets dans cette merveilleuse application.
Bien sûr, si vous êtes l'un de nos clients d'hébergement Ubuntu, ou si vous avez l'un de nos plans d'hébergement MongoDB géré, vous n'avez pas besoin d'installer MongoDB sur votre VPS Ubuntu 18.04 - demandez simplement à nos administrateurs, asseyez-vous et détendez-vous. Nos administrateurs installeront immédiatement MongoDB sur Ubuntu 18.04 pour vous.
PS . Si vous avez aimé cet article sur comment installer MongoDB sur un VPS Ubuntu 18.04 , partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons ci-dessous, ou laissez simplement un commentaire dans la section des commentaires. Merci.
Nouvelle version disponible ici :Comment installer MongoDB sur Ubuntu 20.04 et CentOS 8.