Esercizio - Configurare l'ambiente

Completato

Importante

Per eseguire questo esercizio è necessario disporre di una propria sottoscrizione di Azure e questo potrebbe comportare dei costi. Se non hai ancora una sottoscrizione di Azure, crea un account gratuito prima di iniziare.

Prima di iniziare a pubblicare il codice Bicep riutilizzabile dell'azienda di giocattoli, è necessario configurare l'ambiente. In questa sezione ci si assicurerà che gli ambienti Azure e GitHub siano configurati per completare il resto di questo modulo.

Per soddisfare questi obiettivi, è necessario:

  • Configurare un repository GitHub per questo modulo.
  • Clonare il repository nel computer.
  • Creare un gruppo di risorse in Azure.
  • Creare un segreto in GitHub.

Ottenere il repository GitHub

In questo caso verrà creato un nuovo repository GitHub basato su un repository modello. Il repository di modelli contiene i file necessari per iniziare con questo modulo.

I moduli di questo percorso di apprendimento sono da seguire in successione. A scopo di apprendimento, ogni modulo ha un repository di modelli GitHub associato.

Suggerimento

Anche se il modulo precedente è stato completato nel percorso di apprendimento, seguire queste istruzioni per creare un nuovo repository e assicurarsi di assegnargli un nuovo nome.

Iniziare dal repository dei modelli

Eseguire un modello che configura il repository GitHub.

Nel sito GitHub seguire questa procedura per creare un repository dal modello:

  1. Accedi a GitHub.

  2. Selezionare Usa questo modello>Crea un nuovo repository.

    Screenshot dell'interfaccia di GitHub che mostra il repository di modelli. Il pulsante per l'uso del modello è evidenziato.

  3. Per Proprietario, selezionare l'account GitHub.

  4. Immettere un nome repository per il nuovo progetto, ad esempio toy-reusable.

  5. Selezionare l'opzione Public (Pubblico).

    Quando si creano repository personalizzati, è possibile renderli privati. In questo modulo si useranno le funzionalità di GitHub che funzionano solo in combinazione con i repository pubblici e gli account GitHub Enterprise.

  6. Selezionare Create repository.

    Screenshot dell'interfaccia di GitHub che mostra la pagina di creazione del repository.

Importante

L'esercizio finale in questo modulo contiene importanti passaggi di pulizia. Assicurarsi di eseguire la procedura di pulizia anche se non si completa questo modulo.

Clonare il repository

Dopo aver creato una copia del repository modello nel proprio account, clonare il repository in locale in modo da iniziare a usarlo.

  1. Selezionare Codice e quindi selezionare l'icona Copia URL negli Appunti.

    Screenshot dell'interfaccia di GitHub che mostra il nuovo repository. Il pulsante Copia URL repository è evidenziato.

  2. Aprire Visual Studio Code.

  3. Aprire una finestra del terminale di Visual Studio Code selezionando Terminale>Nuovo terminale. La finestra si apre in genere nella parte inferiore della schermata.

  4. Nel terminale, passare alla directory all'interno della quale si vuole clonare il repository GitHub nel computer locale. Ad esempio, per clonare il repository all'interno della cartella dei repository, eseguire il comando seguente:

    cd repositories
    
  5. Digitare git clone e quindi incollare l'URL copiato in precedenza. Il comando sarà simile al seguente:

    git clone https://github.com/mygithubuser/toy-reusable.git
    
  6. Riaprire Visual Studio Code nella cartella del repository eseguendo il comando seguente nel terminale di Visual Studio Code:

    code --reuse-window toy-reusable
    

Accedere ad Azure

Per usare i gruppi di risorse in Azure, accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi di aver installato gli strumenti dell'interfaccia della riga di comando di Azure e l'estensione di Account di Azure per Visual Studio Code.

  1. Nel menu Terminale selezionare Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.

    La shell predefinita è in genere pwsh, come illustrato sul lato destro della finestra del terminale.

    Screenshot della finestra del terminale di Visual Studio Code, in cui pwsh viene visualizzato come opzione della shell.

  2. Selezionare l'elenco a discesa Avvia profilo e quindi selezionare Azure Cloud Shell (Bash).

    Screenshot della finestra del terminale di Visual Studio Code. Vengono visualizzati l'elenco a discesa della shell del terminale e la voce di menu Azure Cloud Shell (Bash).

    Verrà aperta una nuova shell.

Accedere ad Azure tramite l'interfaccia della riga di comando di Azure

  1. Nel terminale di Visual Studio Code eseguire il comando seguente per accedere ad Azure:

    az login
    
  2. Nel browser visualizzato accedere al proprio account Azure.

Per usare i gruppi di risorse in Azure, accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi di aver installato Azure PowerShell e l'estensione di Account di Azure per Visual Studio Code.

  1. Nel menu Terminale selezionare Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.

    La shell predefinita è in genere pwsh, come illustrato sul lato destro della finestra del terminale.

    Screenshot della finestra del terminale di Visual Studio Code, in cui pwsh viene visualizzato come opzione della shell.

  2. Selezionare l'elenco a discesa Avvia profilo e quindi selezionare Azure Cloud Shell (PowerShell).

    Screenshot della finestra del terminale di Visual Studio Code. Vengono visualizzati l'elenco a discesa della shell del terminale e la voce di menu Azure Cloud Shell (PowerShell).

    Verrà aperta una nuova shell.

