Photo par Timelab Pro

Configurez automatiquement vos projets Azure DevOps avec Terraform

Configurer un projet avec un script

Créé par Damien Aicheh le 24/10/2022 · 6 mins

Dans ce tutoriel, nous verrons les premières étapes pour créer automatiquement un projet dans Azure DevOps en utilisant Terraform.

Ce tutoriel fait partie d’une série complète de tutoriels sur la configuration d’Azure DevOps avec Terraform.

Structure du projet

Créons un projet Terraform dédié appelé set_up_azure_devops avec cette structure à l’intérieur :

| - set_up_azure_devops
   | - .env
   | - .gitignore

Le fichier .env ne doit pas être versionné car il contiendra les informations d’identification pour accéder à Azure DevOps. Le .gitignore contiendra tous les fichiers terraform que nous voulons ignorer. Il ressemblera à ceci:

.env
.terraform
*.tfstate
**/*.lock.*
**/*.tfplan
*.dev.tfvars
terraform.tfplan
terraform.tfstate.backup
plan.out

Obtenir les identifiants

Pour interagir avec Azure DevOps, le provider Terraform a besoin de deux choses :

  • L’url Azure DevOps qui est formatée comme ceci : https://dev.azure.com/YOUR_ORGANISATION
  • Un jeton d’accès qui doit être créé dans Azure DevOps

Pour le créer, rendez-vous sur votre compte et sélectionnez Personnal Access Tokens :

Overview

Cliquez sur New Token, puis créez un nouveau jeton (token) d’accès personnel. Pour les besoins de ce tutoriel et pour le garder simple, vous pouvez choisir Full access scope, cela fonctionnera mais peut fournir plus d’accès que vous n’en avez besoin. Lorsque vous serez plus sûr de ce que vous voulez faire, vous pourrez y revenir et n’activer que les scopes qui vous sont utiles.

Pour les machines Linux et Mac, ouvrez au fichier .env et ajoutez nos valeurs comme ceci :

export AZDO_ORG_SERVICE_URL=https://dev.azure.com/YOUR_ORGANISATION
export AZDO_PERSONAL_ACCESS_TOKEN=YOUR_ACCESS_TOKEN

Le but de ce fichier .env est d’exposer ces variables d’environnement sur votre machine. Pour ce faire, exécutez simplement cette commande :

source .env

Après cela, si vous exécutez :

env

Vous devriez voir les deux variables d’environnement dans votre terminal. Vous êtes maintenant prêt à créer votre premier projet Azure DevOps avec Terraform !

Si vous utilisez Windows, utilisez la commande Set pour exposer ces variables d’environnement.

Définir le provider d’Azure DevOps

Créons un fichier provider.tf et déclarons-y le provider microsoft/azuredevops :

terraform {
  required_providers {
    azuredevops = {
      source  = "microsoft/azuredevops"
      version = ">=0.2.0"
    }
  }
}

Les informations d’identification que vous avez précédemment configurées seront automatiquement écrites par le provider lorsque vous exécuterez une commande terraform init.

Définir le projet

Prochaine étape, vous pouvez définir un nouveau fichier appelé project.tf et déclarer le type de projet que vous souhaitez :

resource "azuredevops_project" "this" {
  name            = var.project_name
  visibility      = "private"
  version_control = "Git"
  features = {
    "boards"       = "enabled"
    "repositories" = "enabled"
    "pipelines"    = "enabled"
    "testplans"    = "disabled"
    "artifacts"    = "disabled"
  }
}

Comme vous pouvez le voir, le nom du projet est une variable que nous déclarerons dans la section suivante. Pour vous donner un exemple, toutes les features ne sont pas activées pour ce projet. Vous pouvez trouver toutes les propriétés disponibles dans la documentation de Terraform.

Définir la variable du nom du projet

Enfin, vous pouvez ajouter la variable project_name dans un fichier spécifique appelé variables.tf :

variable "project_name" {
  description = "The project name to create"
  type        = string
}

Executer Terraform

Essayons, initialisons d’abord Terraform :

terraform init

Lancez la commande plan avec le nom du projet comme variable, (nous verrons dans les prochains tutoriels comment gérer toutes les variables d’entrée avec un fichier) :

terraform plan -var 'project_name=YOUR PROJECT NAME' --out=plan.out

Et enfin appliquez le fichier plan.out :

terraform apply plan.out

En conséquence, vous devriez voir votre projet créé dans Azure DevOps !

Final touch

Vous avez réussi à créer votre premier projet dans Azure DevOps avec Terraform. Vous trouverez le code source complet dans ce repository Github.

Et après?

Dans le prochain tutoriel de cette série, nous nous concentrerons sur la création de repositories !

N'hésitez pas à me suivre sur pour ne pas rater mon prochain tutoriel !