−50% sur tous les plans · à partir de 2,48 €/mois · Blog·Documentation·Contact

Terraform sur FranceVPS : démarrage

De zéro à un déploiement multi-régions avec le provider Terraform FranceVPS.

Si vous gérez plus de 3-4 serveurs, vous devriez utiliser de l'infrastructure as code. Les bénéfices se cumulent : déploiements reproductibles, infra versionnée, changements peer-reviewed, et la capacité de monter des environnements identiques pour staging ou test en minutes.

Installer Terraform

macOS : brew install terraform. Ubuntu/Debian :

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

Obtenir un token API

Dans le dashboard FranceVPS : Settings → API Tokens → Create new token. Donnez un nom descriptif et les scopes minimums requis. Copiez le token (affiché une fois). Stockez-le par variable d'environnement :

export FRANCEVPS_TOKEN="fra_..."

Votre première config Terraform

Créez main.tf :

terraform {
  required_providers {
    francevps = {
      source  = "francevps/francevps"
      version = "~> 1.0"
    }
  }
}

provider "francevps" {}

resource "francevps_ssh_key" "deploy" {
  name       = "deploy-key"
  public_key = file("~/.ssh/id_ed25519.pub")
}

resource "francevps_vps" "web" {
  name     = "web-01"
  plan     = "cloud-hp-2"
  image    = "ubuntu-24.04"
  region   = "fr-par-1"
  ssh_keys = [francevps_ssh_key.deploy.id]
  tags = {
    environment = "production"
    role        = "web"
  }
}

output "web_ip" {
  value = francevps_vps.web.ipv4_address
}

Initialiser et appliquer

terraform init
terraform plan
terraform apply

Terraform télécharge le provider, plan les changements, applique sur confirmation. ~60 secondes plus tard, vous avez un VPS tournant avec l'IP en sortie.

Au-delà d'un serveur unique

La vraie puissance émerge avec plusieurs ressources. Ajoutons un load balancer devant trois serveurs web :

resource "francevps_vps" "web" {
  count    = 3
  name     = "web-${count.index + 1}"
  plan     = "cloud-hp-2"
  image    = "ubuntu-24.04"
  region   = "fr-par-1"
  ssh_keys = [francevps_ssh_key.deploy.id]
}

resource "francevps_load_balancer" "main" {
  name      = "web-lb"
  region    = "fr-par-1"
  algorithm = "round_robin"

  forwarding_rule {
    entry_protocol  = "https"
    entry_port      = 443
    target_protocol = "http"
    target_port     = 8080
    certificate     = francevps_certificate.main.id
  }

  health_check {
    protocol = "http"
    port     = 8080
    path     = "/health"
    interval = 30
  }

  targets = francevps_vps.web[*].id
}

Déploiement multi-régions

Ajoutez un miroir Marseille :

resource "francevps_vps" "web_mrs" {
  count    = 2
  name     = "web-mrs-${count.index + 1}"
  plan     = "cloud-hp-2"
  image    = "ubuntu-24.04"
  region   = "fr-mrs-1"
  ssh_keys = [francevps_ssh_key.deploy.id]
}

Maintenant 5 VPS sur 2 régions. Combinez avec réplication DB cross-région et failover DNS, et vous avez du Tier 2 DR en code.

Modules pour la réutilisabilité

À mesure que votre infra grandit, copy-paste devient un handicap. Les modules vous laissent définir un pattern "tier web" une fois et l'instancier plusieurs fois.

Gestion d'état

Terraform suit l'état déployé dans un fichier d'état. Par défaut local, mais pour le travail d'équipe, stockez à distance via S3-compatible avec versioning activé.

Et après

L'objectif : "changements d'infrastructure" deviennent commits git, reviewed via pull request, appliqués par CI.


Articles liés

Essayez FranceVPS aujourd'hui

Garantie 14 jours. Pas de carte requise pour explorer. Infrastructure française souveraine.