Terraform

  • Authentification
    Clé d'accès et clé privée
  • Plans d'exécution
    Vue d'ensemble des manipulations
  • Graphique des ressources
    Aperçu des dépendances
  • Automatisation des modifications
    Gestion de changements complexes
  • Open source
    Hébergé sur Github
  • Standards
    Compatible S3
  • Gestion des versions de l'infrastructure
    Contribution, révision ou annulation
  • Syntaxe
    Langage de configuration HashiCorp
Pipeline de déploiement
Cohérence de l'environnement
Traçabilité des changements
Régions disponibles
  • Paris
  • Amsterdam
  • Infrastructure as Code
  • Automatisation des déploiements
  • Validé par HashiCorp
Outil gratuit

Ressources disponibles

  • Ressources du compte
  • Instances Virtuelles
  • Serveurs Bare Metal
  • Object Storage
  • Volumes Block Storage
  • Clusters Kubernetes
  • Load Balancers
  • Registres de Conteneurs

Automatisez le déploiement de votre infrastructure avec Terraform

Maîtrisez efficacement votre infrastructure avec le plugin Terraform Provider de Scaleway

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. Scaleway offre 3 façons de fournir des informations d’identification : Informations d’identification statiques, variables d’environnement et fichier de configuration partagé.

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.

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 aussi efficacement que possible afin que vous puissiez obtenir une vue globale sur les dépendances de votre infrastructure.

Automatisation des modifications

Des jeux de modifications complexes peuvent être appliqués à votre infrastructure avec un minimum d’interaction humaine. Avec le plan d’exécution et le graphique des ressources ci-dessus, vous savez exactement ce que Terraform va changer et dans quel ordre, en évitant de nombreuses erreurs humaines possibles.

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é. Pour en savoir plus sur la roadmap de ce projet, retrouvez là publiquement sur ce fil de discussion.

Compatibilité avec les standards du marché

Les états Terraform (tfstates) peuvent parfaitement ê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 AWS S3. Si vous avez besoin d’un mécanisme de verrouillage, nous vous invitons à utiliser nos offres base de données managées.

Gestion des versions de l'infrastructure

Votre infrastructure est désormais explicitement définie dans un fichier de configuration et, comme tout autre fichier de code, il vous est possible de versionner ce fichier 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. Un autre grand avantage du versionnement de l’infrastructure est la possibilité de revenir à une version précédente en cas d’erreur.

Syntaxe

HCL (HashiCorp Configuration Language) est un langage de configuration développé par HashiCorp. L’objectif de HCL est de fournir un langage de configuration structuré qui soit à la fois humain et machine. Lire un fichier de configuration HCL est simple et intuitif, c’est un langage dit “human readable”. Terraform va de son côté canner tous les fichiers se terminant par .tf dans le répertoire courant.

Découvrez les commandes de base Terraform

Gérez votre infrastructure sans quitter votre terminal

$

La puissance de Terraform dans un contexte d’Infrastructure as Code

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. Il faut aussi garder à l’esprit que Terraform est plus considéré comme un outil d’orchestration qu’un outil d’automatisation. Cela dit, il est tout à fait possible d’intégrer Terraform dans une pipeline de déploiement plus global où Terraform définira l’infrastructure et d’autres outils complémentaires tels que Chef, Puppet ou Ansible configureront ensuite les applications fonctionnant sur la nouvelle infrastructure mise à jour.

Cohérence entre les environnements

La définition de l’ensemble de votre infrastructure sous forme modules Terraform facilite la réutilisation des mêmes modèles en changeant seulement quelques variables. Ceci est par exemple idéal pour mettre en place un environnement DevOps approprié qui exige une cohérence dans les environnements de développement, de staging et de production.
En outre, en décrivant votre infrastructure avec du code, ce code peut automatiquement servir de description claire de l’état souhaité de votre infrastructure. Par conséquent, il est plus facile d’embarquer les nouveaux ingénieurs sur les projets qui ont une meilleure compréhension de l’écosystème sur lequel ils vont travailler.

Gardez une trace de tout changement

Lorsque le suivi des versions est appliqué, le référentiel qui contient le code devient une source unique de vérité.
Avoir ce point de contrôle unique sur l’infrastructure permet d’inspecter et de découvrir comment l’infrastructure est construite. Les équipes de développement et d’exploitation utilisent alors le même référentiel source. Par conséquent, les deux équipes peuvent les examiner et appliquer les modifications voulues. Cela réduit le risque d’incompréhension entre les équipes car elles partagent toutes le même contexte et voient les mêmes fichiers.

Renforcez vos connaissances sur l'Infrastructure as Code avec nos articles de blog

You avez un projet ? Appelez-nous :

Découvrez nos ressources de calcul disponibles avec Terraform

Questions fréquentes

Qu'est-ce que Terraform ?

Terraform est un outil open-source d’infrastructure en tant que code (IaC) créé par HashiCorp. Il a été conçu pour construire, modifier et gérer l’infrastructure en toute sécurité et efficacement. Terraform peut gérer des fournisseurs de services existants et populaires tels que Scaleway, mais aussi de nombreux autres comme AWS, AZURE, GCP, OpenStack ou encore des solutions internes personnalisées.

Comment fonctionne Terraform ?

Terraform génère un plan d’exécution décrivant exactement ce que l’outil fera pour atteindre l’état souhaité. Terraform exécutera ensuite ce plan pour construire l’infrastructure décrite. À mesure que la configuration change, Terraform est capable de déterminer ce qui a changé et de créer des plans d’exécution incrémentaux qui peuvent être appliqués.

Qu'est-ce qu'un fournisseur (provider) de terraform ?

Terraform est utilisé pour créer, gérer et mettre à jour des ressources d’infrastructure telles que des serveurs Bare Metal, des machines virtuelles (Development Instances, General Purposes Instances ou GPU Instances), des Load Balancers pour répartir votre trafic, des orchestrateur de conteneurs (Kubernetes Kapusle), etc. Un fournisseur est responsable de comprendre les interactions API et d’exposer les ressources.

Puis-je déployer des infrastructures multi-cloud avec Terraform ?

Oui, Terraform prend en charge la configuration multi-cloud. Cela vous permet de gérer les infrastructures et les ressources de plusieurs fournisseurs de cloud à l’aide d’un outil unique pour un déploiement, des modifications et des versions efficaces.

Que se passe-t-il si j'apporte des modifications à une infrastructure gérée par Terraform depuis l'extérieur de Terraform ?

Terraform est conçu pour gérer votre infrastructure. Si vous y apportez des modifications manuelles, elles seront remplacées la prochaine fois que vous appliquez la configuration Terraform. Pour éviter ce comportement, ajoutez le paramètre « ignore_changes » à la ressource dans le fichier de configuration.

Puis-je stocker mon fichier tfstate dans le cloud ?

Oui, vous pouvez stocker votre fichier d’état Terraform sur Scaleway Object Storage en utilisant le backend S3.

Cet outil est open source

Vous avez un projet ? Appelez-nous :

Nous utilisons des cookies afin de réaliser des statistiques et des mesures d’audience.
En savoir plus
Gérer vos préférences