Übung: Einrichten Ihrer Umgebung

Abgeschlossen

Wichtig

Sie benötigen für diese Übung ein eigenes Azure-Abonnement. Außerdem fallen möglicherweise Gebühren für Sie an. Wenn Sie noch kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Bevor Sie die Pull Request-Workflows Ihres Spielzeugunternehmens einrichten, müssen Sie Ihre Umgebung konfigurieren.

In dieser Lerneinheit stellen Sie sicher, dass Ihre Azure- und GitHub-Umgebungen so eingerichtet sind, dass Sie den Rest dieses Moduls erfolgreich absolvieren können.

So erreichen Sie diese Ziele:

  • Richten Sie ein GitHub-Repository für dieses Modul ein.
  • Klonen Sie das Repository auf Ihrem Computer.
  • Erstellen Sie eine Workload-Identität in Microsoft Entra ID.
  • Erstellen Sie ein Geheimnis in GitHub.

Abrufen des GitHub-Repositorys

In diesem Abschnitt richten Sie Ihr GitHub-Repository ein, um den Rest dieses Moduls abzuschließen, indem Sie ein neues Repository basierend auf einem Vorlagen-Repository erstellen. Das Vorlagenrepository enthält die Dateien, die Sie für den Einstieg in dieses Modul benötigen.

Die Module in diesem Lernpfad sind fortschreitend angeordnet. Zu Lernzwecken verfügt jedes Modul über ein zugeordnetes GitHub Vorlagenrepository.

Tipp

Auch wenn Sie das vorherige Modul im Lernpfad bereits abgeschlossen haben, sollten Sie diese Anweisungen befolgen, um ein neues Repository mit einem neuen Namen zu erstellen.

Starten über das Vorlagenrepository

Führen Sie eine Vorlage aus, mit der Ihr GitHub-Repository eingerichtet wird.

Erstellen Sie auf der GitHub-Website anhand der Vorlage ein Repository, indem Sie folgendermaßen vorgehen:

  1. Wählen Sie Diese Vorlage verwenden>Neues Repository erstellen aus.

    Screenshot der GitHub-Benutzeroberfläche mit dem Vorlagenrepository und hervorgehobener Schaltfläche „Use this template“ (Diese Vorlage verwenden)

  2. Notieren Sie sich Ihren GitHub-Benutzernamen oder den Namen Ihrer Organisation. Im Beispiel lautet der GitHub-Benutzername mygithubuser. Sie benötigen diesen Namen in Kürze.

  3. Geben Sie einen Namen für das neue Projekt ein, z. B. toy-website-auto-review.

  4. Wählen Sie die Option Public aus.

    Wenn Sie Ihre eigenen Repositorys erstellen, können Sie diese als privat festlegen. In diesem Modul arbeiten Sie mit einigen Features von GitHub, die nur mit öffentlichen Repositorys und GitHub Enterprise-Konten funktionieren.

  5. Klicken Sie auf Create repository (Repository erstellen).

    Screenshot: GitHub-Benutzeroberfläche mit der Seite zur Repositoryerstellung

Klonen des Repositorys

Sie verfügen nun über eine Kopie des Vorlagenrepositorys in Ihrem eigenen Konto. Klonen Sie dieses Repository lokal, damit Sie damit arbeiten können.

  1. Wählen Sie Code und dann das Kopiersymbol aus.

    Screenshot der GitHub-Benutzeroberfläche mit dem neuen Repository und hervorgehobener Schaltfläche zum Kopieren der Repository-URL

  2. Öffnen Sie Visual Studio Code.

  3. Öffnen Sie in Visual Studio Code ein neues Terminalfenster, indem Sie auf Terminal>Neues Terminal klicken. Das Fenster wird in der Regel am unteren Bildschirmrand geöffnet.

  4. Navigieren Sie im Terminal zu dem Verzeichnis, in dem Sie das GitHub-Repository auf Ihrem lokalen Computer klonen möchten. Führen Sie beispielsweise den folgenden Befehl aus, um das Repository in den Ordner toy-website-auto-review zu klonen:

    cd toy-website-auto-review
    
  5. Geben Sie git clone ein, und fügen Sie die zuvor kopierte URL ein. Das Ergebnis sollte in etwa wie folgt aussehen:

    git clone https://github.com/mygithubuser/toy-website-auto-review.git
    
  6. Öffnen Sie Visual Studio Code erneut im Repositoryordner, indem Sie den folgenden Befehl am Visual Studio Code-Terminal ausführen:

    code -r toy-website-auto-review
    

Anmelden bei Azure

Nachdem Sie das Repository lokal auf Ihren Computer geklont haben, melden Sie sich bei Ihrer Azure-Umgebung an. Sie verwenden Ihr Azure-Konto, um eine Workloadidentität für Ihre GitHub Actions-Workflows zu erstellen.

  1. Führen Sie im Visual Studio Code-Terminal den folgenden Befehl aus, um sich bei Azure anzumelden:

    az login
    
  2. Melden Sie sich im Browserfenster, das daraufhin geöffnet wird, in Ihrem Azure-Konto an.

  1. Melden Sie sich im Visual Studio Code-Terminal bei Azure an, indem Sie den folgenden Befehl ausführen:

    Connect-AzAccount
    
  2. Melden Sie sich im Browserfenster, das daraufhin geöffnet wird, in Ihrem Azure-Konto an.

Erstellen einer Workloadidentität

Später in diesem Microsoft Learn-Modul erstellt Ihr Pull Request-Workflow Ressourcengruppen und Ressourcen in Ihrem Abonnement. Zum Bereitstellen von Ressourcen müssen Sie eine Workloadidentität erstellen und ihr die Rolle „Mitwirkender“ für Ihr Abonnement zuweisen.

Warnung

