Dela via


Distribuera till Azure Stack Hub App Service med hjälp av Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Den här artikeln beskriver steg för steg hur du konfigurerar en CI/CD-pipeline för att distribuera ett program till apptjänster i en Azure Stack Hub-instans med hjälp av Azure Pipelines.

I den här artikeln får du lära dig att skapa eller verifiera:

  • Autentiseringsuppgifter för Azure Stack Hub-tjänstens huvudnamn (SPN) för pipelinen.
  • En webbapp i din Azure Stack Hub-instans.
  • En tjänstanslutning till din Azure Stack Hub-instans.
  • En lagringsplats med din appkod som ska distribueras till din app

Förutsättningar

Skapa eller verifiera ditt SPN

Ett SPN tillhandahåller rollbaserade autentiseringsuppgifter så att processer utanför Azure kan ansluta till och interagera med resurser. Du behöver ett SPN med deltagaråtkomst och de attribut som anges i de här anvisningarna för användning med din Azure DevOps-pipeline.

Som användare av Azure Stack Hub har du inte behörighet att skapa SPN. Du måste begära det här huvudkontot från molnoperatören. Instruktionerna tillhandahålls här så att du kan skapa SPN om du är molnoperatör, eller så kan du verifiera SPN om du är utvecklare med ett SPN i arbetsflödet som tillhandahålls av en molnoperatör.

Molnoperatören måste skapa SPN med hjälp av Azure CLI.

Följande kodfragment skrivs för en Windows-dator med PowerShell-prompten med Azure CLI för Azure Stack Hub. Om du använder CLI på en Linux-dator och bash tar du antingen bort linjetillägget eller ersätter dem med en \.

  1. Förbered värdena för följande parametrar som används för att skapa SPN:

    Parameter Exempel Description
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Slutpunkten för resurshantering.
    suffix-storage-endpoint "orlando.azurestack.corp.microsoft.com" Slutpunktssuffixet för lagringskonton.
    suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Dns-suffixet för Key Vault-tjänsten.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Resurs-ID:t för Azure Active Directory.
    endpoint-sql-management https://notsupported Sql Server-hanteringsslutpunkten. Ange detta till https://notsupported
    profil 2019-03-01-hybrid Profil som ska användas för det här molnet.
  2. Öppna kommandoradsverktyget, till exempel Windows PowerShell eller Bash, och logga in. Ange följande kommando:

    az login
    
  3. register Använd kommandot för en ny miljö eller update kommandot om du använder en befintlig miljö. Använd följande kommando.

    az cloud register `
        -n "AzureStackUser" `
        --endpoint-resource-manager "https://management.<local>.<FQDN>" `
        --suffix-storage-endpoint ".<local>.<FQDN>" `
        --suffix-keyvault-dns ".vault.<local>.<FQDN>" `
        --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" `
        --endpoint-sql-management https://notsupported  `
        --profile 2019-03-01-hybrid
    
  4. Hämta ditt prenumerations-ID och resursgrupp som du vill använda för SPN.

  5. Skapa SPN med följande kommando med prenumerations-ID och resursgrupp:

    az ad sp create-for-rbac --name "myApp" --role contributor `
        --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} `
        --sdk-auth
    

    Om du inte har behörighet som molnoperatör kan du även logga in med det SPN som tillhandahålls av molnoperatören. Du behöver klient-ID: t, hemligheten och ditt klientorganisations-ID. Med dessa värden kan du använda följande Azure CLI-kommandon för att skapa JSON-objektet som innehåller de värden som du behöver för att skapa tjänstanslutningen.

    az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions
    az account show
    
  6. Kontrollera det resulterande JSON-objektet. Du använder JSON-objektet för att skapa tjänstanslutningen. JSON-objektet ska ha följande attribut:

    {
      "environmentName": "<Environment name>",
      "homeTenantId": "<Tenant ID for the SPN>",
      "id": "<Application ID for the SPN>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<Tenant name>",
      "state": "Enabled",
      "tenantId": "<Tenant ID for the SPN>",
      "user": {
        "name": "<User email address>",
        "type": "user"
      }
    }
    

Skapa webbappens mål

  1. Logga in på Azure Stack Hub-portalen.
  2. Välj Skapa en resurs>Webb + Mobilapp>.
  3. Välj din prenumeration.
  4. Skapa eller välj en resursgrupp.
  5. Skriv namnet på din app. Namnet på appen visas i URL:en för din app, till exempel yourappname.appservice.<region>.<FQDN>
  6. Välj körningsstacken för din app. Körningen måste matcha den kod som du planerar att använda för din webbapp.
  7. Välj det operativsystem (OS) som ska vara värd för din körning och app.
  8. Välj eller skriv Region för din Azure Stack Hub-instans.
  9. Välj planen baserat på din Azure Stack Hub-instans, region och appoperativsystem.
  10. Välj Granska + skapa.
  11. Granska din webbapp. Välj Skapa.
  12. Välj Gå till resurs.
  13. Anteckna appnamnet. Du lägger till namnet i yml-dokumentet som definierar din pipeline på lagringsplatsen.

Skapa en tjänstanslutning

Skapa en tjänstanslutning. Du behöver värdena från ditt SPN och namnet på din Azure Stack Hub-prenumeration.

  1. Logga in på din Azure DevOps-organisation och gå sedan till projektet.

  2. Välj Projektinställningar och sedan Tjänstanslutningar.

  3. Välj Tjänstanslutningar>Ny tjänstanslutning.

  4. Välj Azure Resource Manager och välj sedan Nästa.

  5. Välj Tjänstens huvudnamn (manuellt).

  6. Välj Azure Stack från Miljö.

  7. Fyll i formuläret och välj sedan Verifiera och spara.

  8. Ge tjänstanslutningen ett namn. (Du behöver namnet på tjänstanslutningen för att skapa din yaml-pipeline).

    Skapa en tjänstanslutning för Azure Stack Hub

Skapa din lagringsplats och lägg till pipeline

  1. Om du inte har lagt till webbappkoden på lagringsplatsen lägger du till den nu.

  2. Öppna lagringsplatsen. Välj lagringsplatsen och välj Bläddra.

  3. Välj Pipelines

  4. Välj Ny pipeline.

  5. Välj Azure Repos Git.

  6. Välj din lagringsplats.

  7. Välj Startpipeline.

  8. Gå tillbaka till lagringsplatsen och öppna azure-pipelines.yml.

  9. Lägg till följande yaml:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger:
    - main
    variables:
      azureSubscription: '<your connection name>'
      VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
    steps:
    - task: AzureWebApp@1
      displayName: Azure Web App Deploy
      inputs:
        azureSubscription: $(azureSubscription)
        appName: <your-app-name>
        package: '$(System.DefaultWorkingDirectory)'
    

    Anteckning

    Om du vill ignorera SSL-fel anger du en variabel med namnet VSTS_ARM_REST_IGNORE_SSL_ERRORS till värdet true i bygg- eller versionspipelinen, som i det här exemplet.

  10. azureSubscription Uppdatera värdet med namnet på tjänstanslutningen.

  11. appName Uppdatera med appnamnet. Nu är du redo att distribuera.

Information om hur du använder Azure-uppgifter med Azure Stack Hub

Följande Azure-uppgifter verifieras med Azure Stack Hub:

Nästa steg