Usare l'integrazione del controllo del codice sorgente

L'integrazione del controllo del codice sorgente in Automazione di Azure supporta la sincronizzazione a direzione singola dal repository del controllo del codice sorgente. Il controllo del codice sorgente consente di mantenere i runbook inclusi nell'account di Automazione aggiornati con gli script del repository del controllo del codice sorgente Azure DevOps o GitHub. Con questa funzionalità è facile alzare di livello il codice testato nell'ambiente di sviluppo per l'account di Automazione di produzione.

L'integrazione del controllo del codice sorgente fornisce un ambiente in cui è possibile collaborare con il team, rilevare le modifiche ed eseguire il rollback a versioni precedenti dei runbook. Il controllo del codice sorgente, ad esempio, consente di sincronizzare diversi rami nel controllo del codice sorgente per gli account di Automazione di sviluppo, test e produzione.

Nota

I processi di sincronizzazione del controllo del codice sorgente vengono eseguiti nell'account di Automazione dell'utente e vengono fatturati alla stessa tariffa degli altri processi di automazione. Inoltre, i processi Automazione di Azure non supportano MFA (Multi-Factor Authentication).

Tipi di controllo del codice sorgente

Automazione di Azure supporta tre tipi di controllo del codice sorgente:

  • GitHub
  • Azure DevOps (Git)
  • Azure DevOps (TFVC)

Prerequisiti

Nota

Automazione di Azure supporta sia l'identità gestita assegnata dal sistema che l'identità gestita assegnata dall'utente con l'integrazione del controllo del codice sorgente. Per usare un'identità gestita assegnata dall'utente, creare una variabile AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID di automazione con il valore come ID client dell'identità assegnata dall'utente. L'utente assegnato Managed Identity deve essere abilitato e avere accesso collaboratore all'account di automazione. Se questa variabile non viene creata, per impostazione predefinita viene usata l'identità assegnata dal sistema.

Screenshot that displays the user-assigned Managed Identity.

Se sono abilitati sia un account RunAs che un'identità gestita, viene assegnata la preferenza per l'identità gestita.

Importante

Automazione di Azure account RunAs verrà ritirato 30 settembre 2023 e verrà sostituito con identità gestite. Prima di tale data, è necessario eseguire la migrazione da un account RunAs alle identità gestite.

Nota

In base a questa documentazione di Azure DevOps, l'accesso alle applicazioni di terze parti tramite i criteri OAuth è disattivato per impostazione predefinita per tutte le nuove organizzazioni. Pertanto, se si tenta di configurare il controllo del codice sorgente in Automazione di Azure con Azure Devops (Git) come tipo di controllo del codice sorgente senza abilitare l'accesso alle applicazioni di terze parti tramite OAuth nel riquadro Criteri dell'organizzazione Impostazioni in Azure DevOps, è possibile che SourceControl securityToken non sia valido. Per evitare questo errore, assicurarsi di abilitare prima l'accesso alle applicazioni di terze parti tramite OAuth nel riquadro Criteri dell'organizzazione Impostazioni in Azure DevOps.

Configurare il controllo del codice sorgente

Questa sezione descrive come configurare il controllo del codice sorgente per l'account di Automazione. È possibile usare il portale di Azure o PowerShell.

Assegnare l'identità gestita al ruolo Collaboratore

Questo esempio usa Azure PowerShell per illustrare come assegnare il ruolo Collaboratore nella sottoscrizione alla risorsa dell'account Automazione di Azure.

  1. Aprire una console di PowerShell con privilegi elevati.

  2. Accedere ad Azure eseguendo il comando Connect-AzAccount.

  3. Per assegnare l'identità gestita al ruolo Collaboratore , eseguire il comando seguente.

    New-AzRoleAssignment `
        -ObjectId <automation-Identity-Object(Principal)-Id> `
        -Scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}" `
        -RoleDefinitionName "Contributor"
    

Configurare il controllo del codice sorgente nel portale di Azure

