Dela via


Köra en avbildningsfabrik från Azure DevOps

Den här artikeln beskriver alla förberedelser som krävs för att köra avbildningsfabriken från Azure DevOps (tidigare Visual Studio Team Services).

Kommentar

Alla orkestreringsmotorer fungerar! Azure DevOps är inte obligatoriskt. Avbildningsfabriken körs med Hjälp av Azure PowerShell-skript, så den kan köras manuellt med hjälp av Windows Task Scheduler, andra CI/CD-system och så vidare.

Skapa ett labb för avbildningsfabriken

Det första steget när du konfigurerar avbildningsfabriken är att skapa ett labb i Azure DevTest Labs. Det här labbet är avbildningsfabrikslabbet där vi skapar de virtuella datorerna och sparar anpassade avbildningar. Det här labbet betraktas som en del av den övergripande avbildningsfabriksprocessen. När du har skapat ett labb måste du spara namnet eftersom du behöver det senare.

Skript och mallar

Nästa steg i att införa avbildningsfabriken för ditt team är att förstå vad som är tillgängligt. Avbildningsfabrikens skript och mallar är tillgängliga offentligt i DevTest Labs GitHub-lagringsplatsen. Här är en översikt över delarna:

  • Image Factory. Det är rotmappen.
    • Konfiguration. Indata till avbildningsfabriken
      • GoldenImages. Den här mappen innehåller JSON-filer som representerar definitionerna av anpassade avbildningar.
      • Labs.json. Fil där team registrerar sig för att ta emot specifika anpassade avbildningar.
  • Skript. Motorn för avbildningsfabriken.

Artiklarna i det här avsnittet innehåller mer information om dessa skript och mallar.

Skapa ett Azure DevOps-teamprojekt

Med Azure DevOps kan du lagra källkoden och köra Azure PowerShell på ett ställe. Du kan schemalägga återkommande körningar för att hålla bilderna uppdaterade. Det finns bra möjligheter att logga resultaten för att diagnostisera eventuella problem. Att använda Azure DevOps är dock inte ett krav, men du kan använda alla sele/motorer som kan ansluta till Azure och som kan köra Azure PowerShell.

Om du har ett befintligt DevOps-konto eller projekt som du vill använda i stället hoppar du över det här steget.

Kom igång genom att skapa ett kostnadsfritt konto i Azure DevOps. Besök https://www.visualstudio.com/ och välj Kom igång kostnadsfritt direkt under Azure DevOps (tidigare VSTS). Du måste välja ett unikt kontonamn och se till att välja att hantera kod med Git. När du har skapat kontot sparar du URL:en till ditt teamprojekt. Här är en exempel-URL: https://<accountname>.visualstudio.com/MyFirstProject.

Checka in avbildningsfabriken till Git

