For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/databases/public-cloud-databases-order-terraform.md.

Public Cloud Databases - Premiers pas avec Terraform

Voir en Markdown

Découvrez comment commander et gérer votre service de base de données managée Public Cloud avec Terraform

Objectif

Les bases de données managées Public Cloud vous permettent de vous concentrer sur la création et le déploiement de vos applications cloud, pendant qu'OVHcloud prend en charge l'infrastructure de base de données et sa maintenance.

Ce guide explique comment commander une instance MongoDB d'un service de base de données managée Public Cloud avec Terraform.

Prérequis

En pratique

Étape 1 : Rassemblez les paramètres requis par OVHcloud

Récupérer les informations de vos tokens de cluster/API

Le « fournisseur OVH » doit être configuré avec un ensemble d'identifiants :

  • une application_key
  • un application_secret
  • une consumer_key

Pourquoi ?

Parce que, en coulisses, le « fournisseur Terraform OVH » effectue des requêtes vers les API OVHcloud.

Afin de récupérer ces informations nécessaires, veuillez suivre notre tutoriel Premiers pas avec les API OVHcloud.

Plus précisément, vous devez générer ces identifiants via la avec les droits suivants :

Droits API OVHcloud

Une fois vos tokens OVHcloud générés avec succès, veuillez les enregistrer car vous devrez les utiliser très prochainement.

La dernière information nécessaire est le service_name : il s'agit de l'ID de votre projet Public Cloud.

Comment l'obtenir ?

Dans la section Public Cloud, vous pouvez récupérer l'ID de votre nom de service grâce au bouton Copier dans le presse-papiers.

Copier-coller le nom du service

Vous utiliserez également cette information dans les fichiers de définition des ressources Terraform.

Étape 2 : Rassemblez l'ensemble des paramètres requis

Afin de créer un nouveau cluster MongoDB, vous devrez spécifier au minimum :

  • la version (par exemple « 5.0 »)
  • la région (par exemple « DE »)
  • le plan (par exemple « business »)
  • le flavor du cluster (par exemple « db1-7 »)

Étape 3 : Créez les fichiers Terraform

Créez d'abord un fichier main.tf définissant les ressources qui seront créées

terraform {
  required_providers {
    ovh = {
      source  = "ovh/ovh"
      version = "0.22"
    }
  }

  required_version = ">= 0.17.1"
}

provider "ovh" {
  endpoint           = var.ovh.endpoint
  application_key    = var.ovh.application_key
  application_secret = var.ovh.application_secret
  consumer_key       = var.ovh.consumer_key
}

resource "ovh_cloud_project_database" "service" {
  service_name = var.product.project_id
  description  = var.product.name
  engine       = "mongodb"
  version      = var.product.version
  plan         = var.product.plan
  nodes {
    region = var.product.region
  }
  flavor = var.product.flavor
}

resource "ovh_cloud_project_database_mongodb_user" "dbuser" {
  service_name = ovh_cloud_project_database.service.service_name
  cluster_id   = ovh_cloud_project_database.service.id
  name         = var.access.name
}

resource "ovh_cloud_project_database_ip_restriction" "iprestriction" {
  service_name = ovh_cloud_project_database.service.service_name
  engine       = ovh_cloud_project_database.service.engine
  cluster_id   = ovh_cloud_project_database.service.id
  ip           = var.access.ip
}

Créez ensuite un fichier variables.tf définissant les variables utilisées dans main.tf :

variable "ovh" {
  type = map(string)
  default = {
    endpoint           = "ovh-eu"
    application_key    = ""
    application_secret = ""
    consumer_key       = ""
  }
}

variable "product" {
  type = map(string)
  default = {
    name       = "mongodb-terraform"
    project_id = ""
    region     = "DE"
    plan       = "business"
    flavor     = "db1-7"
    version    = "5.0"
  }
}

variable "access" {
  type = map(string)
  default = {
    name = "johndoe"
    ip = "xx.xx.xx.xx/32"
  }
}

Ici, nous avons défini l'endpoint ovh-eu car nous souhaitons appeler l'API OVHcloud Europe. D'autres endpoints existent, selon vos besoins :

  • ovh-eu pour l'API OVHcloud Europe
  • ovh-ca pour l'API OVHcloud Amérique du Nord

Créez ensuite un fichier secrets.tfvars contenant les valeurs des variables requises :

ovh = {
  endpoint           = "ovh-eu"
  application_key    = "<application_key>"
  application_secret = "<application_secret>"
  consumer_key       = "<consumer_key>"
}

product = {
  project_id = "`<service_name>`"
  name       = "mongodb-terraform"
  region     = "DE"
  plan       = "business"
  flavor     = "db1-7"
  version    = "5.0"
}

access = {
  name = "johndoe"
  ip = "<ip_range>"
}
Info

N'oubliez pas de remplacer <service_name>, <application_key>, <application_secret>, <consumer_key>, <ip_range> par les données réelles.

Enfin, créez un fichier outputs.tf définissant les ressources qui seront exportées :

output "cluster_uri" {
  value = ovh_cloud_project_database.service.endpoints.0.uri
}

output "user_name" {
  value = ovh_cloud_project_database_mongodb_user.dbuser.name
}

output "user_password" {
  value     = ovh_cloud_project_database_mongodb_user.dbuser.password
  sensitive = true
}

Étape 4 : Exécutez

Nous devons maintenant initialiser Terraform, générer un plan, puis l'appliquer.

$ terraform init

La commande init initialisera votre répertoire de travail qui contient les fichiers de configuration .tf.

C'est la première commande à exécuter pour une nouvelle configuration, ou après avoir effectué un checkout d'une configuration existante dans un dépôt git donné, par exemple.

La commande init va :

  • Télécharger et installer les fournisseurs/plugins Terraform
  • Initialiser le backend (s'il est défini)
  • Télécharger et installer les modules (s'ils sont définis)

Nous pouvons maintenant générer notre plan :

$ terraform plan -var-file=secrets.tfvars

Grâce à la commande plan, nous pouvons vérifier ce que Terraform va créer, modifier ou supprimer.

Le plan nous convient, appliquons-le donc avec apply :

$ terraform apply -var-file=secrets.tfvars -auto-approve

Enfin, exportez les identifiants de l'utilisateur et l'URI

export PASSWORD=$(terraform output -raw user_password)
export USER=$(terraform output -raw user_name)
export URI=$(terraform output -raw cluster_uri)

Et voilà, le cluster MongoDB est créé.

Comment déployer avec d'autres moteurs

Dans ce guide, nous avons expliqué comment déployer un service MongoDB, mais vous pouvez trouver des exemples pour d'autres moteurs de base de données ici et les adapter selon vos besoins :

Aller plus loin

Fonctionnalités de MongoDB

Gérer un service MongoDB depuis l'espace client OVHcloud

Configurer vRack pour Public Cloud

Visitez 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.

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.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?