Qu'est-ce que Terraform ?
Terraform est un outil libre et open source de gestion d'infrastructure. Il a été créé par la société HashiCorp, et s'impose aujourd'hui comme l'un des outils les plus utilisés pour déployer et gérer des infrastructures Cloud.
Logiciel open source d'Infra-as-Code
Terraform permet de configurer des ressources Cloud de façon déclarative, en décrivant l'architecture cible dans un fichier de configuration. Terraform a la particularité d'être "statefull", cela signifie qu'il est en mesure de conserver en mémoire l'état de l'infrastructure déployée. Ainsi en cas d'une modification unique dans la description de l'infrastructure cible, seule cette modification sera appliquée, l'ensemble des serveurs ne sera pas re-déployé si ce n'est pas requis.
Enfin, Terraform est supporté par une large communauté d'utilisateurs et contributeurs, ainsi que par de nombreux fournisseurs de services, appelés "Providers" qui développent et mettent à disposition des briques permettant d'utiliser Terraform pour déployer des ressources.
Pourquoi utiliser l'Infra-as-Code pour gérer vos serveurs ?
Depuis plusieurs années, l'Infra-as-Code (IaC) devient la norme pour la gestion des infrastructures informatiques s'appuyant sur des fournisseurs de Cloud publics.
- L'Infra-as-Code permet de faciliter le déploiement d'infrastructures complexes en s'appuyant sur des fichiers descriptifs, qui pourront être intégrés dans des outils de suivi de version (Gitlab, Github).
- L'Infra-as-Code facilite également l'automatisation du déploiement et des évolutions régulières, il devient facile de tester en amont les évolutions, et de garantir le bon fonctionnement des évolutions d'architecture.
- L'Infra-as-Code concerne aussi bien le déploiement de serveurs virtuels (VPS), de serveurs baremetal (serveurs dédiés), que celui de stockage et de services réseau.
- Il existe un grand écosystème d'outils pour l'Infra-as-Code, les plus populaires étant : Terraform, Ansible, Packer, Chef, Puppet.
Cinq avantages de Terraform pour déployer votre infrastructure
Gestion "Statefull"
L'un des principaux avantages de Terraform est le fait qu'il soit "statefull", donc qu'il garde en mémoire l'état de l'infrastructure pilotée. En cas d'évolution, qu'elle soit mineure ou majeure, il rejoue seulement la partie à mettre à jour et ne modifie pas l'ensemble des ressources et services dont la configuration n' a pas changé.
Prédictibilité
Cela permet également de simuler le lancement du script en avance (avec la commande 'terraform plan'), et prévoir ainsi les impacts de ces changements sur son infrastructure.
Providers prêts à l'emploi
L'autre point fort de Terraform réside dans l'immense communauté d'utilisateurs, et de "Provider Terraform" qui fournissent une brique permettant de piloter leurs services via Terraform.
Multi Cloud
Dans un contexte où le multi-cloud, l'utilisation de plusieurs fournisseurs cloud public pour répartir et redonder son infrastructure, se démocratise, il est important de pouvoir uniformiser la manière de gérer ses ressources cloud.
Un standard du marché
Chez Gandi, l'API publique Openstack est fournie avec les serveurs VPS, un provider Openstack étant disponible pour Terraform, vous pouvez nativement déployer vos serveurs VPS Gandi avec Terraform.
Créer un serveur VPS avec Terraform
Souscription
Souscrivez à l'offre GandiCloud VPS
Créer des ressources
Une fois que votre compte GandiCloud est activé, vous allez pouvoir créer des ressources. Terraform utilise l'API publique Openstack et requiert que vous ayez configuré votre accès CLI/API publique Openstack. Vous pouvez suivre ce tutoriel pour le faire.
Créer un server
Enfin, il ne vous reste qu'à créer votre premier serveur en suivant ce guide.