Övning – Konfigurera din Azure DevOps-miljö

Slutförd

I det här avsnittet får du lära dig hur du konfigurerar din Azure DevOps-organisation och skapar den Azure App Service-miljö som du ska distribuera till.

Du får lära dig att:

  • Konfigurera ditt Azure DevOps-projekt.
  • Hantera dina arbetsobjekt med Azure Boards.
  • Skapa din Azure App Service-miljö.
  • Skapa pipelinevariabler i Azure Pipelines.
  • Skapa en tjänstanslutning för att autentisera med din Azure-prenumeration.

Lägga till en användare i Azure DevOps

För att slutföra den här modulen behöver du en egen Azure-prenumeration. Du kan komma igång med Azure kostnadsfritt.

Du behöver ingen Azure-prenumeration för att fungera med Azure DevOps, men i den här modulen använder du Azure DevOps för att distribuera till Azure-resurser. För att förenkla processen använder du samma Microsoft-konto för att logga in på både Azure och Azure DevOps.

Om du använder olika Microsoft-konton för att logga in på Azure och Azure DevOps lägger du till en användare med Grundläggande åtkomstnivå till din DevOps-organisation under det Microsoft-konto som du använder för att logga in på Azure. Mer information finns i Lägga till användare i din organisation eller projekt.

Logga sedan ut från Azure DevOps och logga in igen med samma konto som du använde för att logga in på din Azure-prenumeration.

Hämta Azure DevOps-projektet

Här ser du till att din Azure DevOps-organisation har konfigurerats för att slutföra resten av den här modulen. För att göra det kör du en mall som skapar ett projekt i Azure DevOps.

Modulerna i den här utbildningsvägen utgör en utveckling. Du följer Tailspin-webbteamet genom deras DevOps-resa. I utbildningssyfte har varje modul ett eget Azure DevOps-projekt.

Kör mallen

Kör en mall som konfigurerar din Azure DevOps-organisation:

Kör mallen genom att följa dessa steg på webbplatsen för Azure DevOps Demo Generator:

  1. Välj Logga in och godkänn användningsvillkoren.

  2. På sidan Skapa nytt projekt väljer du din Azure DevOps-organisation. Ange ett projektnamn som Space Game – web – Docker.

    Skärmbild av hur du skapar ett projekt via Azure DevOps Demo Generator.

  3. Välj Ja, jag vill förgrena den här lagringsplatsen>Auktorisera. Om du uppmanas att göra det kan du auktorisera åtkomst till ditt GitHub-konto.

    Viktig

    Du måste välja det här alternativet så att mallen kan ansluta till din GitHub-lagringsplats. Markera kryssrutan även om du redan har "forkat" repositoryt Space Game. Mallen använder din befintliga förgrening.

  4. Välj Skapa projekt.

  5. Välj Navigera till projekt för att gå till projektet i Azure DevOps.

Viktig

I den här modulen innehåller sidan Rensa din Azure DevOps-miljö viktiga rensningssteg. Genom att rensa upp ser du till att du inte får slut på kostnadsfria byggminuter. Följ rensningsstegen även om du inte slutför den här modulen.

Ange projektets synlighet

Ursprungligen är din fork av Space Game-repositoriet på GitHub inställt på att vara offentligt medan projektet som skapats av Azure DevOps-mallen är inställt på att vara privat. En offentlig lagringsplats på GitHub kan nås av vem som helst, medan en privat lagringsplats endast är tillgänglig för dig och de personer som du väljer att dela den med. På samma sätt ger offentliga projekt i Azure DevOps skrivskyddad åtkomst till icke-autentiserade användare, medan privata projekt kräver att användarna beviljas åtkomst och autentiseras för att få åtkomst till tjänsterna.

För närvarande är det inte nödvändigt att ändra någon av dessa inställningar i den här modulen. För dina personliga projekt måste du dock fastställa den synlighet och åtkomst som du vill bevilja andra. Om projektet till exempel är öppen källkod kan du välja att göra både din GitHub-lagringsplats och ditt Azure DevOps-projekt offentliga. Om projektet är proprietärt skulle du vanligtvis göra både din GitHub-lagringsplats och ditt Azure DevOps-projekt privata.

Senare kan följande resurser vara användbara för att avgöra vilket alternativ som är bäst för projektet:

Flytta arbetsobjektet till Pågående

Här tilldelar du ett arbetsobjekt till dig själv i Azure Boards. Du kommer också att flytta arbetsobjektet till statusen Doing. I praktiken skulle du och ditt team skapa arbetsobjekt i början av varje sprinteller arbetsiteration.

Den här arbetstilldelningen ger dig en checklista att arbeta från. Det ger andra teammedlemmar insyn i vad du arbetar med och hur mycket arbete som återstår. Arbetsobjektet hjälper också till att upprätthålla WIP-begränsningar, så att teamet inte tar på sig för mycket arbete samtidigt.

Här flyttar du det första objektet, Skapa containerversion av webbplatsen med Docker, till kolumnen Doing och tilldelar sedan dig själv till arbetsobjektet.

