Déployer un service avec Terraform pour Public Cloud Databases pour MongoDB
Découvrez comment configurer un service MongoDB managé OVHcloud via Terraform au sein d'un vRack, ainsi que comment y accéder depuis d'autres parties de votre infrastructure.
Objectif
Le vRack proposé par OVHcloud est une solution de réseau privé qui permet à nos clients de router leur trafic entre leurs services OVHcloud, par exemple des instances, des serveurs dédiés physiques ou, dans le cas présent, un service de base de données managée.
Ce tutoriel vous montre comment configurer un service MongoDB managé OVHcloud via Terraform au sein d'un vRack, ainsi que comment y accéder depuis d'autres parties de votre infrastructure.
Cependant, si vous souhaitez savoir comment faire de même avec Terraform, mais sur un réseau public, consultez notre guide « Bien démarrer avec Public Cloud Databases ».
Prérequis
- Prérequis OVHcloud
- Un projet Public Cloud dans votre compte OVHcloud
- Un réseau privé vRack accessible depuis votre projet Public Cloud (si vous n'en avez pas, veuillez consulter notre guide Configurer le vRack pour Public Cloud).
- Un compte utilisateur OpenStack dans votre projet Public Cloud (si vous n'en avez pas, veuillez consulter le guide suivant : Gestion des utilisateurs OpenStack).
- Prérequis Terraform
- Vous devez avoir téléchargé le fichier
openrc.shpour interagir avec la plateforme OpenStack. Si ce n'est pas déjà fait, veuillez consulter le guide suivant : Configurer les variables d'environnement OpenStack - Vous devez avoir créé un jeton pour l'API OVHcloud. Si ce n'est pas déjà fait, veuillez consulter le guide suivant : Premiers pas avec les API OVHcloud
- Vous devez avoir téléchargé le fichier
En pratique
Comment déployer la base de données MongoDB sur un réseau privé
Étape 1 - Déclaration des providers (Terraform, providers, authentification)
La première chose à faire est d'indiquer à Terraform les providers que vous allez utiliser :
- OVHcloud, pour les ressources de serveur de base de données ;
- OpenStack, pour les ressources réseau
Il s'agit des dernières versions. Si besoin, vous pouvez effectuer une mise à jour vers la dernière version disponible.
Ensuite, déclarez un premier bloc concernant les informations d'authentification avec le provider Terraform OVHcloud (il s'agit des jetons créés au préalable).
Ces informations sont stockées séparément, dans un fichier variables.tf de ce type :
Pour OpenStack, utilisez le fichier openrc.sh précédemment téléchargé.
Les variables Openstack sont lues (source openrc.sh), puis Terraform y accède directement lors de l'exécution.
Étape 2 - Créer une ressource réseau, le réseau privé
Au sein du vRack, Terraform va déployer un nouveau réseau privé. Ici, nous avons choisi de créer un sous-réseau (192.168.12.0/24) au sein de ce réseau privé pour un usage futur, dans lequel nous pouvons activer le DHCP sur une plage 192.168.12.100-192.168.12.200.
Cela signifie que si vous déployez des instances ultérieurement, dans le même sous-réseau, elles bénéficieront du DHCP et leur pool d'adresses sera déjà déclaré.
Étape 3 - Créer une ressource MongoDB
Vous pouvez maintenant définir le service pour la base de données managée MongoDB.
Les caractéristiques sélectionnées pour ce service seront les suivantes :
- taille (flavor) ;
- niveau de service (plan) ;
- version.
Vous devrez également l'attacher à un service_name, qui, dans ce cas, correspond à votre project_id.
Une différence importante entre un déploiement en réseau privé et un déploiement en réseau public est qu'à cette étape, vous devez indiquer à Terraform que chaque nœud fera partie du réseau privé en spécifiant les variables subnet_id et network_id comme suit :
Le service MongoDB devrait maintenant être créé et disponible au sein du réseau privé, mais il ne sera pas possible de s'y connecter directement. Pour des raisons de sécurité, vous devez achever le déploiement en réalisant une dernière étape.
Étape 4 - Configurer la restriction d'accès
Pour accéder au service MongoDB, vous devrez créer des autorisations de connexion pour des adresses IP.
Ajoutez donc la plage d'IP 192.168.12.0/24, que vous avez choisie et utilisée lors de la déclaration du réseau privé (étape de déclaration).
Ainsi, toutes les instances Public Cloud hébergées sur ce réseau pourront accéder directement au service MongoDB.
Bien entendu, vous pouvez être plus restrictif et fournir séparément plusieurs adresses IP en /32, afin de ne cibler que certaines sources autorisées.
Étape 5 - Gestion des utilisateurs
Pour accéder au service MongoDB, vous devez être un utilisateur authentifié.
Par défaut, le cluster sera livré avec l'utilisateur admin@admin, dont vous pouvez réinitialiser le mot de passe via l'espace client OVHcloud pour vous connecter directement.
Vous pouvez également ajouter un autre utilisateur via Terraform, avec des permissions complètes de lecture/écriture sur toutes les bases de données, comme suit :
Étape 6 - Informations utiles
À la fin du script Terraform, il est toujours utile de préparer quelques « outputs » qui fourniront des informations pertinentes à conserver à l'issue de la configuration.
Dans notre cas :
- l'URI de connexion MongoDB ;
- les identifiants de connexion de l'utilisateur créé par Terraform, y compris son mot de passe.
Étape 7 - Commande Terraform Plan
Test de connexion depuis une instance du même réseau privé
Vous pouvez également utiliser une Floating IP pour accéder à votre réseau privé depuis une adresse IP publique. Pour plus d'informations, consultez notre guide « Attacher une Floating IP à une instance Public Cloud ».
Prérequis : le CLI MongoDB, ou mongos, installé sur le serveur depuis lequel vous souhaitez initier la connexion.
Cela permet de se connecter facilement à l'aide des informations obtenues dans la sortie Terraform.
Remplacez username et password dans l'URI, puis utilisez la commande suivante :
Vous êtes maintenant connecté à votre base de données MongoDB managée depuis une machine de votre réseau privé, entièrement déployée avec Terraform.
Nous voulons vos retours !
Pour en savoir plus sur Managed Databases pour MongoDB, veuillez consulter notre page produit.
Consultez le dépôt Terraform pour trouver la documentation la plus récente concernant le provider OVHcloud.
Nous serions ravis de répondre à vos questions et apprécions tout retour que vous pourriez nous faire.
Rejoignez notre chaîne Discord dédiée : https://discord.gg/ovhcloud. Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe nos services de bases de données.
Rejoignez notre communauté d'utilisateurs.
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.