Share via


Implementeren in Azure Stack Hub App Service met behulp van Azure Pipelines

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

Dit artikel begeleidt u bij het instellen van een CI/CD-pijplijn voor het implementeren van een toepassing naar app-services in een Azure Stack Hub-exemplaar met behulp van Azure Pipelines.

In dit artikel leert u hoe u het volgende kunt maken of valideren:

  • Spn-referenties (Service Principal) van Azure Stack Hub voor de pijplijn.
  • Een web-app in uw Azure Stack Hub-exemplaar.
  • Een serviceverbinding met uw Azure Stack Hub-exemplaar.
  • Een opslagplaats met uw app-code om te implementeren in uw app

Vereisten

Uw SPN maken of valideren

Een SPN biedt op rollen gebaseerde referenties, zodat processen buiten Azure verbinding kunnen maken met en communiceren met resources. U hebt een SPN met inzendertoegang en de kenmerken die in deze instructies zijn opgegeven, nodig voor gebruik met uw Azure DevOps-pijplijn.

Als gebruiker van Azure Stack Hub bent u niet gemachtigd om de SPN te maken. U moet deze principal aanvragen bij uw cloudoperator. De instructies worden hier gegeven, zodat u de SPN kunt maken als u een cloudoperator bent, of u kunt de SPN valideren als u een ontwikkelaar bent met behulp van een SPN in uw werkstroom die wordt geleverd door een cloudoperator.

De cloudoperator moet de SPN maken met behulp van Azure CLI.

De volgende codefragmenten zijn geschreven voor een Windows-computer met behulp van de PowerShell-prompt met Azure CLI voor Azure Stack Hub. Als u CLI op een Linux-computer en bash gebruikt, verwijdert u de regelextensie of vervangt u deze door een \.

  1. Bereid de waarden voor van de volgende parameters die worden gebruikt om de SPN te maken:

    Parameter Voorbeeld Beschrijving
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Het eindpunt voor resourcebeheer.
    achtervoegsel-opslag-eindpunt "orlando.azurestack.corp.microsoft.com" Het eindpuntachtervoegsel voor opslagaccounts.
    achtervoegsel-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Het dns-achtervoegsel Key Vault service.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" De resource-id voor Active Directory.
    endpoint-sql-management https://notsupported Het beheereindpunt van de SQL-server. Stel dit in op https://notsupported
    profiel 2019-03-01-hybride Profiel dat moet worden gebruikt voor deze cloud.
  2. Open het opdrachtregelprogramma, zoals Windows PowerShell of Bash en meld u aan. Gebruik de volgende opdracht:

    az login
    
  3. Gebruik de register opdracht voor een nieuwe omgeving of de update opdracht als u een bestaande omgeving gebruikt. Gebruik de volgende opdracht.

    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. Haal uw abonnements-id en resourcegroep op die u wilt gebruiken voor de SPN.

  5. Maak de SPN met de volgende opdracht met de abonnements-id en resourcegroep:

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

    Als u geen cloudoperatorbevoegdheden hebt, kunt u zich ook aanmelden met de SPN die uw cloudoperator aan u heeft verstrekt. U hebt de client-id, het geheim en uw tenant-id nodig. Met deze waarden kunt u de volgende Azure CLI-opdrachten gebruiken om het JSON-object te maken dat de waarden bevat die u nodig hebt om uw serviceverbinding te maken.

    az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions
    az account show
    
  6. Controleer het resulterende JSON-object. U gebruikt het JSON-object om uw serviceverbinding te maken. Het JSON-object moet de volgende kenmerken hebben:

    {
      "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"
      }
    }
    

Het doel van de web-app maken

  1. Meld u aan bij uw Azure Stack Hub-portal.
  2. Selecteer Een resource> makenWeb en mobiele>web-app.
  3. Selecteer Abonnement.
  4. Maak of selecteer een resourcegroep.
  5. Typ de Naam van uw app. De naam van de app wordt weergegeven in de URL voor uw app, bijvoorbeeld yourappname.appservice.<region>.<FQDN>
  6. Selecteer de Runtime-stack voor uw app. De runtime moet overeenkomen met de code die u voor uw web-app wilt gebruiken.
  7. Selecteer het besturingssysteem (OS) waarop uw runtime en app worden gehost.
  8. Selecteer of typ de regio voor uw Azure Stack Hub-exemplaar.
  9. Selecteer het plan op basis van uw Azure Stack Hub-exemplaar, regio en app-besturingssysteem.
  10. Selecteer Controleren + maken.
  11. Controleer uw web-app. Selecteer Maken.
  12. Selecteer Ga naar resource.
  13. Noteer de naam van uw app. U voegt de naam toe aan het yml-document dat uw pijplijn in uw opslagplaats definieert.

Een serviceverbinding maken

Maak een serviceverbinding. U hebt de waarden van uw SPN en de naam van uw Azure Stack Hub-abonnement nodig.

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Projectinstellingen en selecteer vervolgens Serviceverbindingen.

  3. Selecteer Serviceverbindingen>Nieuwe serviceverbinding.

  4. Selecteer Azure Resource Manager en selecteer vervolgens Volgende.

  5. Selecteer Service-principal (handmatig).

  6. Selecteer Azure Stack in Omgeving.

  7. Vul het formulier in en selecteer controleren en opslaan.

  8. Geef uw serviceverbinding een naam. (U hebt de naam van de serviceverbinding nodig om uw yaml-pijplijn te maken).

    Een serviceverbinding maken voor Azure Stack Hub

Uw opslagplaats maken en pijplijn toevoegen

  1. Als u uw web-app-code nog niet hebt toegevoegd aan de opslagplaats, voegt u deze nu toe.

  2. Open de opslagplaats. Selecteer de opslagplaats en selecteer Bladeren.

  3. Pijplijnen selecteren

  4. Selecteer Nieuwe pijplijn.

  5. Selecteer Azure-opslagplaatsen Git.

  6. Selecteer uw opslagplaats.

  7. Selecteer Starter-pijplijn.

  8. Ga terug naar de opslagplaats en open de azure-pipelines.yml.

  9. Voeg de volgende yaml toe:

    # 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)'
    

    Notitie

    Als u SSL-fouten wilt negeren, stelt u een variabele met de naam VSTS_ARM_REST_IGNORE_SSL_ERRORS in op de waarde true in de build- of release-pijplijn, zoals in dit voorbeeld.

  10. Werk de azureSubscription waarde bij met de naam van uw serviceverbinding.

  11. Werk de bij met de appName naam van uw app. U bent nu klaar om te implementeren.

Opmerkingen over het gebruik van Azure-taken met Azure Stack Hub

De volgende Azure-taken worden gevalideerd met Azure Stack Hub:

Volgende stappen