Stockage de fichiers tfstate de Terraform dans un espace S3

Bonjour à tous,

Je suis en train d'automatiser le déploiement d'une infrastructure sur le cloud public d'OVH via Terraform. Suivant les bonnes pratiques de Terraform, je souhaite stocker son fichier d'état (fichier « tfstate ») dans un espace S3 plutôt que sur le disque local.

J'ai donc créé un conteneur de type « S3 High Performance » (pour une meilleure compatibilité avec l'API S3), que j'ai nommé `tfstate`.

Dans le script Terraform, j'ai placé les lignes ci-dessous :
```hcl
backend "s3" {
endpoint = "s3.sbg.perf.cloud.ovh.net"
bucket = "tfstate"
key = "project/dev/key"
region = "SBG"
}
```

Mais la commande `terraform init` me renvoie le message d'erreur suivant :
```
Initializing the backend…
│ Error: Invalid AWS Region: SBG
```

J'ai essayé des variantes, telle que :
```hcl
backend "s3" {
bucket = "tfstate.s3.sbg.perf.cloud.ovh.net"
key = "project/dev/key"
region = "SBG"
}
```

Mais rien n'y fait, le script me répond toujours que `SBG` n'est pas une région valide d'Amazon.

Du coup, je me pose la question : est-il possible d'utiliser le backend S3 de Terraform avec un conteneur qui fourni par OVH ? Le cas échéant, une bonne âme pourrait-elle m'expliquer comment faire, car je n'ai trouvé la solution ni dans la documentation de Terraform, ni sur le net ?

Je vous remercie par avance pour votre attention et vos suggestions,

Sébastien

Bon, il semblerait que le backend « s3 » ne fonctionne qu'avec Amazon. Mais avec OVH, d'après la documentation, il est possible d'utiliser un backend « swift ». J'ai déjà procédé à quelques essais sans succès, je continue à creuser…

Bonjour,

pour stocker les terraform state dans un OVHcloud Object Storage container, c'est possible en passant effectivement par un remote backend Swift.

Voici un tutoriel l'expliquant :
https://docs.ovh.com/gb/en/public-cloud/use_object_storage_terraform_backend_state/

Bonjour Aurélie,

En effet, j'ai entre temps réussi à utiliser le backend Swift, mais, ayant oublié mon message resté sans réponse, je n'ai pas indiqué la solution ici.

Merci tout de même pour le lien. Je pense qu'il sera utile à d'autres personnes.

Sébastien

Pour information le backend "swift" est deprecié depuis terraform 1.2.3.
Vous pouvez utiliser le backend S3 : https://docs.ovh.com/gb/en/public-cloud/use_high_perf_object_storage_terraform_backend_state/

Bonjour Aurélie,
Merci pour l'information. Je vais ajusté mes scripts.
Sébastien