Accedere ad Azure usando Azure PowerShell

  1. Nel terminale di Visual Studio Code eseguire il comando seguente per accedere ad Azure:

    Connect-AzAccount -UseDeviceAuthentication
    
  2. Seguire le istruzioni del comando per accedere all'account di Azure.

Creare un'identità dei carichi di lavoro

Creare quindi un'identità dei carichi di lavoro in Microsoft Entra ID per il flusso di lavoro di distribuzione.

Per creare le identità dei carichi di lavoro, i comandi dell'interfaccia della riga di comando di Azure usano jq per analizzare i dati dall'output JSON. Se jq non è installato, è possibile usare Bash in Azure Cloud Shell per creare l'identità dei carichi di lavoro, il gruppo di risorse e l'assegnazione di ruolo e preparare i segreti di GitHub.

  1. Eseguire il codice seguente per definire variabili per il nome utente e il nome del repository di GitHub. Assicurarsi di sostituire mygithubuser con il nome utente di GitHub, annotato in precedenza in questo esercizio. Assicurarsi inoltre di specificare il nome del repository di GitHub corretto.

    githubOrganizationName='mygithubuser'
    githubRepositoryName='toy-reusable'
    
  2. Creare un'identità dei carichi di lavoro per il flusso di lavoro di distribuzione.

    applicationRegistrationDetails=$(az ad app create --display-name 'toy-reusable')
    applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id')
    applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId')
    
    az ad app federated-credential create \
       --id $applicationRegistrationObjectId \
       --parameters "{\"name\":\"toy-reusable-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
    
  1. Eseguire il codice seguente per definire le variabili per il nome utente e il nome del repository di GitHub. Assicurarsi di sostituire mygithubuser con il nome utente di GitHub, annotato in precedenza in questo esercizio. Assicurarsi inoltre di specificare il nome del repository di GitHub corretto.

    $githubOrganizationName = 'mygithubuser'
    $githubRepositoryName = 'toy-reusable'
    
  2. Creare un'identità dei carichi di lavoro per il flusso di lavoro di distribuzione.

    $applicationRegistration = New-AzADApplication -DisplayName 'toy-reusable'
    New-AzADAppFederatedCredential `
       -Name 'toy-reusable-branch' `
       -ApplicationObjectId $applicationRegistration.Id `
       -Issuer 'https://token.actions.githubusercontent.com' `
       -Audience 'api://AzureADTokenExchange' `
       -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
    

Creare un gruppo di risorse in Azure e concedere l'accesso all'identità dei carichi di lavoro

Creare quindi un gruppo di risorse per il sito Web. Questo processo concede anche all'identità dei carichi di lavoro il ruolo Collaboratore nel gruppo di risorse, che consente la distribuzione del flusso di lavoro nel gruppo di risorse.

Eseguire i comandi seguenti dell'interfaccia della riga di comando di Azure nel terminale di Visual Studio Code:

resourceGroupResourceId=$(az group create --name ToyReusable --location westus3 --query id --output tsv)

az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
  --assignee $applicationRegistrationAppId \
  --role Contributor \
  --scope $resourceGroupResourceId

Eseguire i comandi di Azure PowerShell seguenti nel terminale di Visual Studio Code:

$resourceGroup = New-AzResourceGroup -Name ToyReusable -Location westus3

New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
  -ApplicationId $applicationRegistration.AppId `
  -RoleDefinitionName Contributor `
  -Scope $resourceGroup.ResourceId

Preparare i segreti di GitHub

Eseguire il codice seguente per visualizzare i valori che è necessario creare come segreti di GitHub:

echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"

Prendere nota del valore dell'ID applicazione per AZURE_CLIENT_ID. È possibile usare questo valore al momento di pulire le risorse al termine di questo modulo.

Creare segreti di GitHub

È stata completata la creazione di un'identità dei carichi di lavoro e di un gruppo di risorse in cui è possibile distribuirla. Creare ora un segreto in GitHub Actions.

  1. Passare al repository GitHub nel browser.

  2. Selezionare Impostazioni>Segreti e variabili>Azioni.

  3. Selezionare Nuovo segreto repository.

    Screenshot dell'interfaccia di GitHub che mostra la pagina ''Segreti''. Il pulsante

  4. Assegnare al segreto il nome AZURE_CLIENT_ID.

  5. Nel campo Value incollare il GUID dalla prima riga dell'output del terminale. Non includere AZURE_CLIENT_ID, i due punti o gli spazi nel valore.

  6. Selezionare Aggiungi segreto.

    Screenshot dell'interfaccia di GitHub che mostra la pagina

  7. Ripetere il processo per creare i segreti per AZURE_TENANT_ID e AZURE_SUBSCRIPTION_ID, copiando i valori dai campi corrispondenti nell'output del terminale.

  8. Verificare che l'elenco dei segreti mostri ora tutti e tre i segreti.

    Screenshot dell'interfaccia di GitHub che mostra l'elenco dei segreti.