ScalewayAller à la connexionAller au contenu principalAller au pied de page

ai-PULSE 2024 : Préinscrivez-vous ! Nov 7, Paris

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

Terraform-Schema-1040px-Dark.webp

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.

Foire aux questions

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 efficacement et en toute sécurité. Terraform peut gérer des fournisseurs de services cloud comme Scaleway, mais aussi 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émentiels qui peuvent être appliqués.

Qu'est-ce qu'un fournisseur 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 Kapsule), etc. Un fournisseur est fait pour comprendre les interactions API et 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 cloud à l’aide d’un outil unique pour déployer, effectuer des modifications et gérer les versions.

Que se passe-t-il si je modifie une infrastructure, gérée par Terraform, hors 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 Object Storage de Scaleway en utilisant le backend S3.

Comment puis-je parler avec l'équipe en charge de Terraform ?

N’hésitez pas à rejoindre la communauté Slack de Scaleway. Nous sommes disponibles sur le channel #terraform.