Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
W tym artykule opisano konfigurowanie 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.
Z tego artykułu dowiesz się, jak utworzyć lub zweryfikować:
- 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
- Dostęp do wystąpienia usługi Azure Stack Hub z włączonym dostawcą usługi App Service.
- Rozwiązanie Usługi Azure DevOps skojarzone z dzierżawą usługi Azure Stack Hub.
Tworzenie lub weryfikowanie nazwy SPN
Nazwa SPN udostępnia poświadczenia oparte na rolach, dzięki czemu procesy spoza platformy Azure mogą łączyć się z zasobami i wchodzić z nimi w interakcje. Będziesz potrzebować nazwy SPN z dostępem współautora i atrybutami określonymi w tych instrukcjach do użycia z potokiem usługi Azure DevOps.
Jako użytkownik usługi Azure Stack Hub nie masz uprawnień do tworzenia nazwy SPN. 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.
Następujące 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 \.
Przygotuj wartości następujących parametrów użytych do utworzenia nazwy SPN:
Parameter Example Description 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://notsupportedprofil 2019-03-01-hybrid Profil do użycia w tej chmurze. Otwórz narzędzie wiersza polecenia, takie jak program Windows PowerShell lub powłoka Bash i zaloguj się. Użyj następującego polecenia:
az loginregisterUżyj polecenia dla nowego środowiska lubupdatepolecenia, jeśli używasz istniejącego środowiska. Użyj następującego 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-hybridPobierz identyfikator subskrypcji i grupę zasobów, której chcesz użyć dla nazwy SPN.
Utwórz nazwę SPN przy użyciu 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-authJeśli nie masz uprawnień operatora chmury, możesz również zalogować się przy użyciu nazwy SPN podanej przez operatora chmury. Będziesz potrzebować identyfikatora klienta, wpisu tajnego i identyfikatora dzierżawy. Korzystając z 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 showSprawdź wynikowy obiekt JSON. Użyjesz obiektu JSON do utworzenia połączenia usługi. 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 miejsca docelowego aplikacji internetowej
- Zaloguj się do portalu usługi Azure Stack Hub.
- Wybierz pozycję Utwórz zasób>>
- Wybierz swoją subskrypcję.
- Utwórz lub wybierz grupę zasobów.
- Wpisz nazwę aplikacji. Nazwa aplikacji będzie wyświetlana w adresie URL aplikacji, na przykład
yourappname.appservice.<region>.<FQDN> - Wybierz stos środowiska uruchomieniowego dla aplikacji. Środowisko uruchomieniowe musi być zgodne z kodem, który ma być używany dla aplikacji internetowej.
- Wybierz system operacyjny , który będzie hostować środowisko uruchomieniowe i aplikację.
- Wybierz lub wpisz region dla wystąpienia usługi Azure Stack Hub.
- Wybierz plan na podstawie wystąpienia, regionu i systemu operacyjnego aplikacji usługi Azure Stack Hub.
- Wybierz pozycję Przejrzyj i utwórz.
- Przejrzyj aplikację internetową. Wybierz Utwórz.
- Wybierz pozycję Przejdź do zasobu.
- 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.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Ustawienia projektu, a następnie wybierz pozycję Połączenia z usługą.
Wybierz pozycję Połączenia z usługami>Nowe połączenie usługi.
Wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.
Wybierz pozycję Jednostka usługi (ręcznie).
Wybierz pozycję Azure Stack ze środowiska.
Wypełnij formularz, a następnie wybierz pozycję Weryfikuj i zapisz.
Nadaj połączeniu usługi nazwę. (Do utworzenia potoku yaml będzie potrzebna nazwa połączenia usługi).
Tworzenie repozytorium i dodawanie potoku
Jeśli kod aplikacji internetowej nie został dodany do repozytorium, dodaj go teraz.
Otwórz repozytorium. Wybierz repozytorium i wybierz pozycję Przeglądaj.
Wybieranie potoków
Wybierz pozycję Nowy potok.
Wybierz pozycję Azure Repos Git.
Wybierz repozytorium.
Wybierz pozycję Potok startowy.
Wróć do repozytorium i otwórz plik
azure-pipelines.yml.Dodaj następujący kod 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 / Notatka
Aby zignorować błędy protokołu SSL, ustaw zmienną o nazwie
VSTS_ARM_REST_IGNORE_SSL_ERRORSna wartośćtruew potoku kompilacji lub wydania, jak w tym przykładzie.azureSubscriptionZaktualizuj wartość przy użyciu nazwy połączenia usługi.Zaktualizuj element przy
appNameuż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:
- Azure PowerShell
- Kopiowanie plików platformy Azure
- Wdrażanie grupy zasobów platformy Azure
- Wdrażanie usługi Azure App Service
- Zarządzanie usługą Azure App Service
- Wdrażanie usługi Azure SQL Database