- Azure DevOps
- Terraform
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.
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
Pour interagir avec Azure DevOps, le provider Terraform a besoin de deux choses :
https://dev.azure.com/YOUR_ORGANISATION
Pour le créer, rendez-vous sur votre compte et sélectionnez Personnal Access Tokens
:
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.
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
.
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.
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
}
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 !
Vous avez réussi à créer votre premier projet dans Azure DevOps avec Terraform. Vous trouverez le code source complet dans ce repository Github.
Dans le prochain tutoriel de cette série, nous nous concentrerons sur la création de repositories !