Comment installer MongoDB sur Ubuntu 18.04

L'auteur a sélectionné lesCreative Commons Corporation pour recevoir un don de 100 $ dans le cadre du programmeWrite for DOnations.

introduction

MongoDB est une base de données de documents NoSQL gratuite et open source utilisée couramment dans les applications Web modernes.

Dans ce didacticiel, vous allez installer MongoDB, gérer son service et éventuellement activer l’accès distant.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

[[step-1 -—- Installing-mongodb]] == Étape 1 - Installation de MongoDB

Les dépôts de packages officiels d'Ubuntu incluent une version à jour de MongoDB, ce qui signifie que nous pouvons installer les packages nécessaires en utilisantapt.

Commencez par mettre à jour la liste des packages pour avoir la version la plus récente des listes de référentiels:

sudo apt update

Maintenant, installez le paquet MongoDB lui-même:

sudo apt install -y mongodb

Cette commande installe plusieurs packages contenant la dernière version stable de MongoDB, ainsi que des outils de gestion utiles pour le serveur MongoDB. Le serveur de base de données est automatiquement démarré après l'installation.

Ensuite, vérifions que le serveur fonctionne et fonctionne correctement.

[[step-2 -—- verification-the-service-and-database]] == Étape 2 - Vérification du service et de la base de données

Le processus d’installation a démarré MongoDB automatiquement, mais vérifions que le service est démarré et que la base de données fonctionne.

Tout d’abord, vérifiez le statut du service:

sudo systemctl status mongodb

Vous verrez cette sortie:

Output● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
     Docs: man:mongod(1)
 Main PID: 2312 (mongod)
    Tasks: 23 (limit: 1153)
   CGroup: /system.slice/mongodb.service
           └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Selonsystemd, le serveur MongoDB est opérationnel.

Nous pouvons le vérifier davantage en nous connectant au serveur de base de données et en exécutant une commande de diagnostic.

Exécutez cette commande:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Cela affichera la version actuelle de la base de données, l'adresse et le port du serveur, ainsi que la sortie de la commande status:

OutputMongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

Une valeur de1 pour le champok dans la réponse indique que le serveur fonctionne correctement.

Nous verrons ensuite comment gérer l’instance de serveur.

[[step-3 -—- Managing-the-mongodb-service]] == Étape 3 - Gestion du service MongoDB

MongoDB s'installe en tant que service systemd, ce qui signifie que vous pouvez le gérer à l'aide des commandessystemd standard aux côtés de tous les autres services système dans Ubuntu.

Pour vérifier le statut du service, tapez:

sudo systemctl status mongodb

Vous pouvez arrêter le serveur à tout moment en tapant:

sudo systemctl stop mongodb

Pour démarrer le serveur quand il est arrêté, tapez:

sudo systemctl start mongodb

Vous pouvez également redémarrer le serveur avec une seule commande:

sudo systemctl restart mongodb

Par défaut, MongoDB est configuré pour démarrer automatiquement avec le serveur. Si vous souhaitez désactiver le démarrage automatique, tapez:

sudo systemctl disable mongodb

Il est tout aussi facile de l'activer à nouveau. Pour ce faire, utilisez:

sudo systemctl enable mongodb

Ensuite, ajustons les paramètres du pare-feu pour notre installation MongoDB.

[[step-4 -—- Adjusting-the-firewall-optional]] == Étape 4 - Ajustement du pare-feu (facultatif)

En supposant que vous ayez suivi les instructions deinitial server setup tutorial pour activer le pare-feu sur votre serveur, le serveur MongoDB sera inaccessible depuis Internet.

Si vous envisagez d'utiliser le serveur MongoDB uniquement localement avec des applications s'exécutant sur le même serveur, il s'agit du paramètre recommandé et sécurisé. Cependant, si vous souhaitez pouvoir vous connecter à votre serveur MongoDB depuis Internet, vous devez autoriser les connexions entrantes dansufw.

Pour autoriser l'accès à MongoDB sur son port par défaut27017 de partout, vous pouvez utilisersudo ufw allow 27017. Toutefois, l'activation de l'accès Internet au serveur MongoDB sur une installation par défaut permet à quiconque d'accéder sans restriction au serveur de base de données et à ses données.

Dans la plupart des cas, vous ne devez accéder à MongoDB qu'à partir de certains emplacements approuvés, tels qu'un autre serveur hébergeant une application. Pour accomplir cette tâche, vous pouvez autoriser l’accès sur le port par défaut de MongoDB tout en spécifiant l’adresse IP d’un autre serveur explicitement autorisé à se connecter:

sudo ufw allow from your_other_server_ip/32 to any port 27017

Vous pouvez vérifier la modification des paramètres du pare-feu avecufw:

sudo ufw status

Vous devriez voir le trafic vers le port27017 autorisé dans la sortie:

Sortie

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

Si vous avez décidé d'autoriser uniquement une certaine adresse IP à se connecter au serveur MongoDB, l'adresse IP de l'emplacement autorisé sera répertoriée à la place deAnywhere dans la sortie.

Vous pouvez trouver des paramètres de pare-feu plus avancés pour restreindre l'accès aux services dansUFW Essentials: Common Firewall Rules and Commands.

Même si le port est ouvert, MongoDB n'écoute actuellement que sur l'adresse locale127.0.0.1. Pour autoriser les connexions à distance, ajoutez l’adresse IP routable publiquement de votre serveur au fichiermongod.conf.

Ouvrez le fichier de configuration MongoDB dans votre éditeur:

sudo nano /etc/mongodb.conf

Ajoutez l'adresse IP de votre serveur à la valeurbindIP:

...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Assurez-vous de placer une virgule entre l'adresse IP existante et celle que vous avez ajoutée.

Enregistrez le fichier, quittez l'éditeur et redémarrez MongoDB:

sudo systemctl restart mongodb

MongoDB écoute maintenant les connexions à distance, mais tout le monde peut y accéder. Suivez la partie 2 deHow to Install and Secure MongoDB on Ubuntu 16.04 pour ajouter un utilisateur administratif et verrouiller davantage les choses.

Conclusion

Vous pouvez trouver des didacticiels plus détaillés sur la configuration et l'utilisation de MongoDB dansthese DigitalOcean community articles. LeMongoDB documentation officiel est également une excellente ressource sur les possibilités offertes par MongoDB.