Die hier erstellte Workloadidentität verfügt über umfassende Zugriffsrechte auf Ihr Azure-Abonnement. Um versehentliche Probleme zu vermeiden, verwenden Sie ein Nicht-Produktionsabonnement. Führen Sie diese Schritte nicht in einer Umgebung aus, die eine Ihrer Produktionsworkloads enthält.

In Ihren eigenen Workflows zur Überprüfung von Pull Requests wird empfohlen, ein dediziertes Azure-Abonnement zu verwenden.

Zum Erstellen der Workloadidentitäten verwenden die Azure CLI-Befehle jq, um Daten aus der JSON-Ausgabe zu parsen. Wenn Sie jq nicht installiert haben, können Sie Bash in Azure Cloud Shell verwenden, um die Workloadidentität, die Ressourcengruppe und die Rollenzuweisung zu erstellen und die GitHub-Geheimnisse vorzubereiten.

  1. Führen Sie den folgenden Code aus, um Variablen für Ihren GitHub-Benutzernamen und den Namen Ihres Repositorys zu definieren. Stellen Sie sicher, dass Sie mygithubuser durch Ihren GitHub-Benutzernamen ersetzen, den Sie zuvor in dieser Übung notiert haben. Stellen Sie außerdem sicher, dass Sie den richtigen GitHub-Repositorynamen angeben.

    githubOrganizationName='mygithubuser'
    githubRepositoryName='toy-website-auto-review'
    
  2. Erstellen Sie eine Workloadidentität für Ihren Bereitstellungsworkflow.

    applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-auto-review')
    applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id')
    applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId')
    
    az ad app federated-credential create \
       --id $applicationRegistrationObjectId \
       --parameters "{\"name\":\"toy-website-auto-review\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:pull_request\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
    
  1. Führen Sie den folgenden Code aus, um Variablen für Ihren GitHub-Benutzernamen und den Namen Ihres Repositorys zu definieren. Stellen Sie sicher, dass Sie mygithubuser durch Ihren GitHub-Benutzernamen ersetzen, den Sie zuvor in dieser Übung notiert haben. Stellen Sie außerdem sicher, dass Sie den richtigen GitHub-Repositorynamen angeben.

    $githubOrganizationName = 'mygithubuser'
    $githubRepositoryName = 'toy-website-auto-review'
    
  2. Erstellen Sie eine Workloadidentität für Ihren Bereitstellungsworkflow.

    $applicationRegistration = New-AzADApplication -DisplayName 'toy-website-auto-review'
    New-AzADAppFederatedCredential `
       -Name 'toy-website-auto-review' `
       -ApplicationObjectId $applicationRegistration.Id `
       -Issuer 'https://token.actions.githubusercontent.com' `
       -Audience 'api://AzureADTokenExchange' `
       -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):pull_request"
    

Gewähren von Zugriff auf Ihr Abonnement für die Workloadidentität

Als Nächstes erstellen Sie eine Ressourcengruppe für Ihre Website. Dadurch wird der Workloadidentität auch die Rolle „Mitwirkender“ für die Ressourcengruppe gewährt, damit Ihr Workflow eine Bereitstellung in der Ressourcengruppe durchführen kann.

  1. Führen Sie im Visual Studio Code-Terminal die folgenden Azure CLI-Befehle aus:

    az ad sp create --id $applicationRegistrationObjectId
    az role assignment create \
       --assignee $applicationRegistrationAppId \
       --role Contributor
    
  1. Führen Sie im Visual Studio Code-Terminal die folgenden Azure PowerShell-Befehle aus:

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

Vorbereiten von GitHub-Geheimnissen

Führen Sie den folgenden Code aus, um die Werte anzuzeigen, die Sie als GitHub-Geheimnisse erstellen müssen:

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)"

Notieren Sie sich für AZURE_CLIENT_ID den Wert Ihrer Anwendungs-ID. Sie können mithilfe dieses Werts die Ressourcen bereinigen, nachdem Sie das Modul abgeschlossen haben.

Erstellen von GitHub-Geheimnissen

Sie haben eine Workloadidentität erstellt und ihr die Berechtigung erteilt, Bereitstellungen im Abonnement durchzuführen. Als Nächstes erstellen Sie Geheimnisse in GitHub Actions.

  1. Navigieren Sie im Browser zu Ihrem GitHub-Repository.

  2. Wählen Sie Einstellungen>Geheimnisse und Variablen>Aktionen aus.

  3. Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.

    Screenshot der GitHub-Benutzeroberfläche mit der Seite „Geheimnisse“ mit hervorgehobener Schaltfläche „New repository secret“ (Neues Repositorygeheimnis)

  4. Nennen Sie das Geheimnis AZURE_CLIENT_ID.

  5. Fügen Sie in das Feld Wert die GUID aus der ersten Zeile der Terminalausgabe ein. Fügen Sie AZURE_CLIENT_ID, den Doppelpunkt und Leerzeichen nicht in den Wert ein.

  6. Klicken Sie auf Add secret (Geheimnis hinzufügen).

    Screenshot der GitHub-Benutzeroberfläche mit der Seite „New Secret“ (Neues Geheimnis) mit ausgefülltem Namen und Wert und hervorgehobener Schaltfläche „Add secret“ (Geheimnis hinzufügen)

  7. Wiederholen Sie den Vorgang, um die Geheimnisse für AZURE_TENANT_ID und AZURE_SUBSCRIPTION_ID zu erstellen, indem Sie die Werte aus den entsprechenden Feldern der Terminalausgabe kopieren.

  8. Vergewissern Sie sich, dass in der Liste der Geheimnisse jetzt alle drei Geheimnisse angezeigt werden.

    Screenshot: GitHub-Benutzeroberfläche mit der Liste der Geheimnisse