Exercice : Configurer votre environnement

Effectué

Important

Vous avez besoin de votre propre abonnement Azure pour exécuter cet exercice et des frais pourraient vous être facturés. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Avant de commencer à publier le code Bicep réutilisable de votre entreprise de jouets, vous devez configurer votre environnement. Dans cette section, vous vérifiez que vos environnements Azure et GitHub sont configurés pour les étapes restantes de ce module.

Pour atteindre ces objectifs, vous allez :

  • Configurer un dépôt GitHub pour ce module.
  • Cloner le dépôt sur votre ordinateur.
  • Créer un groupe de ressources dans Azure.
  • Créer un secret dans GitHub.

Accéder au dépôt GitHub

Ici, vous créez un dépôt GitHub basé sur un dépôt de modèles. Le référentiel de modèles contient les fichiers dont vous avez besoin pour commencer à utiliser ce module.

Les modules de ce parcours d’apprentissage font partie d’une progression. Pour les besoins de l’apprentissage, chaque module est associé à un dépôt de modèles GitHub.

Conseil

Même si vous avez terminé le module précédent du parcours d’apprentissage, suivez ces instructions pour créer un dépôt avec un nouveau nom.

Démarrer à partir du dépôt de modèles

Exécutez un modèle qui configure votre dépôt GitHub.

Sur le site GitHub, effectuez les étapes suivantes pour créer un dépôt à partir du modèle :

  1. Connectez-vous à GitHub.

  2. Sélectionnez Utiliser ce modèle>Créer un dépôt.

    Capture d’écran de l’interface GitHub montrant le référentiel de modèles. Le bouton permettant d’utiliser le modèle est mis en surbrillance.

  3. Pour Propriétaire, sélectionnez votre compte GitHub.

  4. Entrez un Nom de dépôt pour votre nouveau projet, par exemple toy-reusable.

  5. Sélectionnez l’option Public.

    Si vous créez vos propres dépôts, vous souhaiterez peut-être les rendre privés. Dans ce module, vous utiliserez les fonctionnalités de GitHub qui fonctionnent uniquement avec les référentiels publics et les comptes GitHub Enterprise.

  6. Cliquez sur Create repository (Créer le dépôt).

    Capture d’écran de l’interface GitHub montrant la page de création du référentiel.

Important

L’exercice final de ce module contient des étapes de nettoyage importantes. Veillez à suivre les étapes de nettoyage même si vous n’allez pas au bout de ce module.

Cloner le référentiel

Maintenant que vous disposez d’une copie du dépôt de modèles dans votre propre compte, vous clonez ce dépôt localement pour pouvoir commencer à travailler dessus.

  1. Sélectionnez Code, puis l’icône Copier l’URL dans le presse-papiers.

    Capture d’écran de l’interface GitHub montrant le nouveau référentiel. Le bouton copier l’URL du référntiel est mis en surbrillance.

  2. Ouvrez Visual Studio Code.

  3. Ouvrez une fenêtre de terminal Visual Studio Code en sélectionnant Terminal>Nouveau terminal. Elle s’ouvre généralement en bas de l’écran.

  4. Dans le terminal, accédez au répertoire dans lequel vous souhaitez cloner le référentiel GitHub sur votre ordinateur local. Par exemple, pour cloner le référentiel dans le dossier référentiels, exécutez la commande suivante :

    cd repositories
    
  5. Tapez git clone, puis collez l’URL que vous avez copiée précédemment et qui ressemble à ceci :

    git clone https://github.com/mygithubuser/toy-reusable.git
    
  6. Rouvrez Visual Studio Code dans le dossier du dépôt en exécutant la commande suivante à partir du terminal Visual Studio Code :

    code --reuse-window toy-reusable
    

Connexion à Azure

Pour utiliser des groupes de ressources dans Azure, connectez-vous à votre compte Azure à partir du terminal Visual Studio Code. Vérifiez que vous avez installé les outils Azure CLI et l’extension de compte Azure pour Visual Studio Code.

  1. Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.

    L’interpréteur de commandes par défaut est généralement pwsh, comme indiqué sur le côté droit de la fenêtre de terminal.

    Capture d’écran de la fenêtre de terminal de Visual Studio Code, dans laquelle pwsh est l’option d’interpréteur de commandes.

  2. Sélectionnez la liste déroulante Lancer le profil, puis sélectionnez Azure Cloud Shell (Bash).

    Capture d’écran de la fenêtre du terminal Visual Studio Code. La liste déroulante de l’interpréteur de commandes de terminal et l’élément de menu Azure Cloud Shell (Bash) sont affichés.

    Un nouvel interpréteur de commandes s’ouvre.

Connexion à Azure avec l’interface Azure CLI

  1. Dans le terminal Visual Studio Code, exécutez la commande suivante pour vous connecter à Azure :

    az login
    
  2. Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.

Pour utiliser des groupes de ressources dans Azure, connectez-vous à votre compte Azure à partir du terminal Visual Studio Code. Vérifiez que vous avez installé Azure PowerShell et l’extension de compte Azure pour Visual Studio Code.

  1. Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.

    L’interpréteur de commandes par défaut est généralement pwsh, comme indiqué sur le côté droit de la fenêtre de terminal.

    Capture d’écran de la fenêtre de terminal de Visual Studio Code, dans laquelle pwsh est l’option d’interpréteur de commandes.

  2. Sélectionnez la liste déroulante Lancer le profil, puis sélectionnez Azure Cloud Shell (PowerShell).

    Capture d’écran de la fenêtre du terminal Visual Studio Code. La liste déroulante de l’interpréteur de commandes de terminal et l’élément de menu Azure Cloud Shell (PowerShell) sont affichés.

    Un nouvel interpréteur de commandes s’ouvre.

