Pour connecter Azure DevOps à Terraform Cloud dans le but de lancer des pipelines depuis Azure DevOps ou Terraform Cloud vers Azure il faut effectuer quelque configuration sur Azure, Azure Cloud et sur Terraform Cloud. Nous partons du postulat selon lequel vous avez déjà créé la connexion entre Azure DevOps et Azure.
Configuration d’Azure
Nous allons commencer par configurer Azure du moins il faut juste généré un mot de passe sur notre service de connexion. Connectez vous sur Azure DevOps. Dans la page principale de votre projet cliqué sur Project Settings ensuite sur Service de connections et enfin sur le nom du Service de connexion que vous voulez utiliser et cliquer sur Manage Service Principal.
Une fois sur Certificat & secrets, cliquer sur New client secret, ajouter une description et cliquer enfin sur Add.
Pensez à copier la colonne value de la clé qui est générée car c’est cela qui sera renseigné dans la variable ARM_CLIENT_SECRET de terraform Cloud. Cette clé n’est affichée que lors de sa création.
Configuration de Terraform Cloud
Nous allons commencer par créer une team. Une fois connecté sur Terraform cloud cliquer sur Settings
Cliquer ensuite sur Teams, indiquer le nom de la Team et cliquer sur Create Team
Ensuite tous en bas de la page de configuration de la team que vous venez de créer, ajouter les utilisateurs et cliquer ensuite sur Create a team token. Le Token qui est créé sera utilisé dans Azure DevOps pour se connecter à Terraform cloud, ainsi il aura uniquement les droits attribués au groupe auquel appartient le Token.
On vas maintenant créer un WorkSpaces pour cela il faut revenir à la vue principale des Workspaces en cliquant sur Workspaces en haut à gauche. Cliquer ensuite en haut à droite sur New et enfin sur Workspace
Indiquer ensuite le Nom du WorkSpace, choisissez le Project auquel il est rattaché et cliquer enfin sur Create workspace
Donner ensuite les droits sur votre Workspace à la Team que vous venez de créer. Depuis la vue principale de votre Workspace, cliquer sur Settings
Choisir la Team
Pour l’exécution et la création de ressource depuis Azure DevOps vous pouvez donner les droits d’écriture.
La liaison avec Azure DevOps sera assuré côté Terraform Cloud par les 4 variables suivantes:
ARM_SUBSCRIPTION_ID Votre souscription
ARM_TENANT_ID Votre tenant ID
ARM_CLIENT_SECRET Mot de passe récupéré sur le service de connexion créé pour Azure Devops
ARM_CLIENT_ID Application (client) ID du service de connexion créé pour Azure Devops
Ses variables permettent à Terraform Cloud de se connecter au bon tenant avec les bons droits pour exécuter dans actions sur Azure. Depuis la vue principale de votre Workspace, cliquer sur Variables à gauche et créer les 4 variables suivantes avec pour catégorie variable d’environnement :
Maintenant vous pouvez simplement créer et lancer vos pipeline depuis Azure DevOps et sauvegarder vos TFState Terraform sur Terraform Cloud
Laisser un commentaire