Pour suivre, vous aurez besoin de trois nœuds de calcul. Vous pouvez lancer des nœuds de calcul à la demande sur E2E Public Cloud. Cliquez ici pour en savoir plus .
Dans le cadre de ce cluster MongoDB à 3 nœuds, un nœud sera principal et les deux autres seront des nœuds secondaires.
L'avantage de cette configuration est qu'elle vous aide à surmonter un point de défaillance unique. Lorsque le nœud principal tombe en panne, les nœuds secondaires agissent en tant que nœuds principaux ; garantissant ainsi une haute disponibilité.
Suivez les étapes ci-dessous pour configurer un cluster MongoDB à 3 nœuds :
Mettre à jour et mettre à niveau les 3 nœuds (ubuntu 16.04) :
$ sudo apt-get update $ sudo apt-get upgrade
Installation de MongoDB :
$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 $echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list $sudo apt-get update $sudo apt-get install -y mongodb-org=4.0.10 mongodb-org-server=4.0.10 mongodb-org-shell=4.0.10 mongodb-org-mongos=4.0.10 mongodb-org-tools=4.0.10
Configurez le nom d'hôte et l'entrée d'hôte sur les 3 nœuds :
$ sudo vim /etc/hosts ````````` 172.16.1.x test-mongo-1 172.16.2.x test-mongo-2 172.16.3.x test-mongo-3 ```````` $hostname test-mongo1 $ sudo vim /etc/hostname `````` test-mongo-1 ```````
Définissez le nom d'hôte correspondant sur les 3 nœuds
Si le serveur provient d'E2E Cloud, supprimez 05-hostname 02-ssh_public_key du répertoire /etc/one-context.d/
Générez un fichier clé et copiez-le sur les 2 autres nœuds :
$ sudo cd /etc/ $ sudo mkdir mongo $ cd $ sudo openssl rand -base64 756 > /etc/mongo/mongo-keyfile $ sudo cd /etc/mongo/ $ sudo chmod 400 mongo-keyfile $ sudo chown mongodb:mongodb /etc/mongo -R $ cd $ sudo rsync -avrP /etc/mongo [email protected]:/etc/ $ sudo rsync -avrP /etc/mongo [email protected]:/etc/
Ajouter une section de réplication sur mongodb.conf sur les 3 nœuds :
replication: replSetName: mongo-cluster enableMajorityReadConcern: true
Démarrez et vérifiez l'état de mongodb sur les 3 nœuds :
$ sudo service mongod start $ sudo service mongod status
Assurez-vous que mongodb démarre sur les 3 nœuds.
Remplacez l'adresse de liaison MongoDB par l'adresse IP privée du serveur sur les 3 nœuds :
$ sudo vim /etc/mongod.conf # network interfaces net: port: 27017 bindIp: 172.16.1.x $ sudo service mongod restart
Connectez-vous à Mongodb sur l'un des nœuds :
$ mongo -host 172.16.1.x $ config = { _id : "mongo-cluster", members : [ {_id : 0, host : "test-mongo-1:27017"}, {_id : 1, host : "test-mongo-2:27017"}, {_id : 2, host : "test-mongo-3:27017"}, ] } $ rs.initiate(config)
Remarque :Après un certain temps, cette machine (d'où la commande exécutée deviendra la principale - vous pouvez vous déconnecter de MongoDB et vous connecter pour vérifier la même chose)
Créez maintenant la base de données admin &maindatabase et l'utilisateur pour accéder à la base de données :
$ use admin $ db.createUser({ user: "admin", pwd: "E580nOOUE6cDhQ", roles: [{ role: "root", db: "admin" }] }) $ stagedatabase $ db.createUser({ user: "stage", pwd: "4n1PdUKkyoU9wcTNW", roles: [{ role: "dbOwner", db: "maindatabase" }] })
Ajouter une section de sécurité sur mongod.conf sur les 3 nœuds :
security: keyFile: /etc/mongo/mongo-keyfile clusterAuthMode: keyFile authorization: enabled
Redémarrez et vérifiez l'état de mongodb sur les 3 nœuds :
$ sudo service mongod restart $ sudo service mongod status
Connectez-vous à Mongodb avec les identifiants :
$ mongo -host 172.16.1.x admin -u admin -p'E580nOOUE6cDhQ'
Connectez-vous à Mongodb avec l'autre utilisateur stagedatabase :
mongo 172.16.1.x:27017/maindatabase -u stage -p 4n1PdUKkyoU9wcTNW
La configuration est maintenant terminée.