Usare questa procedura per configurare il controllo del codice sorgente usando il portale di Azure.

  1. Nell'account di Automazione selezionare Controllo del codice sorgente e fare clic su Aggiungi.

    Select source control

  2. Scegliere Tipo di controllo del codice sorgente e fare clic su Autentica.

  3. Viene visualizzata una finestra del browser in cui si chiede di effettuare l'accesso. Seguire le istruzioni per completare l'autenticazione.

  4. Nella pagina Riepilogo del Controllo del codice sorgente usare i campi per specificare le proprietà del controllo del codice sorgente definite di seguito. Al termine, fare clic su Salva.

    Proprietà Descrizione
    Nome del controllo del codice sorgente Nome descrittivo per il controllo del codice sorgente. Il nome deve contenere solo lettere e numeri.
    Tipo di controllo del codice sorgente Tipo di meccanismo del controllo del codice sorgente. Le opzioni disponibili sono:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    Repository Nome del repository o del progetto. Vengono recuperati i primi 200 repository. Per cercare un repository, digitare il nome nel campo e fare clic su Search on GitHub (Cerca in GitHub).
    Filiale Ramo da cui eseguire il pull dei file di origine. La selezione della destinazione del ramo non è disponibile per il controllo del codice sorgente di tipo Controllo della versione di Team Foundation.
    Percorso della cartella Cartella che contiene i runbook da sincronizzare, ad esempio /Runbooks. Vengono sincronizzati solo i runbook presenti nella cartella specificata. La ricorsione non è supportata.
    Sincronizzazione automatica1 Impostazione che attiva o disattiva la sincronizzazione automatica quando viene eseguito un commit nel repository del controllo del codice sorgente o nel repository GitHub.
    Pubblica runbook Impostazione "Attivato" se i runbook vengono pubblicati automaticamente dopo la sincronizzazione dal controllo del codice sorgente e "Disattivato" in caso contrario.
    Descrizione Testo che specifica altri dettagli sul controllo del codice sorgente.

    1 Per abilitare la sincronizzazione automatica quando si configura l'integrazione del controllo del codice sorgente con Azure DevOps, è necessario essere il proprietario del repository Project Amministrazione istrator o GitHub. I collaboratori possono configurare solo il controllo del codice sorgente senza sincronizzazione automatica.
    La sincronizzazione automatica non funziona con l'automazione collegamento privato. Se si abilita il collegamento privato, le chiamate webhook del controllo del codice sorgente avranno esito negativo perché si trova all'esterno della rete.

    Screenshot that describes the Source control summary.

Nota

L'account di accesso per il repository del controllo del codice sorgente può essere diverso dall'account di accesso per il portale di Azure. Quando si configura il controllo del codice sorgente, verificare di avere eseguito l'accesso con l'account corretto per il repository del controllo del codice sorgente. In caso di dubbi, aprire una nuova scheda nel browser, disconnettersi da dev.azure.com, visualstudio.com o github.com e provare a riconnettersi al controllo del codice sorgente.

Configurare il controllo del codice sorgente in PowerShell

È anche possibile usare PowerShell per configurare il controllo del codice sorgente in Automazione di Azure. Per usare i cmdlet di PowerShell per questa operazione, è necessario un token di accesso personale. Usare il cmdlet New-AzAutomationSourceControl per creare la connessione al controllo del codice sorgente. Questo cmdlet richiede una stringa sicura per il token di accesso personale. Per informazioni su come creare una stringa sicura, vedere ConvertTo-SecureString.

Le sottosezioni seguenti illustrano la creazione di PowerShell della connessione al controllo del codice sorgente per GitHub, Azure DevOps (Git) e Azure DevOps (TFVC).

Creare una connessione al controllo del codice sorgente per GitHub

New-AzAutomationSourceControl -Name SCGitHub -RepoUrl https://github.com/<accountname>/<reponame>.git -SourceType GitHub -FolderPath "/MyRunbooks" -Branch main -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName>

Creare una connessione al controllo del codice sorgente per Azure DevOps (Git)

Nota

Azure DevOps (Git) usa un URL che accede dev.azure.com anziché visualstudio.com, usato nei formati precedenti. Il formato dell'URL precedente https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> è deprecato, ma è ancora supportato. È preferibile il nuovo formato.

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"

