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
- Toegang tot het Azure Stack Hub-exemplaar met de App Service RP ingeschakeld.
- Een Azure DevOps-oplossing die is gekoppeld aan uw Azure Stack Hub-tenant.
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 \
.
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. Open het opdrachtregelprogramma, zoals Windows PowerShell of Bash en meld u aan. Gebruik de volgende opdracht:
az login
Gebruik de
register
opdracht voor een nieuwe omgeving of deupdate
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
Haal uw abonnements-id en resourcegroep op die u wilt gebruiken voor de SPN.
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
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
- Meld u aan bij uw Azure Stack Hub-portal.
- Selecteer Een resource> makenWeb en mobiele>web-app.
- Selecteer Abonnement.
- Maak of selecteer een resourcegroep.
- Typ de Naam van uw app. De naam van de app wordt weergegeven in de URL voor uw app, bijvoorbeeld
yourappname.appservice.<region>.<FQDN>
- Selecteer de Runtime-stack voor uw app. De runtime moet overeenkomen met de code die u voor uw web-app wilt gebruiken.
- Selecteer het besturingssysteem (OS) waarop uw runtime en app worden gehost.
- Selecteer of typ de regio voor uw Azure Stack Hub-exemplaar.
- Selecteer het plan op basis van uw Azure Stack Hub-exemplaar, regio en app-besturingssysteem.
- Selecteer Controleren + maken.
- Controleer uw web-app. Selecteer Maken.
- Selecteer Ga naar resource.
- 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.
Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.
Selecteer Projectinstellingen en selecteer vervolgens Serviceverbindingen.
Selecteer Serviceverbindingen>Nieuwe serviceverbinding.
Selecteer Azure Resource Manager en selecteer vervolgens Volgende.
Selecteer Service-principal (handmatig).
Selecteer Azure Stack in Omgeving.
Vul het formulier in en selecteer controleren en opslaan.
Geef uw serviceverbinding een naam. (U hebt de naam van de serviceverbinding nodig om uw yaml-pijplijn te maken).
Uw opslagplaats maken en pijplijn toevoegen
Als u uw web-app-code nog niet hebt toegevoegd aan de opslagplaats, voegt u deze nu toe.
Open de opslagplaats. Selecteer de opslagplaats en selecteer Bladeren.
Pijplijnen selecteren
Selecteer Nieuwe pijplijn.
Selecteer Azure-opslagplaatsen Git.
Selecteer uw opslagplaats.
Selecteer Starter-pijplijn.
Ga terug naar de opslagplaats en open de
azure-pipelines.yml
.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 waardetrue
in de build- of release-pijplijn, zoals in dit voorbeeld.Werk de
azureSubscription
waarde bij met de naam van uw serviceverbinding.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:
- Azure PowerShell
- Azure-bestandskopie
- Implementatie van Azure-resourcegroep
- Azure App Service implementeren
- Azure App Service Beheren
- Azure SQL database-implementatie
Volgende stappen
- Een Azure-web-app implementeren
- Troubleshoot Azure Resource Manager service connections (Verbindingsproblemen met Azure Resource Manager-service oplossen)
- Gebruikersdocumentatie voor Azure Stack Hub
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor