Conditions préalables
- Un serveur Vultr fonctionnant sous Arch Linux à jour (voir cet article )
- Accès Sudo:
- Les commandes devant être exécutées en tant que root sont préfixées par
#, et celles qui peuvent être exécutées en tant qu'utilisateur normal par $. La façon recommandée d'exécuter des commandes en tant que root est, en tant qu'utilisateur normal, de préfixer chacune d'elles avec sudo.
Installer la base de données MongoDB 4.0
MongoDB est dans l'AUR (Arch User Repository). Il existe 2 ensembles de packages que vous pouvez utiliser. Voir Construction de packages sur Arch Linux (y compris l'AUR) pour compiler et installer l'un ou l'autre ensemble de packages:
- Compilez à partir de la source. Utilisez des packages AUR
mongodbet éventuellement mongodb-tools'. Notez que cela prend environ 180 Go, et c'est une longue compilation. Avec 4 cœurs, cela prend environ 7 heures. C'est la méthode recommandée, car elle utilise les drapeaux de compilation d'Arch.
- Utilisez le binaire précompilé de MongoDB. Utilisez le package AUR
mongodb-binet éventuellement mongodb-tools-bin. Cela saute toute la phase de compilation, téléchargeant un binaire pré-construit à partir de mongodb.org et l'empaquetant avec les fichiers de configuration nécessaires.
Après avoir installé le package, démarrez MongoDB et faites-le démarrer après chaque démarrage. Lors de ce premier démarrage, il pré-allouera des fichiers pour son journal et d'autres données, ce qui peut prendre un certain temps avant que la base de données ne soit disponible:
# systemctl enable --now mongodb
Tester la connexion
Connectez-vous à MongoDB:
$ mongo
Quitter:
> exit
Considérations relatives au pare-feu
Bien que la configuration d'un pare-feu soit toujours une bonne idée, par défaut, MongoDB écoute uniquement sur le port 27017sur localhost, il ne recevra donc aucun trafic externe.
Exiger une authentification
Par défaut, MongoDB permet à quiconque de s'y connecter sans aucun type d'authentification, ce qui est évidemment un risque pour la sécurité.
Créez un utilisateur de base de données racine:
$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit
Modifiez /etc/mongodb.conf, et si vous utilisez un package, mongodbajoutez:
security:
authorization: "enabled"
Si vous utilisez un package, mongodb-binajoutez:
auth = true
Redémarrez MongoDB:
# systemctl restart mongodb
Maintenant, bien que vous puissiez toujours vous connecter à MongoDB sans authentification, il ne fera rien sans lui:
$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :
Connectez-vous à MongoDB en tant que root:
$ mongodb -u root
Vous pouvez également vous connecter à MongoDB, puis vous authentifier en son sein:
$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")
Important: mises à niveau
Parce que MongoDB fait maintenant partie de l'AUR, pacmanne le compilera pas et ne le mettra pas automatiquement à jour vers de nouvelles versions, lorsque vous mettrez à niveau votre système Arch entier. Vous devrez recompiler manuellement une nouvelle version et installer le nouveau package. Avant de le faire, il est important de consulter les notes de publication de MongoDB, pour voir s'il y a des étapes supplémentaires que vous devez prendre. C'est également une bonne idée de sauvegarder votre base de données avant la mise à niveau.
Arrêt impur
Si MongoDB ne s'arrête pas proprement et ne récupère pas automatiquement en utilisant son journal au prochain démarrage, vous devrez peut-être exécuter ce qui suit:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
Selon la taille de votre base de données et des index utilisés, ce processus peut aller de quelques secondes à plusieurs heures.