Så här konfigurerar du arbetsobjektet:

  1. Från Azure DevOps går du till Boards. Välj sedan Boards från menyn.

    Skärmbild av Azure DevOps som visar platsen för menyn Boards.

  2. I Skapa containerversion av webbplatsen med Docker arbetsobjekt väljer du nedåtpilen längst ned på kortet och tilldelar sedan arbetsobjektet till dig själv.

    Skärmbild av Azure Boards som visar platsen för nedåtpilen.

  3. Flytta arbetsobjektet från kolumnen Att göra till kolumnen Doing .

    Skärmbild av Azure Boards som visar kortet i kolumnen Doing.

I slutet av den här modulen flyttar du kortet till kolumnen Klar när du har slutfört uppgiften.

Skapa Azure App Service-miljön

I modulen Skapa en versionspipeline med Azure Pipelines skapade du en App Service-instans med hjälp av Azure-portalen. Även om portalen är ett utmärkt verktyg för att utforska Azures erbjudanden kan det bli besvärligt att konfigurera komponenter som App Service.

I den här modulen använder du Azure CLI för att starta de resurser som krävs för att distribuera och köra en App Service-instans. Du kan komma åt Azure CLI från en terminal eller via Visual Studio Code.

Viktig

Du måste ha en egen Azure-prenumeration för att slutföra övningarna i den här modulen.

Starta Cloud Shell i Azure-portalen

  1. Gå till Azure-portalen och logga in.

  2. Välj Cloud Shell i menyraden och välj sedan Bash.

    Skärmbild av Azure-portalen som visar platsen för Menyalternativet Cloud Shell.

    Anmärkning

    Cloud Shell kräver att en Azure Storage-resurs bevarar alla filer som du skapar i Cloud Shell. När du först öppnar Cloud Shell uppmanas du att skapa en resursgrupp, ett lagringskonto och en Azure Files-resurs. Den här konfigurationen används automatiskt för alla framtida Cloud Shell-sessioner.

Välj en Azure-region

En region är ett eller flera Azure-datacenter som finns på en viss geografisk plats. Östra USA, Västra USA och Norra Europa är några exempel på regioner. Varje Azure-resurs, till exempel en App Service-instans, allokeras till en viss region.

För att förenkla processen med att köra kommandon börjar du med att välja en standardregion. När standardregionen har angetts använder efterföljande kommandon den regionen som standard om inte en annan region uttryckligen anges.

  1. Kör följande kommando för att visa en lista över tillgängliga regioner för din Azure-prenumeration.

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Välj en region som ligger i närheten av din plats från kolumnen Name i utdata. Du kan till exempel välja eastasia eller westus2.

  3. Kör följande kommando för att ange din standardregion. Ersätt platshållaren med namnet på den region som du har valt.

    az configure --defaults location=<REGION>
    

    I det här exemplet anges westus2 som standardregion:

    az configure --defaults location=westus2
    

Skapa Bash-variabler

I det här avsnittet skapar du Bash-variabler för att göra installationsprocessen enklare och mindre felbenägen. Genom att använda variabler för delade textsträngar kan du undvika oavsiktliga stavfel.

  1. Generera ett slumptal från Cloud Shell. Detta gör det enklare att skapa globalt unika namn för vissa tjänster i nästa steg.

    resourceSuffix=$RANDOM
    
  2. Skapa globalt unika namn för apptjänstens webbapp och Azure Container Registry. Med dubbla citattecken i dessa kommandon uppmanas Bash att interpolera variablerna med hjälp av den infogade syntaxen.

    webName="tailspin-space-game-web-${resourceSuffix}"
    registryName="tailspinspacegame${resourceSuffix}"
    
  3. Skapa ytterligare två Bash-variabler för att lagra namnen på resursgruppen och App Service-planen.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Skapa Azure-resurserna

Notera

I utbildningssyfte kommer du att använda standardinställningarna för nätverk här. De här inställningarna gör din webbplats tillgänglig från Internet. I praktiken kan du konfigurera ett virtuellt Azure-nätverk som placerar din webbplats i ett nätverk som inte kan dirigeras via Internet och som bara du och ditt team kan komma åt. Senare kan du konfigurera om nätverket så att webbplatsen blir tillgänglig för användarna.

  1. Kör följande az group create kommando för att skapa en resursgrupp med det namn som definierades tidigare.

    az group create --name $rgName
    
  2. Kör följande az acr create kommando för att skapa ett Azure Container Registry med det namn som definierades tidigare.

    az acr create --name $registryName \
      --resource-group $rgName \
      --sku Standard \
      --admin-enabled true
    
  3. Kör följande az appservice plan create kommando för att skapa en App Service-plan med det namn som definierades tidigare.

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    Argumentet --sku anger B1-planen. Den här planen körs på basic-nivån. Argumentet --is-linux anger att Linux-arbetare ska användas.

    Viktig

    Om B1-SKU:n inte är tillgänglig i din Azure-prenumeration välja en annan plan, till exempel S1 (Standard).

  4. Kör följande az webapp create kommando för att skapa App Service-instansen.

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --deployment-container-image-name $registryName.azurecr.io/web:latest
    
  5. Kör följande az webapp list kommando för att visa värdnamnet och tillståndet för App Service-instansen.

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Observera värdnamnet för den tjänst som körs. Du behöver det senare när du verifierar ditt arbete. Här är ett exempel:

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  6. Kör följande az acr list kommando för att lista inloggningsservern för Azure Container Registry-instansen. Du behöver det här servernamnet när du skapar pipelinevariabler senare.

    az acr list \
      --resource-group $rgName \
      --query "[].{loginServer: loginServer}" \
      --output table
    

    Observera inloggningsservern. Du behöver den senare när du konfigurerar pipelinen. Här är ett exempel:

    LoginServer
    ---------------------------------
    tailspinspacegame4692.azurecr.io    
    

