Exercice - Déployer un fichier Bicep à partir de workflows GitHub
GitHub Actions est similaire à Azure Pipelines par nature. Ils permettent d’automatiser le développement et les déploiements de logiciels. Dans cet exercice, vous allez apprendre à déployer un fichier Bicep à l’aide d’une action GitHub.
Conditions préalables
- 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 Bicep et vos flux de travail créés précédemment dans l’exercice - Créer des modèles Bicep. Une fois que vous avez créé votre dépôt GitHub , envoyez le fichier Bicep dans celui-ci.
- Pour le déploiement sur Azure, l’accès à un abonnement Azure est nécessaire, ce qui peut être créé 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
Remarque
N’oubliez pas de remplacer le {subscription-id} par votre véritable ID d’abonnement.
Présentation de la commande
- az ad sp create-for-rbac : Crée un principal de service pour le contrôle d’accès en fonction du rôle.
- --nom: Nom du principal de service.
-
--rôle: Attribue le
contributorrôle, ce qui permet une gestion complète des ressources. - --Étendues: Limite l’accès à un groupe de ressources spécifique.
- --sdk-auth : Génère des informations d’identification dans un format adapté à l’authentification du Kit de développement logiciel (SDK).
Lorsque l’opération réussit, elle doit générer un objet JSON qui contient vos tenantIdpropriétés , , subscriptionIdclientId, clientSecretet quelques propriétés supplémentaires, telles que les suivantes :
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Notez cet objet, car vous devez 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 celui de l’ID d’abonnement nommé AZURE_SUBSCRIPTION.
Pourquoi utiliser des secrets ?
Les secrets de GitHub permettent de stocker des informations sensibles en toute sécurité. Elles sont les suivantes :
- Crypté: Stocké en toute sécurité dans GitHub.
- Non visible dans les journaux : Masqué dans les journaux d’exécution du flux de travail.
- Accessible dans les flux de travail : Disponible en tant que variables d’environnement pendant l’exécution du flux de travail.
Création d’une action GitHub
Créer un flux de travail
Tout d’abord, accédez à votre référentiel 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.
Définir le flux de travail
Remplacez le contenu du fichier par l’extrait de code suivant :
on: [push] name: Azure Resource Manager 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: falseN’hésitez pas à remplacer la valeur de
storagePrefixparamètre par la vôtre.
Présentation du flux de travail
Ce flux de travail GitHub Action effectue les opérations suivantes :
Déclencheur: S’exécute automatiquement lorsque le code est envoyé au dépôt (
on: [push]).Travail: Définit un travail nommé
build-and-deployqui s’exécute sur un exécuteur Ubuntu .Steps:
-
Code de validation : Utilise
actions/checkout@mainpour valider le code du dépôt. -
Connectez-vous à Azure : Utilise
azure/login@v1pour s’authentifier auprès d’Azure à l’aide duAZURE_CREDENTIALSsecret. -
Déployer le fichier Bicep : Utilise
azure/arm-deploy@v1pour déployer le modèle Bicep :-
subscriptionId: ID d’abonnement Azure à partir de secrets. -
resourceGroupName: nom du groupe de ressources à partir de secrets. -
template: chemin d’accès au fichier Bicep . -
parameters: paramètres passés au modèle Bicep . -
failOnStdErr: défini surfalseà ne pas échouer sur la sortie d’erreur standard.
-
Remarque
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 .
-
Code de validation : Utilise
Commiter le workflow
Sélectionnez Démarrer le commit, puis entrez un titre et une description dans la boîte de dialogue contextuelle. Sélectionnez ensuite Valider directement dans la branche principale, puis Valider le nouveau fichier.
Surveiller le flux de travail
Accédez à l’onglet Actions et sélectionnez l’action nouvellement créée qui doit être en cours d’exécution.
Vérifier le déploiement
Surveillez l’état et lorsque le travail est terminé, vérifiez le portail Azure pour voir si le compte de stockage a été créé.