Udostępnij za pośrednictwem


Wdrażanie w usłudze Azure Stack Hub App Service przy użyciu usługi Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 r. — Azure DevOps Server 2019 r.

Ten artykuł przeprowadzi Cię przez proces konfigurowania potoku ciągłej integracji/ciągłego wdrażania na potrzeby wdrażania aplikacji w usługach app services w wystąpieniu usługi Azure Stack Hub przy użyciu usługi Azure Pipelines.

W tym artykule dowiesz się, jak utworzyć lub zweryfikować następujące elementy:

  • Poświadczenia jednostki usługi (SPN) usługi Azure Stack Hub dla potoku.
  • Aplikacja internetowa w wystąpieniu usługi Azure Stack Hub.
  • Połączenie usługi z wystąpieniem usługi Azure Stack Hub.
  • Repozytorium z kodem aplikacji do wdrożenia w aplikacji

Wymagania wstępne

Tworzenie lub weryfikowanie nazwy SPN

Główna nazwa usługi zapewnia poświadczenia oparte na rolach, dzięki czemu procesy spoza platformy Azure mogą łączyć się z zasobami i korzystać z niej. Do użycia z potokiem usługi Azure DevOps potrzebna jest nazwa SPN z dostępem współautora oraz atrybuty określone w tych instrukcjach.

Jako użytkownik usługi Azure Stack Hub nie masz uprawnień do tworzenia głównej nazwy usługi. Musisz zażądać tego podmiotu zabezpieczeń od operatora chmury. Instrukcje są podane tutaj, aby utworzyć nazwę SPN, jeśli jesteś operatorem chmury, lub możesz zweryfikować nazwę SPN, jeśli jesteś deweloperem przy użyciu nazwy SPN w przepływie pracy dostarczonym przez operatora chmury.

Operator chmury musi utworzyć nazwę SPN przy użyciu interfejsu wiersza polecenia platformy Azure.

Poniższe fragmenty kodu są napisane dla maszyny z systemem Windows przy użyciu wiersza polecenia programu PowerShell z interfejsem wiersza polecenia platformy Azure dla usługi Azure Stack Hub. Jeśli używasz interfejsu wiersza polecenia na maszynie z systemem Linux i powłoki bash, usuń rozszerzenie wiersza lub zastąp je ciągiem \.

  1. Przygotuj wartości następujących parametrów używanych do utworzenia głównej nazwy usługi:

    Parametr Przykład Opis
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Punkt końcowy zarządzania zasobami.
    sufiks-storage-endpoint "orlando.azurestack.corp.microsoft.com" Sufiks punktu końcowego dla kont magazynu.
    sufiks-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Sufiks DNS usługi Key Vault.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Identyfikator zasobu usługi Active Directory.
    endpoint-sql-management https://notsupported Punkt końcowy zarządzania programem SQL Server. Ustaw tę wartość na https://notsupported
    profil 2019-03-01-hybrid Profil do użycia w tej chmurze.
  2. Otwórz narzędzie wiersza polecenia, takie jak Windows PowerShell lub Bash i zaloguj się. Użyj następującego polecenia:

    az login
    
  3. register Użyj polecenia dla nowego środowiska lub update polecenia, jeśli używasz istniejącego środowiska. Użyj poniższego polecenia.

    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. Pobierz identyfikator subskrypcji i grupę zasobów, której chcesz użyć dla głównej nazwy usługi.

  5. Utwórz nazwę SPN za pomocą następującego polecenia z identyfikatorem subskrypcji i grupą zasobów:

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

    Jeśli nie masz uprawnień operatora chmury, możesz również zalogować się przy użyciu nazwy SPN podanej ci przez operatora chmury. Będziesz potrzebować identyfikatora klienta, wpisu tajnego i identyfikatora dzierżawy. Za pomocą tych wartości możesz użyć następujących poleceń interfejsu wiersza polecenia platformy Azure, aby utworzyć obiekt JSON zawierający wartości, które należy utworzyć połączenie z usługą.

    az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions
    az account show
    
  6. Sprawdź wynikowy obiekt JSON. Użyjesz obiektu JSON do utworzenia połączenia z usługą. Obiekt JSON powinien mieć następujące atrybuty:

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