Connectez-vous à Azure en utilisant Azure PowerShell

  1. Dans le terminal Visual Studio Code, exécutez la commande suivante pour vous connecter à Azure :

    Connect-AzAccount -UseDeviceAuthentication
    
  2. Suivez les instructions de la commande pour vous connecter à votre compte Azure.

Créer une identité de charge de travail

Créez ensuite une identité de charge de travail dans Microsoft Entra ID pour votre workflow de déploiement.

Pour créer les identités de charge de travail, les commandes Azure CLI utilisent jq pour analyser les données de la sortie JSON. Si vous n’avez pas jq installé, vous pouvez utiliser Bash dans Azure Cloud Shell pour créer l’identité de charge de travail, le groupe de ressources et l’attribution de rôle, et préparer les secrets GitHub.

  1. Exécutez le code suivant pour définir des variables pour votre nom d’utilisateur GitHub et votre nom de dépôt. Vérifiez que vous remplacez mygithubuser par votre nom d’utilisateur GitHub, que vous avez noté précédemment dans cet exercice. Vérifiez également que vous spécifiez le nom correct du référentiel GitHub.

    githubOrganizationName='mygithubuser'
    githubRepositoryName='toy-reusable'
    
  2. Créez une identité de charge de travail pour votre workflow de déploiements.

    applicationRegistrationDetails=$(az ad app create --display-name 'toy-reusable')
    applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id')
    applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId')
    
    az ad app federated-credential create \
       --id $applicationRegistrationObjectId \
       --parameters "{\"name\":\"toy-reusable-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
    
  1. Exécutez le code suivant pour définir des variables pour votre nom d’utilisateur GitHub et votre nom de dépôt. Vérifiez que vous remplacez mygithubuser par votre nom d’utilisateur GitHub, que vous avez noté plus tôt dans cet exercice. Vérifiez également que vous spécifiez le nom correct du référentiel GitHub.

    $githubOrganizationName = 'mygithubuser'
    $githubRepositoryName = 'toy-reusable'
    
  2. Créez une identité de charge de travail pour votre workflow de déploiements.

    $applicationRegistration = New-AzADApplication -DisplayName 'toy-reusable'
    New-AzADAppFederatedCredential `
       -Name 'toy-reusable-branch' `
       -ApplicationObjectId $applicationRegistration.Id `
       -Issuer 'https://token.actions.githubusercontent.com' `
       -Audience 'api://AzureADTokenExchange' `
       -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
    

Créer un groupe de ressources dans Azure et accorder l’accès à l’identité de charge de travail

Créez ensuite un groupe de ressources pour votre site web. Ce processus accorde également le rôle Contributeur sur le groupe de ressources à l’identité de charge de travail, ce qui permet à votre workflow d’effectuer des déploiements sur le groupe de ressources.

Dans le terminal Visual Studio Code, exécutez les commandes Azure CLI suivantes :

resourceGroupResourceId=$(az group create --name ToyReusable --location westus3 --query id --output tsv)

az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
  --assignee $applicationRegistrationAppId \
  --role Contributor \
  --scope $resourceGroupResourceId

Dans le terminal Visual Studio Code, exécutez les commandes Azure PowerShell suivantes :

$resourceGroup = New-AzResourceGroup -Name ToyReusable -Location westus3

New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
  -ApplicationId $applicationRegistration.AppId `
  -RoleDefinitionName Contributor `
  -Scope $resourceGroup.ResourceId

Préparer les secrets GitHub

Exécutez le code suivant pour afficher les valeurs que vous devez créer en tant que secrets GitHub :

echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"

Notez la valeur de votre ID d’application pour le AZURE_CLIENT_ID. Vous pouvez utiliser cette valeur lorsque vous nettoyez des ressources une fois ce module terminé.

Créer des secrets GitHub

Vous avez créé une identité de charge de travail et un groupe de ressources vers lequel effectuer des déploiements. Créez ensuite un secret dans GitHub Actions.

  1. Dans votre navigateur, accédez à votre dépôt GitHub.

  2. Sélectionnez Paramètres>Secrets et variables>Actions.

  3. Sélectionnez New repository secret (Nouveau secret de dépôt).

    Capture d’écran de l’interface GitHub montrant la page « Secrets ». Le bouton « Nouveau secret du référentiel » est mis en surbrillance.

  4. Nommez le secret AZURE_CLIENT_ID.

  5. Dans le champ Valeur, collez le GUID à partir de la première ligne de la sortie du terminal. N’incluez pas AZURE_CLIENT_ID, les deux-points ni aucun espace dans la valeur.

  6. Sélectionnez Ajouter un secret.

    Capture d’écran de l’interface GitHub montrant la page « Nouveau secret ». Le nom et la valeur sont entrés, et le bouton « Ajouter un secret » est mis en surbrillance.

  7. Répétez le processus pour créer les secrets pour AZURE_TENANT_ID et AZURE_SUBSCRIPTION_ID, en copiant les valeurs des champs correspondants dans la sortie du terminal.

  8. Vérifiez que votre liste de secrets affiche désormais les trois secrets.

    Capture d’écran de l’interface GitHub montrant la liste de secrets.