Alla PowerShell- och mallar och konfigurationer för avbildningsfabriken finns i den offentliga DevTest Labs GitHub-lagringsplatsen. Det snabbaste sättet att få in koden i ditt nya teamprojekt är att importera en lagringsplats. Importerar hämtningar i hela DevTest Labs-lagringsplatsen (så du får extra dokument och exempel).

  1. Besök Azure DevOps-projektet som du skapade i föregående steg (URL:en ser ut som https:// accountname.visualstudio.com/MyFirstProject>).<

  2. Välj Importera en lagringsplats.

  3. Ange klon-URL :en för DevTest Labs-lagringsplatsen: https://github.com/Azure/azure-devtestlab.

  4. Välj Importera.

    Skärmbild som visar Importera Git-lagringsplats.

Om du väljer att bara checka in exakt vad som behövs (avbildningsfabriksfilerna) följer du stegen här för att klona Git-lagringsplatsen och push-överföra endast filerna som finns i katalogen scripts/ImageFactory .

Skapa en version och ansluta till Azure

Nu har du källfilerna lagrade på en Git-lagringsplats i Azure DevOps. Nu måste du konfigurera en pipeline för att köra Azure PowerShell. Det finns många alternativ för att utföra de här stegen. I den här artikeln använder du versionsdefinitionen för enkelhetens skull, men den fungerar med DevOps Build, DevOps Release (en eller flera miljöer), andra körningsmotorer som Windows Task Scheduler eller andra sele som kan köra Azure PowerShell.

Kommentar

En viktig punkt att tänka på är att vissa PowerShell-filer tar lång tid att köra när det finns många (10+) anpassade avbildningar att skapa. Kostnadsfria DevOps Build/Release-agenter har en tidsgräns på 30 minuter, så du kan inte använda den kostnadsfria värdbaserade agenten när du börjar skapa många avbildningar. Den här timeout-utmaningen gäller oavsett vilken användning du väljer att använda. Det är bra att kontrollera att du kan utöka de vanliga tidsgränserna för långvariga Azure PowerShell-skript. När det gäller Azure DevOps kan du antingen använda betalda värdbaserade agenter eller använda din egen byggagent.

  1. Börja genom att välja Konfigurera Bygg på startsidan för ditt DevOps-projekt:

    Skärmbild som visar knappen Konfigurera bygge.

  2. Ange ett namn för bygget (till exempel: Skapa och leverera avbildningar till DevTest Labs).

  3. Välj en tom versionsdefinition och välj Använd för att skapa din version.

  4. I det här skedet kan du välja Värdhanterad för byggagenten.

  5. Spara byggdefinitionen.

    Skärmbild som visar build-definition.

Konfigurera byggvariablerna

För att förenkla kommandoradsparametrarna kapslar du in de nyckelvärden som driver avbildningsfabriken till en uppsättning byggvariabler. Välj fliken Variabler så visas en lista med flera standardvariabler. Här är listan över variabler som ska anges i Azure DevOps:

Variabelnamn Värde Kommentar
ConfigurationLocation /Scripts/ImageFactory/Configuration Den här platsen är den fullständiga sökvägen i lagringsplatsen till mappen Konfiguration . Om du har importerat hela lagringsplatsen ovan är värdet till vänster korrekt. Annars uppdateras så att den pekar på konfigurationsplatsen.
DevTestLabName MyImageFactory Namnet på labbet i Azure DevTest Labs som används som fabrik för att producera avbildningar. Om du inte har en kan du skapa en. Kontrollera att labbet finns i samma prenumeration som tjänstslutpunkten har åtkomst till.
ImageRetention 1 Antalet bilder som du vill spara av varje typ. Ange standardvärdet till 1.
MachinePassword ******* Det inbyggda administratörskontots lösenord för de virtuella datorerna. Det här kontot är tillfälligt, så se till att det är säkert. Välj den lilla låsikonen till höger för att säkerställa att det är en säker sträng.
MachineUserName ImageFactoryUser Det inbyggda administratörskontots användarnamn för de virtuella datorerna. Det här kontot är tillfälligt.
StandardTimeoutMinutes 30 Tidsgränsen bör vi vänta på vanliga Azure-åtgärder.
SubscriptionId 0000000000-0000-0000-0000-0000000000000 ID för prenumerationen där labbet finns och som tjänstslutpunkten har åtkomst till.
VMSize Standard_A3 Storleken på den virtuella dator som ska användas för steget Skapa . De virtuella datorer som skapas är tillfälliga. Storleken måste vara den som är aktiverad för labbet. Bekräfta att det finns tillräckligt med prenumerationskärnor.

Skärmbild som visar Build-variabler.

Ansluta till Azure

Nästa steg är att konfigurera ett huvudnamn för tjänsten. Ett huvudnamn för tjänsten är en identitet i Microsoft Entra-ID som gör det möjligt för DevOps-byggagenten att fungera i Azure för användarens räkning. Om du vill konfigurera det börjar du med att lägga till det första Azure PowerShell-byggsteget.

  1. Välj Lägg till aktivitet.
  2. Sök efter Azure PowerShell.
  3. När du hittar den väljer du Lägg till för att lägga till uppgiften i bygget. När du väljer Lägg till visas uppgiften till vänster som tillagd.

Skärmbild som visar steget Konfigurera PowerShell.

Det snabbaste sättet att konfigurera ett huvudnamn för tjänsten är att låta Azure DevOps göra det åt dig.

  1. Välj den uppgift som du nyss lade till.
  2. För Azure-anslutningstyp väljer du Azure Resource Manager.
  3. Välj länken Hantera för att konfigurera tjänstens huvudnamn.

Mer information finns i detta blogginlägg. När du väljer länken Hantera hamnar du på rätt plats i DevOps (andra skärmbilden i blogginlägget) för att konfigurera anslutningen till Azure. Se till att välja Tjänstslutpunkt för Azure Resource Manager när du konfigurerar anslutningen.

Slutför bygguppgiften

Om du väljer byggaktiviteten visas all information i det högra fönstret som ska fyllas i.

  1. Namnge först bygguppgiften: Skapa virtuella datorer.

  2. Välj tjänstens huvudnamn som du skapade genom att välja Azure Resource Manager

  3. Välj tjänstslutpunkten.

  4. För Skriptsökväg väljer du ... (ellips) till höger.

  5. Gå till Skriptet MakeGoldenImageVMs.ps1 .

  6. Skriptparametrar bör se ut så här: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -DevTestLabName $(DevTestLabName) -vmSize $(VMSize) -machineUserName $(MachineUserName) -machinePassword (ConvertTo-SecureString -string '$(MachinePassword)' -AsPlainText -Force) -StandardTimeoutMinutes $(StandardTimeoutMinutes)

    Skärmbild som visar Slutför byggdefinitionen.

Köa bygget

Nu ska vi kontrollera att allt har konfigurerats korrekt genom att köa en ny version. När bygget körs växlar du till Azure Portal och väljer alla virtuella datorer i avbildningsfabrikens labb för att bekräfta att allt fungerar som det ska. Du bör se tre virtuella datorer skapas i labbet.

Virtuella datorer i labbet

Nästa steg

Det första steget i att konfigurera avbildningsfabriken baserat på Azure DevTest Labs är slutfört. I nästa artikel i serien får du de virtuella datorerna generaliserade och sparade i anpassade avbildningar. Sedan får du dem distribuerade till alla dina andra labb. Se nästa artikel i serien: Spara anpassade avbildningar och distribuera till flera labb.