Tworzenie obiektu docelowego aplikacji internetowej

  1. Zaloguj się do portalu usługi Azure Stack Hub.
  2. Wybierz pozycję Utwórz zasób>Web + mobilna>aplikacja internetowa.
  3. Wybierz swoją subskrypcję.
  4. Utwórz lub wybierz grupę zasobów.
  5. Wpisz nazwę aplikacji. Nazwa aplikacji będzie wyświetlana w adresie URL aplikacji, na przykład yourappname.appservice.<region>.<FQDN>
  6. Wybierz stos środowiska uruchomieniowego dla aplikacji. Środowisko uruchomieniowe musi być zgodne z kodem, który ma być używany dla aplikacji internetowej.
  7. Wybierz system operacyjny , który będzie hostować środowisko uruchomieniowe i aplikację.
  8. Wybierz lub wpisz region dla wystąpienia usługi Azure Stack Hub.
  9. Wybierz plan na podstawie wystąpienia, regionu i systemu operacyjnego aplikacji usługi Azure Stack Hub.
  10. Wybierz pozycję Przejrzyj i utwórz.
  11. Przejrzyj aplikację internetową. Wybierz przycisk Utwórz.
  12. Wybierz pozycję Przejdź do zasobu.
  13. Zanotuj nazwę aplikacji. Dodasz nazwę do dokumentu yml, który definiuje potok w repozytorium.

Tworzenie połączenia z usługą

Utwórz połączenie z usługą. Będziesz potrzebować wartości z nazwy SPN i nazwy subskrypcji usługi Azure Stack Hub.

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Project settings (Ustawienia projektu), a następnie wybierz pozycję Service connections (Połączenia z usługami).

  3. Wybierz pozycję Połączenia> usługNowe połączenie z usługą.

  4. Wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.

  5. Wybierz pozycję Jednostka usługi (ręcznie).

  6. Wybierz pozycję Azure Stack ze środowiska.

  7. Wypełnij formularz, a następnie wybierz pozycję Weryfikuj i zapisz.

  8. Nadaj nazwę połączeniu usługi. (Do utworzenia potoku yaml będzie potrzebna nazwa połączenia usługi).

    Tworzenie połączenia usługi dla usługi Azure Stack Hub

Tworzenie repozytorium i dodawanie potoku

  1. Jeśli kod aplikacji internetowej nie został dodany do repozytorium, dodaj go teraz.

  2. Otwórz repozytorium. Wybierz repozytorium i wybierz pozycję Przeglądaj.

  3. Wybieranie potoków

  4. Wybierz pozycję Nowy potok.

  5. Wybierz pozycję Azure Repos Git.

  6. Wybierz repozytorium.

  7. Wybierz pozycję Potok startowy.

  8. Wróć do repozytorium i otwórz plik azure-pipelines.yml.

  9. Dodaj następujący plik 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)'
    

    Uwaga

    Aby zignorować błędy protokołu SSL, ustaw zmienną o nazwie VSTS_ARM_REST_IGNORE_SSL_ERRORS na wartość true w potoku kompilacji lub wydania, jak w tym przykładzie.

  10. azureSubscription Zaktualizuj wartość przy użyciu nazwy połączenia z usługą.

  11. Zaktualizuj element przy appName użyciu nazwy aplikacji. Teraz możesz przystąpić do wdrażania.

Uwagi dotyczące korzystania z zadań platformy Azure w usłudze Azure Stack Hub

Następujące zadania platformy Azure są weryfikowane za pomocą usługi Azure Stack Hub:

Następne kroki