Exercice - Déployer un fichier Bicep à partir de workflows GitHub
GitHub Actions et Azure Pipelines sont par nature similaires. Ils permettent d’automatiser le développement et les déploiements de logiciels. Dans cet exercice, vous allez apprendre à déployer un fichier Bicep avec une action GitHub.
Prérequis
- Vous aurez besoin d’un compte GitHub, que vous pouvez créer gratuitement ici.
- Un dépôt GitHub est également nécessaire pour stocker votre fichier et vos flux de travail Bicep créés précédemment dans Exercice - Créer des modèles Bicep. Une fois que vous avez créé votre dépôt GitHub, poussez (push) le fichier Bicep dans celui-ci.
- Pour le déploiement sur Azure, vous devez avoir accès à un abonnement Azure que vous pouvez créer gratuitement ici.
Création d’un principal de service dans Azure
Pour déployer vos ressources sur Azure, vous devez créer un principal de service que GitHub peut utiliser. Ouvrez un terminal ou utilisez Cloud Shell dans le portail Azure et tapez les commandes suivantes :
az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth
Notes
N’oubliez pas de remplacer l’ID d’abonnement par le vôtre.
Au terme de l’opération, vous devriez disposer d’un objet JSON contenant les propriétés tenantId
, subscriptionId
, clientId
, clientSecret
et quelques autres comme les suivantes.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Notez cet objet, car vous devrez l’ajouter à vos secrets GitHub.
Création d’un secret GitHub
Dans votre dépôt GitHub, accédez à Paramètres>Secrets>Actions. Créez un secret appelé AZURE_CREDENTIALS
et collez l’intégralité de l’objet JSON obtenu à l’étape précédente.
Créez un autre secret pour le nom du groupe de ressources avec un nom tel que AZURE_RG
et un pour l’abonnement.
Création d’une action GitHub
Tout d’abord, accédez à votre dépôt et sélectionnez le menu Actions. Ensuite, configurez un workflow pour créer un workflow vide dans votre dépôt. Vous pouvez renommer le fichier si vous le souhaitez.
Remplacez le contenu du fichier par l’extrait de code suivant :
on: [push] name: Azure ARM jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} # Deploy Bicep file - name: deploy uses: azure/arm-deploy@v1 with: subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }} resourceGroupName: ${{ secrets.AZURE_RG }} template: ./main.bicep parameters: storagePrefix=stg failOnStdErr: false
N’hésitez pas à remplacer le préfixe du compte de stockage par le vôtre.
Notes
La première partie du flux de travail définit le déclencheur et son nom. Le reste définit un travail et utilise quelques tâches pour extraire le code, se connecter à Azure et déployer le fichier Bicep.
Sélectionnez Démarrer le commit, puis entrez un titre et une description dans la boîte de dialogue contextuelle. Sélectionnez ensuite Commiter directement dans la branche primaire, puis Commiter un nouveau fichier.
Accédez à l’onglet Actions et sélectionnez l’action nouvellement créée qui devrait être en cours d’exécution.
Surveillez l’état. Une fois le travail terminé, vérifiez le portail Azure pour voir si le compte de stockage est en cours de création.