2. Completare i prerequisiti

Servizi di Azure DevOps

Prima di usare ELM, verificare che i requisiti seguenti siano soddisfatti nei servizi di Azure DevOps e GitHub Enterprise Cloud con residenza dei dati.

Annotazioni

L'installazione dei prerequisiti usa sia il portale Azure DevOps che l'interfaccia utente GitHub (per attività monouso, ad esempio la creazione di una connessione al servizio, la registrazione di un agente e la creazione di un pat) e la riga di comando (per l'installazione degli strumenti). Ogni sezione viene etichettata in modo da sapere dove lavorare.

Requisiti del repository di origine e di destinazione

  • La migrazione deve provenire da Azure DevOps Services (dev.azure.com). Azure DevOps Server non è supportato.
  • Un'organizzazione GitHub Enterprise Cloud di destinazione con residenza dei dati deve già esistere.
  • Il nome del repository GitHub di destinazione non deve essere in uso.

Per ottenere il GUID del repository Azure DevOps, scegliere una delle schede seguenti:

az repos show --repository <repo-name> --query id -o tsv

Il comando restituisce il GUID del repository. Salvarlo per usarlo all'avvio della migrazione.

Requisiti di accesso

Servizi di Azure DevOps

Requisito dettagli
Autorizzazione Enterprise Live Migrations È necessario disporre dell'autorizzazione Enterprise Live Migrations: Manage Migrations impostata su Consenti a livello di repository. Per verificare, passare a Project Impostazioni>Repositories>Security e verificare che l'account utente o il gruppo disponga di questa autorizzazione. In caso contrario, contatta l'amministratore della raccolta di progetti (PCA) o l'amministratore del progetto (PA) per richiedere l'accesso. Per altre informazioni, vedere Impostare le autorizzazioni del repository Git.
Disponibilità dell'agente Linux ospitato autonomamente Se non è disponibile alcun agente Linux ospitato autonomamente, un PCA o chi dispone delle autorizzazioni per amministrare la coda degli agenti deve crearne e registrarne uno.
Autorizzazione di creazione della connessione al servizio Un utente con le autorizzazioni appropriate deve creare la connessione al servizio che usa il GitHub PAT.

GitHub Enterprise Cloud con residenza dei dati

  • Un amministratore GitHub Enterprise deve creare il token di accesso personale e poter creare una connessione al servizio in Azure DevOps. L'amministratore condivide quindi l'ID connessione del servizio con la persona che esegue la migrazione.

Configurazione dell'autenticazione

Creare due PT in GitHub:

  • Un PAT per la connessione al servizio.
  • Un PAT personale per l'operatore di migrazione.

Creare la connessione del servizio pat e la connessione al servizio

  1. In GitHub passare a Impostazioni>Impostazioni di sviluppo e selezionare Token di accesso personali.

  2. Come amministratore di GitHub Enterprise, creare un token di accesso personale classico con le autorizzazioni seguenti:

    • repo (tutti)
    • workflow
    • read:org
    • read:user
    • admin:enterprise (tutti)
  3. Copiare il pat e archiviarlo in modo sicuro.

  4. Selezionare Configura SSO per concedere l'accesso pat all'organizzazione di destinazione.

  5. Accedi alla tua organizzazione di Azure DevOps.

  6. Vai a Impostazioni progetto>Pipelines>Connessioni di servizio.

  7. Selezionare Nuova connessione al servizio, scegliere GitHub Enterprise Server e quindi selezionare Next.

    Schermata che mostra il modulo di connessione al servizio GitHub Enterprise Server nella finestra di dialogo della connessione al servizio di Azure DevOps.

  8. Per Metodo di autenticazione selezionare Token di accesso personale.

  9. Inserire l'URL di GitHub Enterprise e incollare il GitHub PAT dal passaggio 3.

  10. Verificare e salvare la connessione al servizio.

  11. Aprire la connessione al servizio e copiare l'ID. Questo ID è necessario all'avvio della migrazione.

Crea il PAT di migrazione personale in GitHub (portale di GitHub)

La persona che esegue la migrazione crea il token di accesso personale e lo usa per eseguire l'autenticazione per GitHub.

  1. In GitHub passare a Impostazioni>Impostazioni di sviluppo e selezionare Token di accesso personali.

  2. Creare un token di accesso personale classico con gli ambiti seguenti:

    • repo (completo)
    • workflow
    • admin:org
    • user:email
  3. Copiare il pat e archiviarlo in modo sicuro.

Strumenti necessari

I passaggi descritti in questa sezione usano la riga di comando. Installare il interfaccia della riga di comando di Azure e l'estensione dell'interfaccia della riga di comando di Azure DevOps nel computer usato per eseguire i comandi di migrazione.

  1. Installare il interfaccia della riga di comando di Azure. Per altre informazioni, vedere Come installare il interfaccia della riga di comando di Azure.

    Ad esempio, aprire Visual Studio Code ed eseguire:

    winget install -e --id Microsoft.AzureCLI
    
  2. Installare l'estensione dell'interfaccia della riga di comando Azure DevOps. Per altre informazioni, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps:

    az extension add -n azure-devops
    

    I comandi az devops migrations sono inclusi nell'estensione standard azure-devops. Non è disponibile un'estensione ELM separata da installare.

  3. Verificare l'estensione caricata:

    az devops migrations --help
    
  4. Per aggiornare un'installazione esistente:

    az extension update -n azure-devops
    
  5. (Scelta consigliata) Impostare l'organizzazione Azure DevOps come predefinita, in modo che ogni comando migrations sia destinato all'host corretto:

    az devops configure --defaults organization=https://dev.azure.com/<org>
    

    Se si ignora questo passaggio e si eseguono comandi da una cartella in cui il remote git punta a un'organizzazione diversa, il rilevamento automatico della CLI seleziona invece quel remote anziché il valore di --org. Per disattivarlo per un singolo comando, aggiungi --detect false.

Configurare un agente Linux ospitato autonomamente

Usare il portale di Azure DevOps per selezionare o creare un pool di agenti e quindi eseguire gli script di installazione dell'agente in un computer Linux.

  1. In Impostazioni progetto, vai a Pool di agenti in Pipeline, scegli il pool che vuoi usare per la migrazione e salva il nome del pool.

  2. Se non si dispone di un pool, creare un agente Linux ospitato autonomamente. Per altre informazioni, vedere Deploy an Azure Pipelines agent on Linux. Versione breve:

    1. Verificare di avere l'autorizzazione per registrare un agente. Se sei un PCA, hai già questo accesso.
    2. Nelle impostazioni dell'organizzazione di Azure DevOps, vai a Pipelines>Pool di agenti.
    3. Selezionare il pool Default o quello ospitato autonomamente.
    4. Aprire la scheda Agenti e selezionare Nuovo agente.
    5. Nella finestra di dialogo Ottieni l'agente selezionare Linux e scaricare l'agente.
    6. Sul computer Linux, decomprimete l'agente nella directory desiderata e passate quindi a tale directory.
    7. Eseguire ./config.sh e quindi ./run.sh.

Importante

È necessario usare un agente basato su Linux. gli agenti basati su Windows e macOS non sono supportati.

Attivare il controllo

ELM registra gli eventi del ciclo di vita della migrazione nel log di controllo di Azure DevOps, tra cui avvio, sospensione, ripresa, passaggio pianificato e abbandono. Gli amministratori possono visualizzare questi eventi in Controllo delle impostazioni>dell'organizzazione.

Configurazione facoltativa per scenari ibridi

Usare questa sezione se si prevede di continuare a usare Azure DevOps con GitHub dopo la migrazione.

Installare Azure Boards su GitHub

Se si prevede di continuare a usare Azure Boards dopo la migrazione, un amministratore aziendale di GitHub deve installare l'app Azure Boards nell'organizzazione GitHub prima dell'avvio della migrazione. Questa app consente a ELM di creare la connessione a Boards in modo che i team possano collegare i commit di GitHub e le pull request agli elementi di lavoro di Azure DevOps.

Per verificare l'installazione, passare a https://<enterpriseUrl>/organizations/<orgName>/settings/installations e verificare che Azure Boards sia elencato. Se Azure Boards non è elencato, chiedere a un amministratore dell'organizzazione di GitHub di installare l'app Azure Boards nel catalogo delle app aziendali.

Crea una connessione di servizio per la riconfigurazione della pipeline

Se si prevede di usare Azure DevOps e GitHub in una configurazione ibrida e connettere il repository GitHub a Azure Pipelines, completare questi passaggi prima di avviare la migrazione.

  1. Verificare che l'app Azure Pipelines sia installata nell'organizzazione GitHub all'indirizzo https://<enterpriseUrl>/organizations/<orgName>/settings/installations.
  2. Se Azure Pipelines non è elencato, chiedere a un amministratore dell'organizzazione di GitHub di installare l'app: https://<enterprise>.ghe.com/apps/external-app/azure-pipelines. Selezionare Configura e assicurarsi che l'accesso al repository sia impostato su Tutti i repository.
  3. In Azure DevOps, in Impostazioni Project selezionare Connessioni al servizio.
  4. Selezionare Nuova connessione al servizio e scegliere GitHub Enterprise Cloud con residenza dei dati.
  5. Aggiungere l'URL GitHub e il nome dell'organizzazione e quindi selezionare Autorizza.
  6. Aggiungere un nome di connessione al servizio e quindi selezionare Salva.
  7. Aprire la connessione al servizio creata e copiare l'ID. Questo ID è necessario per la riconfigurazione della pipeline.

Valori da raccogliere per la migrazione basata su CLI

Usare questo elenco di controllo se si prevede di avviare e gestire la migrazione usando i comandi dell'interfaccia della riga di comando di Azure DevOps anziché l'interfaccia utente Azure DevOps.

Campo Example Il tuo valore
URL dell'organizzazione Azure DevOps https://dev.azure.com/myorg
Azure DevOps nome del progetto MyProject
Nome del repository di Azure DevOps my-repo
GUID del repository di Azure DevOps xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
URL dell'organizzazione di GitHub di destinazione https://contoso.ghe.com/MyOrg
Nome del repository di destinazione MyProject-MyRepo
ID di connessione del servizio cd32d354-xxxx-xxxx-xxxx-xxxx
ID della connessione della pipeline 9f6aa94e-xxxx-xxxx-xxxx-xxxx
Nome del pool di agenti Linux ospitati autonomamente Default

Passo successivo