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
- Dostęp do wystąpienia usługi Azure Stack Hub z włączonym App Service RP.
- Rozwiązanie Usługi Azure DevOps skojarzone z dzierżawą usługi Azure Stack Hub.
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 \
.
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. Otwórz narzędzie wiersza polecenia, takie jak Windows PowerShell lub Bash i zaloguj się. Użyj następującego polecenia:
az login
register
Użyj polecenia dla nowego środowiska lubupdate
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
Pobierz identyfikator subskrypcji i grupę zasobów, której chcesz użyć dla głównej nazwy usługi.
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
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
- Zaloguj się do portalu usługi Azure Stack Hub.
- Wybierz pozycję Utwórz zasób>Web + mobilna>aplikacja internetowa.
- 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 przycisk 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ę Project settings (Ustawienia projektu), a następnie wybierz pozycję Service connections (Połączenia z usługami).
Wybierz pozycję Połączenia> usługNowe połączenie z usługą.
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 nazwę połączeniu usługi. (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 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.azureSubscription
Zaktualizuj wartość przy użyciu nazwy połączenia z usługą.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:
- Azure PowerShell
- Kopiowanie plików na platformę Azure
- Wdrażanie grupy zasobów platformy Azure
- wdrażanie Azure App Service
- zarządzanie Azure App Service
- wdrażanie bazy danych Azure SQL