Udostępnij za pośrednictwem


Uruchamianie fabryki obrazów z usługi Azure DevOps

W tym artykule opisano wszystkie przygotowania potrzebne do uruchomienia fabryki obrazów z usługi Azure DevOps (dawniej Visual Studio Team Services).

Uwaga

Każdy aparat aranżacji będzie działać! Usługa Azure DevOps nie jest obowiązkowa. Fabryka obrazów jest uruchamiana przy użyciu skryptów programu Azure PowerShell, więc można ją uruchomić ręcznie przy użyciu harmonogramu zadań systemu Windows, innych systemów ciągłej integracji/ciągłego wdrażania itd.

Tworzenie laboratorium dla fabryki obrazów

Pierwszym krokiem konfigurowania fabryki obrazów jest utworzenie laboratorium w usłudze Azure DevTest Labs. To laboratorium jest laboratorium fabryki obrazów, w którym tworzymy maszyny wirtualne i zapisujemy obrazy niestandardowe. To laboratorium jest uznawane za część ogólnego procesu fabryki obrazów. Po utworzeniu laboratorium pamiętaj o zapisaniu nazwy, ponieważ będzie ona potrzebna później.

Skrypty i szablony

Następnym krokiem wdrażania fabryki obrazów dla zespołu jest zrozumienie, co jest dostępne. Skrypty i szablony fabryki obrazów są publicznie dostępne w repozytorium GitHub usługi DevTest Labs. Oto konspekt elementów:

  • Fabryka obrazów. Jest to folder główny.
    • Konfiguracja. Dane wejściowe fabryki obrazów
      • GoldenImages. Ten folder zawiera pliki JSON reprezentujące definicje obrazów niestandardowych.
      • Labs.json. Plik, w którym zespoły tworzą konto w celu odbierania określonych obrazów niestandardowych.
  • Skrypty. Aparat fabryki obrazów.

Artykuły w tej sekcji zawierają więcej szczegółów na temat tych skryptów i szablonów.

Tworzenie projektu zespołowego usługi Azure DevOps

Usługa Azure DevOps umożliwia przechowywanie kodu źródłowego, uruchamianie programu Azure PowerShell w jednym miejscu. Możesz zaplanować cyklicznych przebiegów, aby zapewnić aktualność obrazów. Istnieją dobre funkcje rejestrowania wyników w celu zdiagnozowania wszelkich problemów. Korzystanie z usługi Azure DevOps nie jest jednak wymagane, można użyć dowolnego aparatu,który może połączyć się z platformą Azure i uruchomić program Azure PowerShell.

Jeśli masz istniejące konto lub projekt DevOps, którego chcesz użyć, pomiń ten krok.

Aby rozpocząć, utwórz bezpłatne konto w usłudze Azure DevOps. Odwiedź stronę https://www.visualstudio.com/ i wybierz pozycję Rozpocznij bezpłatnie bezpośrednio w obszarze Azure DevOps (dawniej VSTS). Musisz wybrać unikatową nazwę konta i upewnić się, że chcesz zarządzać kodem przy użyciu usługi Git. Po utworzeniu konta zapisz adres URL w projekcie zespołowym. Oto przykładowy adres URL: https://<accountname>.visualstudio.com/MyFirstProject.

Zaewidencjonuj fabrykę obrazów w usłudze Git

Wszystkie szablony i konfiguracje programu PowerShell dla fabryki obrazów znajdują się w publicznym repozytorium GitHub usługi DevTest Labs. Najszybszym sposobem na pobranie kodu do nowego projektu zespołowego jest zaimportowanie repozytorium. Importowanie ściągnięcia w całym repozytorium Usługi DevTest Labs (dzięki czemu uzyskasz dodatkowe dokumenty i przykłady).

  1. Odwiedź projekt usługi Azure DevOps utworzony w poprzednim kroku (adres URL wygląda następująco: https:// accountname.visualstudio.com/MyFirstProject>).<

  2. Wybierz pozycję Importuj repozytorium.

  3. Wprowadź adres URL klonowania repozytorium DevTest Labs: https://github.com/Azure/azure-devtestlab.

  4. Wybierz Importuj.

    Screenshot that shows Import Git repo.

Jeśli zdecydujesz się zaewidencjonować dokładnie to, co jest potrzebne (pliki fabryki obrazów), wykonaj kroki opisane tutaj , aby sklonować repozytorium Git i wypchnąć tylko pliki znajdujące się w katalogu scripts/ImageFactory .

Tworzenie kompilacji i nawiązywanie połączenia z platformą Azure

W tym momencie masz pliki źródłowe przechowywane w repozytorium Git w usłudze Azure DevOps. Teraz musisz skonfigurować potok, aby uruchomić program Azure PowerShell. Istnieje wiele opcji, aby wykonać te kroki. W tym artykule używasz definicji kompilacji dla uproszczenia, ale współpracuje ona z kompilacją DevOps, wydaniem Metodyki DevOps (jednym lub wieloma środowiskami), innymi aparatami wykonywania, takimi jak Harmonogram zadań systemu Windows lub innymi narzędziami, które mogą wykonywać program Azure PowerShell.

Uwaga

Należy pamiętać, że uruchomienie niektórych plików programu PowerShell trwa długo, gdy istnieje wiele obrazów niestandardowych (10+). Bezpłatne hostowane agenty kompilacji/wydania DevOps mają limit czasu 30 minut, więc nie można używać bezpłatnego hostowanego agenta po rozpoczęciu tworzenia wielu obrazów. To wyzwanie przekroczenia limitu czasu dotyczy dowolnego rozwiązania, którego decydujesz się użyć, warto sprawdzić z góry, czy można rozszerzyć typowe limity czasu dla długotrwałych skryptów programu Azure PowerShell. W przypadku usługi Azure DevOps możesz użyć płatnych hostowanych agentów lub użyć własnego agenta kompilacji.

  1. Aby rozpocząć, wybierz pozycję Skonfiguruj kompilację na stronie głównej projektu DevOps:

    Screenshot that shows Set up Build button.

  2. Określ nazwę kompilacji (na przykład: Kompilowanie i dostarczanie obrazów do usługi DevTest Labs).

  3. Wybierz pustą definicję kompilacji i wybierz pozycję Zastosuj, aby utworzyć kompilację.

  4. Na tym etapie możesz wybrać pozycję Hostowane dla agenta kompilacji.

  5. Zapisz definicję kompilacji.

    Screenshot that shows Build definition.

Konfigurowanie zmiennych kompilacji

Aby uprościć parametry wiersza polecenia, hermetyzuj wartości kluczy, które napędzają fabrykę obrazów do zestawu zmiennych kompilacji. Wybierz kartę Zmienne i zostanie wyświetlona lista kilku zmiennych domyślnych. Oto lista zmiennych, które należy wprowadzić w usłudze Azure DevOps:

Nazwa zmiennej Wartość Uwagi
ConfigurationLocation /Scripts/ImageFactory/Configuration Ta lokalizacja jest pełną ścieżką w repozytorium do folderu Konfiguracja . Jeśli zaimportowano całe repozytorium powyżej, wartość po lewej stronie jest poprawna. W przeciwnym razie zaktualizuj polecenie , aby wskazać lokalizację konfiguracji.
DevTestLabName MyImageFactory Nazwa laboratorium w usłudze Azure DevTest Labs używana jako fabryka do tworzenia obrazów. Jeśli go nie masz, utwórz go. Upewnij się, że laboratorium znajduje się w tej samej subskrypcji, do którego ma dostęp punkt końcowy usługi.
ImageRetention 1 Liczba obrazów, które chcesz zapisać dla każdego typu. Ustaw wartość domyślną na 1.
MachinePassword ******* Wbudowane hasło konta administratora dla maszyn wirtualnych. To konto jest przejściowe, dlatego upewnij się, że jest ono bezpieczne. Wybierz ikonę małej blokady po prawej stronie, aby upewnić się, że jest to bezpieczny ciąg.
MachineUserName ImageFactoryUser Wbudowana nazwa użytkownika konta administratora dla maszyn wirtualnych. To konto jest przejściowe.
StandardTimeoutMinutes 30 Limit czasu, który powinniśmy poczekać na regularne operacje platformy Azure.
SubscriptionId 0000000000-0000-0000-0000-0000000000000 Identyfikator subskrypcji, w której istnieje laboratorium, oraz że punkt końcowy usługi ma dostęp.
maszyny wirtualnej (VMSize Standardowa_A3 Rozmiar maszyny wirtualnej do użycia w kroku Tworzenie . Utworzone maszyny wirtualne są przejściowe. Rozmiar musi być taki, który jest włączony dla laboratorium. Upewnij się, że jest wystarczający limit przydziału rdzeni subskrypcji.

Screenshot that shows Build variables.

Łączenie się z platformą Azure

Następnym krokiem jest skonfigurowanie jednostki usługi. Jednostka usługi to tożsamość w identyfikatorze Entra firmy Microsoft, która umożliwia agentowi kompilacji DevOps działanie na platformie Azure w imieniu użytkownika. Aby go skonfigurować, zacznij od dodania pierwszego kroku kompilacji programu Azure PowerShell.

  1. Wybierz pozycję Dodaj zadanie.
  2. Wyszukaj usługę Azure PowerShell.
  3. Po znalezieniu wybierz pozycję Dodaj , aby dodać zadanie do kompilacji. Po wybraniu pozycji Dodaj zobaczysz, że zadanie jest wyświetlane po lewej stronie, jak dodano.

Screenshot that shows Set up PowerShell step.

Najszybszym sposobem skonfigurowania jednostki usługi jest pozwolić usłudze Azure DevOps wykonać to za Ciebie.

  1. Wybierz właśnie dodane zadanie.
  2. W obszarze Typ Połączenie platformy Azure wybierz pozycję Azure Resource Manager.
  3. Wybierz link Zarządzaj, aby skonfigurować jednostkę usługi.

Aby uzyskać więcej informacji, zobacz ten wpis w blogu. Po wybraniu linku Zarządzaj znajdziesz się we właściwym miejscu w usłudze DevOps (drugi zrzut ekranu we wpisie w blogu), aby skonfigurować połączenie z platformą Azure. Pamiętaj, aby wybrać punkt końcowy usługi Azure Resource Manager podczas konfigurowania połączenia.

Wykonywanie zadania kompilacji

Jeśli wybierzesz zadanie kompilacji, zobaczysz wszystkie szczegóły w okienku po prawej stronie, które powinny zostać wypełnione.

  1. Najpierw nadaj nazwę zadaniu kompilacji: Tworzenie maszyn wirtualnych.

  2. Wybierz utworzoną jednostkę usługi , wybierając pozycję Azure Resource Manager

  3. Wybierz punkt końcowy usługi.

  4. W polu Ścieżka skryptu wybierz pozycję ... (wielokropek) po prawej stronie.

  5. Przejdź do skryptu MakeGoldenImageVMs.ps1 .

  6. Parametry skryptu powinny wyglądać następująco: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -DevTestLabName $(DevTestLabName) -vmSize $(VMSize) -machineUserName $(MachineUserName) -machinePassword (ConvertTo-SecureString -string '$(MachinePassword)' -AsPlainText -Force) -StandardTimeoutMinutes $(StandardTimeoutMinutes)

    Screenshot that shows Complete the build definition.

Kolejkowanie kompilacji

Sprawdźmy, czy wszystko jest poprawnie skonfigurowane, kolejkując nową kompilację. Gdy kompilacja jest uruchomiona, przejdź do witryny Azure Portal i wybierz pozycję Wszystkie maszyny wirtualne w laboratorium fabryki obrazów, aby potwierdzić, że wszystko działa prawidłowo. W laboratorium powinny zostać utworzone trzy maszyny wirtualne.

VMs in the lab

Następne kroki

Pierwszy krok konfigurowania fabryki obrazów na podstawie usługi Azure DevTest Labs został ukończony. W następnym artykule z serii uzyskasz te maszyny wirtualne uogólnione i zapisane na obrazach niestandardowych. Następnie masz je dystrybuowane do wszystkich innych laboratoriów. Zobacz następny artykuł z serii: Zapisywanie obrazów niestandardowych i rozpowszechnianie ich w wielu laboratoriach.