Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. L’infrastructure as Code avec Terraform
  3. HCP Terraform
Extrait - L’infrastructure as Code avec Terraform Déployez votre infrastructure sur le Cloud
Extraits du livre
L’infrastructure as Code avec Terraform Déployez votre infrastructure sur le Cloud Revenir à la page d'achat du livre

HCP Terraform

Le service cloud de HashiCorp

HCP Terraform (pour HashiCorp Cloud Platform) est un service cloud développé par HashiCorp qui permet de faciliter le travail en équipe.

Parmi les fonctionnalités importantes, HCP Terraform propose l’importation de code existant depuis des repositories Git, de gérer automatiquement le state sans avoir à configurer manuellement un backend et de partager des ensembles de variables entre plusieurs projets. HCP Terraform archive également l’ensemble des exécutions de plan et d’apply, ce qui permet de comprendre l’historique d’un projet et d’aider au debugging. Enfin HCP Terraform propose un registry privé permettant d’héberger des modules et des providers.

HCP Terraform est disponible à l’adresse https://app.terraform.io.

Ce chapitre n’a pas vocation à être exhaustif sur l’utilisation de HCP Terraform, mais est plutôt une introduction et une démonstration des différentes fonctionnalités disponibles, via deux cas d’usages simples : exécuter du code Terraform et utiliser le registre de modules privé.

La manière la plus simple de s’authentifier à HCP Terraform est d’utiliser un compte GitHub. Il est aussi possible de créer un compte classique en utilisant un identifiant et un mot de passe.

images/10EI01.png

Après avoir...

Exécuter du code Terraform

Pour commencer à exécuter du code Terraform sur HCP Terraform, la première étape consiste à créer un nouveau Workspace.

À la création d’un Workspace, trois modes, nommés workflows, sont disponibles :

images/10EI03.png

Le Version Control Workflow permet de connecter directement un repository de code git (GitHub, GitLab, Bitbucket ou Azure DevOps) au Workspace. Les modifications apportées au code seront alors automatiquement détectées. Ce mode de fonctionnement est bien adapté aux débutants, car il est entièrement automatisé. Il permet de déployer de l’infrastructure à partir de code existant, sans avoir à exécuter des commandes terraform avec le CLI.

À l’inverse, le CLI-Driven Workflow permet de contrôler directement avec le CLI terraform l’exécution des plan et apply, tout en bénéficiant de l’utilisation de la plateforme HCP Terraform, avec la gestion de variables et d’historique des exécutions. Ce mode de fonctionnement est adapté aux développeurs ayant l’habitude d’utiliser Terraform, qui souhaitent contrôler plus finement leur workflow.

L’API-Driven Workflow permet de gérer entièrement les workspaces via une API. C’est le mode de fonctionnement le plus flexible, mais il implique de développer ses propres scripts et outils. Ce workflow très compliqué à mettre en place n’est pas présenté dans ce chapitre.

La documentation de HCP Terraform présente ce workflow dans les détails à cette adresse : https://developer.hashicorp.com/terraform/cloud-docs/run/api

1. Version Control Workflow

a. Créer le workflow

Pour créer un workspace utilisant le Version Control Workflow, il faut d’abord autoriser HCP Terraform à accéder au code. HCP Terraform permet de se connecter à un compte GitHub, GitLab, Bitbucket ou Azure Devops. Une fois la connexion faite (en quelques clics pour GitHub), il est possible de sélectionner le repository à importer :

images/10EI04.png

Après avoir sélectionné le repository, un écran permet de modifier quelques options, puis de valider.

images/10EI05.png

Une fois le workspace créé, il est possible de configurer...

Le registry privé

HCP Terraform propose également à ses utilisateurs un registry privé qui peut héberger des modules et des providers.

Le déploiement des providers sur le registry de HCP Terraform doit passer par des appels d’API et s’avère assez complexe. Cette procédure n’est pas illustrée dans ce chapitre. Elle est documentée dans la documentation de HCP Terraform à cette adresse : https://developer.hashicorp.com/terraform/cloud-docs/registry/publish-providers.

1. Publier un module

La publication d’un module dans HCP Terraform se fait en quelques clics. Contrairement au registry Terraform public, qui peut héberger des modules qui proviennent de repository GitHub publics uniquement, HCP Terraform peut héberger des modules qui proviennent de repositories GitHub publics ou privés, de projets GitLab, Bitbucket, ou Azure DevOps.

Le menu Registry conduit à la page du registry privé.

images/10EI17.png

Une fois le module publié sur une des plateformes compatibles, en suivant la règle de nommage terraform-<PROVIDER>-<NAME>, un clic sur le bouton Publish - Module permet de sélectionner la plateforme puis le repository :

images/10EI18.png

Après avoir sélectionné le repository à publier, le module est publié sur le registry privé. Une page résumée présente les mêmes...

Conclusion

Ce chapitre a présenté l’utilisation de HCP Terraform pour y exécuter le code Terraform et publier des modules. HCP Terraform est le choix le plus simple pour commencer à travailler en équipe.

L’utilisation hybride avec les Workflow Version Control et CLI-Driven peut séduire les utilisateurs débutants comme les plus expérimentés. Les fonctionnalités de gestion des variables avec les Variable Set permettent de sécuriser les accès aux secrets comme les clés d’API et autres tokens.

Certaines entreprises aiment également développer leur propre workflow ou outiller plus simplement leurs Devs et leurs Ops. L’Infrastructure as Code permet d’utiliser les outils de CI (Continuous Integration) et de CD (Continuous Deployment), alors pourquoi s’en priver ? Ces outils sont le propos du prochain chapitre.