Terraform

Approvisionnez et gérez l'infrastructure en tant que code de manière sécurisée et efficace avec Terraform.

Automatisez votre pipeline de déploiement

Un pipeline CI/CD est souvent déclenché par un changement de code (comme un hook post-commit dans Git) et peut aider à appliquer les changements en proposant des étapes de test, d’approbation et de déploiement. Intégrez Terraform dans un pipeline de déploiement plus global où d’autres outils complémentaires tels que Chef, Puppet ou Ansible configureront ensuite vos applications.

Cohérence entre les environnements

Vous pouvez réutiliser les mêmes templates avec des variables légèrement différentes. Le code peut décrire clairement et automatiquement l’état souhaité de votre infrastructure. Par conséquent, les nouveaux ingénieurs ont une meilleure compréhension de l’écosystème sur lequel ils vont travailler et il leur est plus facile de collaborer aux projets.

Suivez chaque changement

Les équipes de développement et d’exploitation utilisent le même référentiel source. Par conséquent, les deux équipes peuvent effectuer des modifications et les vérifier. Cela réduit le risque de malentendu entre les équipes car elles partagent toutes le même contexte et voient les mêmes fichiers.

Automatisez le déploiement de votre infrastructure avec Terraform

Gérez efficacement votre infrastructure

Authentification

L’authentification Scaleway est basée sur une clé d’accès et une clé secrète. Pour créer de nouvelles paires de clés, accédez à la section « API Tokens » sous l’onglet « Credentials » dans votre console Scaleway. Vous pouvez fournir vos informations d’identification de trois façons : informations d’identification statiques, variables d’environnement et fichier de configuration partagé.

Console

Plans d'exécution

Terraform a une phase de « planification », où un plan d’exécution est généré. Ce plan d’exécution vous permet de savoir en amont ce que Terraform fera lorsque vous appellerez la commande « apply ». Cette étape permet d’éviter toute surprise lorsque Terraform manipule l’infrastructure.

Open source

Comme Terraform est un projet open source, le plugin de Scaleway Terraform Provider est également open source. Celui-ci est hébergé sur Github et maintenu par nos DevOps et la communauté. Ce plugin est écrit dans Go, n’hésitez pas à y contribuer ou à demander le développement d’une nouvelle fonctionnalité.

Graphique des ressources

Terraform crée un graphique de toutes vos ressources et met en parallèle la création et la modification de toutes les ressources non dépendantes. Par conséquent, Terraform construit l’infrastructure de manière efficace afin que vous ayez une vision précise des dépendances de votre infrastructure.

Automatisation des modifications

Des changesets complexes peuvent être appliqués à votre infrastructure avec un minimum d’interaction humaine. Avec le plan d’exécution et le graphique des ressources décrits ci-dessus, vous savez exactement ce que Terraform va changer et dans quel ordre, limitant ainsi les erreurs humaines.

Compatibilité avec les standards du marché

Vos états Terraform (tfstates) peuvent être stockés sur les buckets Object Storage de Scaleway. Pour ce faire, configurez un backend en tant que backend S3. À noter toutefois qu’aucun mécanisme de verrouillage n’est encore pris en charge lors du stockage de votre fichier tfstate sur un bucket compatible avec AWS S3. Si vous avez besoin d’un mécanisme de verrouillage, nous vous invitons à utiliser nos offres Managed Databases.

Gestion des versions de l'infrastructure

Votre infrastructure est désormais explicitement définie comme fichier de configuration et, comme tout autre fichier de code, il vous est possible de versionner votre référentiel Terraform. Ajouter une stratégie de gestion des versions de votre infrastructure vous simplifiera la vie et vous fera gagner un temps précieux. En effet, chaque partie prenante sera en mesure de valider et de réviser votre code.

Syntaxe

HashiCorp Configuration Language (HCL) est un langage de configuration développé par HashiCorp. L’objectif de HCL est de fournir un langage de configuration structuré, simple et intuitif, qui convienne autant à l'humain qu'à la machine. Il peut être utilisé avec des outils de ligne de commande, mais cible en particulier les outils DevOps, les serveurs, etc.