Creare una connessione di controllo del codice sorgente per Azure DevOps (TFVC)

Nota

Azure DevOps (TFVC) usa un URL che accede dev.azure.com anziché visualstudio.com, usato nei formati precedenti. Il formato dell'URL precedente https://<accountname>.visualstudio.com/<projectname>/_versionControl è deprecato, ma è ancora supportato. È preferibile il nuovo formato.

New-AzAutomationSourceControl -Name SCReposTFVC -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoTfvc -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"

Autorizzazioni dei token di accesso personale

Il controllo del codice sorgente richiede alcune autorizzazioni minime per i token di accesso personale. Le sottosezioni seguenti contengono le autorizzazioni minime necessarie per GitHub e Azure DevOps.

Autorizzazioni minime per il token di accesso personale per GitHub

La tabella seguente definisce le autorizzazioni minime per il token di accesso personale necessarie per GitHub. Per altre informazioni sulla creazione di un token di accesso personale in GitHub, vedere Creazione di un token di accesso personale per la riga di comando.

Ambito Descrizione
repo
repo:status Accedere allo stato del commit
repo_deployment Accedere allo stato della distribuzione
public_repo Accedere ai repository pubblici
repo:invite Inviti al repository di accesso
security_events Leggere e scrivere eventi di sicurezza
admin:repo_hook
write:repo_hook Scrivere gli hook del repository
read:repo_hook Leggere gli hook del repository
Autorizzazioni pat minime per Azure DevOps

L'elenco seguente definisce le autorizzazioni di pat minime necessarie per Azure DevOps. Per altre informazioni sulla creazione di un token di accesso personale in Azure DevOps, vedere Autenticare l'accesso con i token di accesso personali.

Ambito Tipo di accesso
Code Lettura
Project and team Lettura
Identity Lettura
User profile Lettura
Work items Lettura
Service connections Lettura, query, gestione1

1 L'autorizzazione Service connections è necessaria solo se è stata abilitata la sincronizzazione automatica.

Eseguire la sincronizzazione con il controllo del codice sorgente

Seguire questa procedura per eseguire la sincronizzazione con il controllo del codice sorgente.

  1. Selezionare l'origine dalla tabella nella pagina Controllo del codice sorgente.

  2. Fare clic su Avvia sincronizzazione per avviare il processo di sincronizzazione.

  3. Visualizzare lo stato del processo di sincronizzazione corrente o di quelli precedenti facendo clic sulla scheda Processi di sincronizzazione.

  4. Nel menu a discesa Controllo del codice sorgente selezionare un meccanismo di controllo del codice sorgente.

    Sync status

  5. Facendo clic su un processo è possibile visualizzarne l'output. Di seguito è riportato un esempio di output di un processo di sincronizzazione di un controllo del codice sorgente.

    ===================================================================
    
    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. Per la registrazione aggiuntiva è possibile selezionare Tutti i log nella pagina Riepilogo dei processi di sincronizzazione del Controllo del codice sorgente. Queste voci di log aggiuntive possono contribuire a risolvere i problemi che possono verificarsi quando si usa il controllo del codice sorgente.

Disconnettersi dal controllo del codice sorgente

Per disconnettersi da un repository del controllo del codice sorgente:

  1. Aprire Controllo del codice sorgente in Impostazioni account nell'account di Automazione.

  2. Selezionare il meccanismo di controllo del codice sorgente da rimuovere.

  3. Nella pagina Riepilogo del Controllo del codice sorgente fare clic su Elimina.

Gestire i problemi di codifica

Se più persone modificano i runbook nel repository del controllo del codice sorgente usando editor diversi, possono verificarsi problemi di codifica. Per altre informazioni su questa situazione, vedere Cause più comuni dei problemi di codifica.

Aggiornare il token di accesso personale

Non è al momento possibile usare il portale di Azure per aggiornare il token di accesso personale nel controllo del codice sorgente. Quando il token di accesso personale è scaduto o revocato, è possibile aggiornare il controllo del codice sorgente con un nuovo token di accesso in uno dei modi seguenti:

Passaggi successivi