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 di Automazione di Azure non supportano l'autenticazione a più fattori (MFA).
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
- Un repository di controllo del codice sorgente (GitHub o Azure DevOps)
- L'account di Automazione richiede un'identità gestita assegnata dal sistema o dall'utente. Se con l'account di Automazione non è stata configurata alcuna identità gestita, vedere Abilitare l'identità gestita assegnata dal sistema o Abilitare l'identità gestita assegnata dall'utente per crearla.
- Assegnare l'identità gestita assegnata dall'utente o dal sistema al ruolo Collaboratore nell'account di Automazione.
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 di automazione AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID
con il valore come ID client dell'identità assegnata dall'utente. L'Managed Identity
assegnata dall'utente deve essere abilitata e avere accesso collaboratore all'account di automazione. Se questa variabile non viene creata, per impostazione predefinita viene usata l'identità assegnata dal sistema.
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 è stato ritirato 30 settembre 2023. È consigliabile usare identità gestite.
Nota
In base a questa documentazione di Azure DevOps, il criterio Accesso ad applicazioni di terzi tramite OAuth è disabilitato 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 ad applicazioni di terzi tramite OAuth nel riquadro Criteri di Impostazioni organizzazione in Azure DevOps, potrebbe verificarsi l'errore SourceControl securityToken non valido. Di conseguenza, per evitare questo errore, assicurarsi di abilitare prima l'Accesso ad applicazioni di terzi tramite OAuth nel riquadro Criteri di Impostazioni organizzazione 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 di Automazione di Azure.
Aprire una console di PowerShell con privilegi elevati.
Accedere ad Azure eseguendo il comando
Connect-AzAccount
.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.
Nell'account di Automazione selezionare Controllo del codice sorgente e fare clic su Aggiungi.
Scegliere Tipo di controllo del codice sorgente e fare clic su Autentica.
Viene visualizzata una finestra del browser in cui si chiede di effettuare l'accesso. Seguire le istruzioni per completare l'autenticazione.
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 (controllo della versione di Team Foundation)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). Ramo 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 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 del 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 un amministratore del progetto o il proprietario del repository GitHub. I collaboratori possono solo configurare il controllo del codice sorgente senza sincronizzazione automatica.La sincronizzazione automatica
non funziona con il collegamento privato di automazione. Se si abilita il collegamento privato, le chiamate webhook del controllo del codice sorgente avranno esito negativo perché si trova all'esterno della rete.
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.
- L'autenticazione tra tenant non è supportata.
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 della connessione al controllo del codice sorgente con PowerShell per GitHub, Azure DevOps (Git) e Azure DevOps (controllo della versione di Team Foundation).
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 a 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 al controllo del codice sorgente per Azure DevOps (controllo della versione di Team Foundation)
Nota
Azure DevOps (controllo della versione di Team Foundation) usa un URL che accede a 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 |
Accedere agli inviti al repository |
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 minime per il token di accesso personale (PAT) per Azure DevOps
L'elenco seguente definisce le autorizzazioni minime per il token di accesso personale (PAT) necessarie per Azure DevOps. Per altre informazioni sulla creazione di un token di accesso personale (PAT) in Azure DevOps, vedere Autenticare l'accesso con 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.
Selezionare l'origine dalla tabella nella pagina Controllo del codice sorgente.
Fare clic su Avvia sincronizzazione per avviare il processo di sincronizzazione.
Visualizzare lo stato del processo di sincronizzazione corrente o di quelli precedenti facendo clic sulla scheda Processi di sincronizzazione.
Nel menu a discesa Controllo del codice sorgente selezionare un meccanismo di controllo del codice sorgente.
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 ==================================================================
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:
Aprire Controllo del codice sorgente in Impostazioni account nell'account di Automazione.
Selezionare il meccanismo di controllo del codice sorgente da rimuovere.
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:
- Usare l'API REST.
- Usare il cmdlet Update-AzAutomationSourceControl.
Passaggi successivi
- Per l'integrazione del controllo del codice sorgente del runbook con Visual Studio Codespaces, vedere Automazione di Azure: Integrazione del controllo del codice sorgente del runbook con Visual Studio Codespaces.