Viktig

Sidan Rensa din Azure DevOps-miljö i den här modulen innehåller viktiga rensningssteg. Genom att rensa upp ser du till att du inte debiteras för Azure-resurser när du har slutfört den här modulen. Se till att utföra rensningsstegen även om du inte slutför den här modulen.

Skapa pipelinevariabler i Azure Pipelines

I Skapa en versionspipeline med Azure Pipelineshar du lagt till en variabel i din pipeline som lagrar namnet på din webbapp i App Service. Du gör samma sak här. Dessutom lägger du till namnet på ditt Azure Container Registry.

Du kan hårdkoda dessa namn i pipelinekonfigurationen, men om du definierar dem som variabler blir konfigurationen mer återanvändbar. Om instansnamnen ändras kan du dessutom uppdatera variablerna och utlösa pipelinen utan att ändra konfigurationen.

Så här lägger du till variablerna:

  1. I Azure DevOps går du till ditt Space Game – web – Docker-projekt.

  2. Under Pipelinesväljer du Library.

    Skärmbild av Azure Pipelines som visar menyalternativet Bibliotek.

  3. Välj + variabelgrupp.

  4. Under Egenskaperanger du Release för variabelgruppens namn.

  5. Under Variablerväljer du + Lägg till.

  6. Som namn på variabeln anger du WebAppName. För värdet anger du namnet på App Service-instansen som skapades ovan, till exempel tailspin-space-game-web-4692.

    Viktig

    Ange namnet på App Service-instansen, inte dess värdnamn. I det här exemplet anger du tailspin-space-game-web-4692 och inte tailspin-space-game-web-4692.azurewebsites.net.

  7. Upprepa processen för att lägga till en annan variabel med namnet RegistryName med värdet för din Azure Container Registry-inloggningsserver, till exempel tailspinspacegame4692.azurecr.io.

  8. Välj Pipeline-behörigheteroch välj sedan +-ikonen för att lägga till en pipeline. Välj mslearn-tailspin-spacegame-web-docker för att ge din pipeline behörighet att komma åt variabelgruppen.

  9. Välj Spara överst på sidan för att spara variablerna. Variabelgruppen bör se ut så här:

    Skärmbild av Azure Pipeline som visar variabelgruppen. Gruppen innehåller två variabler.

Skapa nödvändiga tjänstanslutningar

Här skapar du en tjänstanslutning som gör att Azure Pipelines kan komma åt din Azure-prenumeration. Azure Pipelines använder den här tjänstanslutningen för att distribuera webbplatsen till App Service. Du skapade en liknande tjänstanslutning i föregående modul. Du skapar också en Docker Registry-anslutning för att publicera din container till Azure Container Registry.

Viktig

Se till att du är inloggad på både Azure-portalen och Azure DevOps under samma Microsoft-konto.

  1. I Azure DevOps går du till ditt Space Game – web – Docker-projekt.

  2. I det nedre hörnet på sidan väljer du Projektinställningar.

  3. Under fliken Pipelinesväljer du Tjänstanslutningar.

  4. Välj Ny tjänstanslutningoch välj sedan Azure Resource Manageroch välj sedan Nästa.

  5. Längst upp på sidan Tjänstens huvudnamn (automatiskt). Välj sedan Nästa.

  6. Fyll i följande fält:

    Fält Värde
    Omfångsnivå Abonnemang
    Abonnemang Din Azure-prenumeration
    Resursgrupp tailspin-space-game-rg
    Namn på tjänstanslutning Resursansvarig – Tailspin – Rymdspel

    Under processen kan du uppmanas att logga in på ditt Microsoft-konto.

  7. Kontrollera att Bevilja åtkomstbehörighet till alla pipelines har valts.

  8. Välj Spara.

    Azure DevOps utför en testanslutning för att kontrollera att den kan ansluta till din Azure-prenumeration. Om Azure DevOps inte kan ansluta har du chansen att logga in en andra gång.

  9. Välj Ny tjänstanslutningoch välj sedan Docker Registryoch välj sedan Nästa.

  10. Längst upp på sidan väljer du Azure Container Registry.

  11. Fyll i följande fält:

    Fält Värde
    Abonnemang Din Azure-prenumeration
    Azure-containerregister Välj den som du skapade tidigare
    Namn på tjänstanslutning containerregisteranslutning
  12. Kontrollera att Bevilja åtkomstbehörighet till alla pipelines har valts.

  13. Välj Spara när du är klar.