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:
-
Un serveur Ubuntu 18.04 configuré en suivant ceinitial server setup tutorial, y compris un utilisateur sudo non root et un pare-feu.
[[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.