Comment installer MongoDB sur Debian 9

introduction

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

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

Conditions préalables

Pour suivre ce didacticiel, vous aurez besoin d’un serveur Debian 9 configuré en suivant ce didacticiel initial, y compris un utilisateur non root sudo-activé et un pare-feu.

Étape 1 - Installation de MongoDB

Les référentiels de paquets officiels de Debian 9 incluent une version légèrement obsolète de MongoDB, ce qui signifie que nous installerons à partir du référentiel officiel MongoDB.

Premièrement, nous devons ajouter la clé de signature MongoDB avec + apt-key add +. Nous devrons nous assurer que la commande + curl + est installée avant de le faire:

sudo apt install curl

Ensuite, nous téléchargeons la clé et la passons à + ​​apt-key add:

curl https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -

Nous allons ensuite créer une liste de sources pour le dépôt MongoDB, donc + apt + sait où télécharger. Commencez par ouvrir le fichier de liste source dans un éditeur de texte:

sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list

Cela ouvrira un nouveau fichier vierge. Coller dans ce qui suit:

/etc/apt/sources.list.d/mongodb-org-4.0.list

deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main

Enregistrez et fermez le fichier, puis mettez à jour le cache de votre paquet:

sudo apt update

Installez le paquetage + mongodb-org + pour installer le serveur et quelques outils de support:

sudo apt-get install mongodb-org

Enfin, activez et démarrez le service + mongod + pour que votre base de données MongoDB s’exécute:

sudo systemctl enable mongod
sudo systemctl start mongod

Nous avons maintenant installé et démarré la dernière version stable de MongoDB, ainsi que des outils de gestion utiles pour le serveur MongoDB.

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

Étape 2 - Vérification du service et de la base de données

Nous avons démarré le service MongoDB à l’étape précédente. Voyons maintenant s’il est démarré et que la base de données fonctionne.

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

sudo systemctl status mongod

Vous verrez cette sortie:

Output●  - MongoDB Database Server
  Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
  Active:  since Wed 2018-09-05 16:59:56 UTC; 3s ago
    Docs: https://docs.mongodb.org/manual
Main PID: 4321 (mongod)
   Tasks: 26
  CGroup: /system.slice/mongod.service
          └─4321 /usr/bin/mongod --config /etc/mongod.conf

Selon + systemd +, 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 v4.0.2
connecting to:
MongoDB server version: 4.0.2
{
   "authInfo" : {
       "authenticatedUsers" : [ ],
       "authenticatedUserRoles" : [ ]
   },

}

Une valeur de «+ 1 » pour le champ « ok +» de la réponse indique que le serveur fonctionne correctement.

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

É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 commandes standard + systemd + aux côtés de tous les autres services système d’Ubuntu.

Pour vérifier le statut du service, tapez:

sudo systemctl status mongod

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

sudo systemctl stop mongod

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

sudo systemctl start mongod

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

sudo systemctl restart mongod

Dans l’étape précédente, nous avons activé MongoDB pour démarrer automatiquement avec le serveur. Si vous souhaitez désactiver le démarrage automatique, tapez:

sudo systemctl disable mongod

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

sudo systemctl enable mongod

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

Étape 4 - Réglage du pare-feu (facultatif)

En supposant que vous ayez suivi les instructions https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-9 réinitialisation du serveur initial] pour activer le pare-feu sur votre serveur, le serveur MongoDB sera inaccessible à partir d’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é. Toutefois, si vous souhaitez pouvoir vous connecter à votre serveur MongoDB à partir d’Internet, vous devez autoriser les connexions entrantes dans + ufw +.

Pour autoriser l’accès à MongoDB sur son port par défaut + 27017 + de partout, vous pouvez utiliser + sudo ufw allow +. 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 au 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 /32 to any port

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

sudo ufw status

Vous devriez voir le trafic sur le port + 27017 + autorisé dans la sortie:

Sortie

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

Si vous avez décidé de ne permettre qu’une certaine adresse IP de se connecter au serveur MongoDB, l’adresse IP de l’emplacement autorisé sera listée à la place de + Anywhere + dans la sortie.

Vous pouvez trouver des paramètres de pare-feu plus avancés pour limiter l’accès aux services dans FW Essentials: Règles et commandes de pare-feu communes .

Même si le port est ouvert, MongoDB n’écoute actuellement que l’adresse locale + 127.0.0.1 +. Pour autoriser les connexions à distance, ajoutez l’adresse IP de votre serveur routable publiquement au fichier + mongod.conf +.

Ouvrez le fichier de configuration MongoDB dans votre éditeur:

sudo nano /etc/mongod.conf

Ajoutez l’adresse IP de votre serveur à la valeur + bindIP +:

/etc/mongod.conf

. . .
# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1
. . .

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 mongod

MongoDB écoute maintenant les connexions à distance, mais tout le monde peut y accéder. Suivez la partie 2 de Comment installer et installer Sécurisez MongoDB sur Ubuntu 16.04 pour ajouter un utilisateur administrateur et verrouiller davantage.

Conclusion

Vous trouverez des didacticiels plus détaillés sur la configuration et l’utilisation de MongoDB à l’adresse these Articles de la communauté DigitalOcean. La documentation officielle MongoDB est également une excellente ressource sur les possibilités offertes par MongoDB.