Utilisation de l’intégration du contrôle de code source
L’intégration du contrôle de code source à Azure Automation vous permet d’effectuer des synchronisations unidirectionnelles à partir de votre dépôt de contrôle de code source. Le contrôle des sources vous permet de tenir à jour vos runbooks dans votre compte Automation avec les scripts de votre dépôt de contrôle des sources GitHub ou Azure DevOps. Cette fonctionnalité simplifie la promotion du code qui a été testé dans votre environnement de développement dans votre compte Automation de production.
L’intégration du contrôle de code source vous permet de facilement collaborer avec votre équipe, suivre les modifications et restaurer des versions antérieures de vos runbooks. Par exemple, le contrôle de code source vous permet de synchroniser différentes branches dans le contrôle de code source avec vos comptes Automation de développement, de test et de production.
Remarque
Les travaux de synchronisation du contrôle de code source sont exécutés sous le compte Automation de l’utilisateur et sont facturés au même tarif que les autres tâches Automation. De plus, les travaux Azure Automation ne prennent pas en charge l’authentification multifacteur (MFA).
Types de contrôle de code source
Azure Automation prend en charge trois types de contrôles de code source :
- GitHub
- Azure DevOps (Git)
- Azure DevOps (TFVC)
Prérequis
- Un référentiel de contrôle de code source (GitHub ou Azure DevOps)
- Le compte Automation requiert l’attribution d’une identité géréepar le système ou par l’utilisateur. Si vous n'avez pas configuré d'identité gérée avec votre compte d'automatisation, voir Activer l'identité gérée attribuée par le système ou activer l'identité gérée attribuée par l'utilisateur pour la créer.
- Affectez l’identité managée affectée par le système au rôle Contributeur dans le compte Automation.
Remarque
Azure Automation prend en charge les identités gérées affectées par le système, ainsi que celles affectées par l’utilisateur avec l’intégration du contrôle de code source. Pour utiliser une identité gérée affectée par l’utilisateur, créez une variable Automation AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID
avec la valeur en tant qu’ID client de l’identité affectée à l’utilisateur. L’utilisateur affecté Managed Identity
doit être activé et disposer d’un accès collaborateur au compte Automation. Si cette variable n’est pas créée, par défaut, nous utilisons l’identité affectée par le système.
Si vous avez un compte d’identification et une identité managée affectés par le système qui sont activés, l’identité managée a la préférence.
Important
Le compte d’identification Azure Automation a été mis hors service le 30 septembre 2023. Nous vous recommandons d’utiliser des identités managées.
Remarque
Selon cette documentation Azure DevOps, l’accès à l’application tierce via la stratégie OAuth est désactivé par défaut pour toutes les nouvelles organisations. Par conséquent, si vous essayez de configurer le contrôle de code source dans Azure Automation avec Azure DevOps (Git) comme type de contrôle de code source sans activer l’accès à l’application tierce via OAuth sous la vignette Stratégies des paramètres de l’organisation dans Azure DevOps, vous pouvez obtenir que SourceControl securityToken ne soit pas valide. Par conséquent, pour éviter cette erreur, assurez-vous d’activer d’abord l’accès à l’application tierce via OAuth sous la vignette Stratégies des paramètres de l’organisation dans Azure DevOps.
Configuration du contrôle de code source
Cette section explique comment configurer le contrôle de code source pour votre compte Automation. Vous pouvez utiliser le portail Azure ou PowerShell.
Affecter une identité managée au rôle contributeur
Cet exemple utilise Azure PowerShell pour montrer comment attribuer le rôle Contributeur dans l’abonnement à la ressource du compte Azure Automation.
Ouvrez une console PowerShell avec des privilèges élevés.
Connectez-vous à Azure en exécutant la commande
Connect-AzAccount
.Pour affecter l’identité managée au rôle Contributeur, exécutez la commande suivante.
New-AzRoleAssignment ` -ObjectId <automation-Identity-Object(Principal)-Id> ` -Scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}" ` -RoleDefinitionName "Contributor"
Configurer le contrôle de code source dans le portail Azure
Utilisez cette procédure pour configurer le contrôle de code source à l’aide du portail Azure.
Dans votre compte Automation, sélectionnez Contrôle de code source, puis cliquez sur Ajouter.
Choisissez Type de contrôle de code source, puis cliquez sur Authentifier.
Une fenêtre de navigateur s’ouvre et vous invite à vous connecter. Suivez les invites pour effectuer l’authentification.
Dans la page Récapitulatif du contrôle de code source, utilisez les champs pour renseigner les propriétés du contrôle de code source définies ci-dessous. Lorsque vous avez terminé, cliquez sur Enregistrer.
Propriété Description Nom du contrôle de code source Nom convivial du contrôle de code source. Ce nom ne doit contenir que des lettres et des chiffres. Type de contrôle de code source Type de mécanisme de contrôle de code source. Les options disponibles sont les suivantes :
* GitHub
* Azure DevOps (Git)
* Azure DevOps (TFVC)Référentiel Nom du dépôt ou du projet. Les 200 premiers dépôts sont retournés. Pour rechercher un dépôt, tapez son nom dans le champ, puis cliquez sur Rechercher sur GitHub. Branche Branche à partir de laquelle extraire les fichiers sources. Le ciblage de branche n’est pas disponible pour le contrôle de code source de type TFVC. Chemin d’accès du dossier Dossier qui contient les runbooks à synchroniser, par exemple, /Runbooks. Seuls les runbooks inclus dans le dossier spécifié sont synchronisés. La récursivité n’est pas prise en charge. Synchronisation automatique1 Paramètre qui active ou désactive la synchronisation automatique lorsqu'une validation est effectuée dans le référentiel de contrôle de code source ou le dépôt GitHub. Publier un runbook Paramètre activé si les runbooks sont automatiquement publiés après la synchronisation à partir du contrôle de code source, paramètre désactivé dans le cas contraire. Description Texte spécifiant des détails supplémentaires sur le contrôle de code source. 1 Pour activer la synchronisation automatique lors de la configuration de l'intégration du contrôle de code source avec Azure DevOps, vous devez être l'administrateur du projet ou le propriétaire du dépôt GitHub. Les collaborateurs peuvent uniquement configurer le contrôle de source sans synchronisation automatique.
La synchronisation automatique ne fonctionne pas avec Automation Private Link. Si vous activez le Private Link, les appels de webhook de contrôle de code source échouent car il se trouve en dehors du réseau.
Remarque
- Les informations de connexion de votre dépôt de contrôle de code source peuvent être différentes de celles que vous utilisez pour le portail Azure. Lorsque vous configurez le contrôle de code source, vérifiez que vous êtes bien connecté au compte qui correspond à votre dépôt de contrôle de code source. En cas de doute, ouvrez un nouvel onglet dans votre navigateur, déconnectez-vous de dev.azure.com, visualstudio.com ou de github.com et essayez de vous reconnecter au contrôle de code source.
- L’authentification multilocataire n’est pas prise en charge.
Configurer le contrôle de code source dans PowerShell
Vous pouvez également utiliser PowerShell pour configurer le contrôle de code source dans Azure Automation. Pour utiliser des applets de commande PowerShell pour cette opération, vous avez besoin d’un jeton d’accès personnel (PAT). Pour créer la connexion de contrôle de code source, utilisez l’applet de commande New-AzAutomationSourceControl. Cette applet de commande exige une chaîne sécurisée pour le PAT. Pour savoir comment créer une chaîne sécurisée, consultez ConvertTo-SecureString.
Les sous-sections suivantes illustrent la création par PowerShell de la connexion de contrôle de code source pour GitHub, Azure Repos (Git) et Azure Repos (TFVC).
Créer une connexion de contrôle de code source pour GitHub
New-AzAutomationSourceControl -Name SCGitHub -RepoUrl https://github.com/<accountname>/<reponame>.git -SourceType GitHub -FolderPath "/MyRunbooks" -Branch main -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName>
Créer une connexion de contrôle de code source pour Azure DevOps (Git)
Remarque
Azure DevOps (Git) utilise une URL qui accède à dev.azure.com au lieu de visualstudio.com, utilisé dans des formats antérieurs. L’ancien format d’URL https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname>
n’est plus utilisé, mais il demeure pris en charge. Le nouveau format est préféré.
New-AzAutomationSourceControl -Name SCReposGit -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoGit -AccessToken <secureStringofPAT> -Branch main -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"
Créer une connexion de contrôle de code source pour Azure DevOps (TFVC)
Remarque
Azure Repos (TFVC) utilise une URL qui accède à dev.azure.com au lieu de visualstudio.com, utilisé dans des formats antérieurs. L’ancien format d’URL https://<accountname>.visualstudio.com/<projectname>/_versionControl
n’est plus utilisé, mais il demeure pris en charge. Le nouveau format est préféré.
New-AzAutomationSourceControl -Name SCReposTFVC -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoTfvc -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"
Autorisations de jeton d’accès personnel (PAT)
Le contrôle de code source exige des autorisations minimales pour les PAT. Les sous-sections suivantes indiquent les autorisations minimales nécessaires pour accéder à GitHub et à Azure DevOps.
Autorisations PAT minimales pour GitHub
Le tableau suivant définit les autorisations PAT minimales nécessaires pour GitHub. Pour plus d’informations sur la création d’un PAT dans GitHub, consultez Création d’un jeton d’accès personnel pour la ligne de commande.
Étendue | Description |
---|---|
repo |
|
repo:status |
État de la validation d’accès |
repo_deployment |
État du déploiement d’accès |
public_repo |
Référentiels publics d’accès |
repo:invite |
Invitations au référentiel d’accès |
security_events |
Lire et écrire des événements de sécurité |
admin:repo_hook |
|
write:repo_hook |
Écrire des hooks de référentiel |
read:repo_hook |
Lire des hooks de référentiel |
Autorisations PAT minimales pour Azure DevOps
La liste suivante définit les autorisations PAT minimales nécessaires pour Azure DevOps. Pour plus d’informations sur la création d’un PAT dans Azure DevOps, consultez Authentifier l’accès à l’aide de jetons d’accès personnels.
Étendue | Type d’accès |
---|---|
Code |
Lire |
Project and team |
Lire |
Identity |
Lire |
User profile |
Lire |
Work items |
Lire |
Service connections |
Lire, interroger, gérer1 |
1 L’autorisation Service connections
est uniquement nécessaire si vous avez activé la synchronisation automatique.
Synchroniser avec le contrôle de code source
Suivez ces étapes pour effectuer une synchronisation avec le contrôle de code source.
Sélectionnez la source dans le tableau de la page Contrôle de code source.
Cliquez sur Démarrer la synchronisation pour initialiser le processus de synchronisation.
Visualisez l’état du travail de synchronisation actuel ou des travaux précédents en cliquant sur l’onglet Travaux de synchronisation.
Dans le menu déroulant Contrôle de code source, sélectionnez un mécanisme de contrôle de code source.
Vous pouvez cliquer sur un travail afin de visualiser la sortie correspondante. L’exemple suivant présente la sortie d’un travail de synchronisation du contrôle de code source.
=================================================================== Azure Automation Source Control. Supported runbooks to sync: PowerShell Workflow, PowerShell Scripts, DSC Configurations, Graphical, and Python 2. Setting AzEnvironment. Getting AzureRunAsConnection. Logging in to Azure... Source control information for syncing: [Url = https://ContosoExample.visualstudio.com/ContosoFinanceTFVCExample/_versionControl] [FolderPath = /Runbooks] Verifying url: https://ContosoExample.visualstudio.com/ContosoFinanceTFVCExample/_versionControl Connecting to VSTS... Source Control Sync Summary: 2 files synced: - ExampleRunbook1.ps1 - ExampleRunbook2.ps1 ==================================================================
Vous pouvez disposer d’une journalisation supplémentaire en sélectionnant Tous les journaux dans la page Récapitulatif du travail de synchronisation du contrôle de code source. Ces entrées de journal supplémentaires peuvent vous aider à résoudre les problèmes qui peuvent survenir lorsque vous utilisez le contrôle de code source.
Déconnecter le contrôle de code source
Pour vous déconnecter d’un dépôt de contrôle de code source :
Ouvrez Contrôle de code source sous Paramètres du compte dans votre compte Automation.
Sélectionnez le mécanisme de contrôle de code source à supprimer.
Dans la page Récapitulatif du contrôle de code source, cliquez sur Supprimer.
Gérer les problèmes d’encodage
Si plusieurs personnes modifient des runbooks dans votre dépôt de contrôle de code source à l’aide de différents éditeurs, des problèmes d’encodage peuvent se produire. Pour plus d’informations sur cette situation, consultez Causes courantes des problèmes d’encodage.
Mettre à jour le jeton d’accès personnel (PAT, Personal Access Token)
Actuellement, vous ne pouvez pas utiliser le portail Azure pour mettre à jour le PAT dans le contrôle de code source. Lorsque votre PAT a expiré ou a été révoqué, vous pouvez mettre à jour le contrôle de code source avec un nouveau jeton d’accès de l’une des manières suivantes :
- Utilisez l’API REST.
- Utilisez l’applet de commande Update-AzAutomationSourceControl.
Étapes suivantes
- Pour intégrer le contrôle de source Runbook à Visual Studio Codespaces, consultez Azure Automation : Intégration du contrôle de source Runbook à l'aide de Visual Studio Codespaces.