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

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.

Screenshot that displays the user-assigned Managed Identity.

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 Azure Automation Run As sera retiré le 30 septembre 2023 et sera remplacé par des identités gérées. Avant cette date, vous devez migrer d'un compte d'identification vers 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.

  1. Ouvrez une console PowerShell avec des privilèges élevés.

  2. Connectez-vous à Azure en exécutant la commande Connect-AzAccount.

  3. 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.

  1. Dans votre compte Automation, sélectionnez Contrôle de code source, puis cliquez sur Ajouter.

    Select source control

  2. Choisissez Type de contrôle de code source, puis cliquez sur Authentifier.

  3. Une fenêtre de navigateur s’ouvre et vous invite à vous connecter. Suivez les invites pour effectuer l’authentification.

  4. 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.

    Screenshot that describes the Source control summary.

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.

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.

  1. Sélectionnez la source dans le tableau de la page Contrôle de code source.

  2. Cliquez sur Démarrer la synchronisation pour initialiser le processus de synchronisation.

  3. Visualisez l’état du travail de synchronisation actuel ou des travaux précédents en cliquant sur l’onglet Travaux de synchronisation.

  4. Dans le menu déroulant Contrôle de code source, sélectionnez un mécanisme de contrôle de code source.

    Sync status

  5. 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
    
    ==================================================================
    
    
  6. 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 :

  1. Ouvrez Contrôle de code source sous Paramètres du compte dans votre compte Automation.

  2. Sélectionnez le mécanisme de contrôle de code source à supprimer.

  3. 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 :

Étapes suivantes