Samouczek: ciągła integracja szablonów usługi ARM z usługą Azure Pipelines

W poprzednim samouczku wdrożysz połączony szablon. Z tego samouczka dowiesz się, jak używać usługi Azure Pipelines do ciągłego kompilowania i wdrażania projektów szablonu usługi Azure Resource Manager (szablonu usługi ARM).

Program Azure DevOps oferuje deweloperom możliwość obsługi zespołów w celu planowania pracy, współpracy w zakresie projektowania kodu oraz budowania i wdrażania aplikacji. Deweloperzy mogą pracować w chmurze przy użyciu usług Azure DevOps Services. Usługa Azure DevOps udostępnia zintegrowany zestaw funkcji, do których można uzyskać dostęp za pośrednictwem przeglądarki internetowej lub klienta IDE. Usługa Azure Pipelines jest jedną z tych funkcji. Azure Pipelines to w pełni funkcjonalna usługa ciągłej integracji i ciągłego dostarczania (CD). Współpracuje z preferowanym dostawcą usługi Git i może wdrażać je w większości głównych usług w chmurze. Następnie możesz zautomatyzować kompilowanie, testowanie i wdrażanie kodu na platformie Microsoft Azure, Google Cloud Platform lub w usługach Amazon Web Services.

Uwaga

Wybierz nazwę projektu. Podczas pracy z samouczkiem zastąp dowolny element ARMPipelineProj nazwą projektu. Ta nazwa projektu służy do generowania nazw zasobów. Jednym z zasobów jest konto magazynu. Nazwy kont magazynu muszą składać się z 3 do 24 znaków i zawierać wyłącznie cyfry i małe litery. Nazwa musi być unikatowa. W szablonie nazwa konta magazynu to nazwa projektu z dołączonym magazynem, a nazwa projektu musi zawierać od 3 do 11 znaków. Dlatego nazwa projektu musi spełniać wymagania dotyczące nazwy konta magazynu i zawiera mniej niż 11 znaków.

Ten samouczek obejmuje następujące zadania:

  • Przygotowywanie repozytorium GitHub
  • Tworzenie projektu usługi Azure DevOps
  • Tworzenie potoku platformy Azure
  • Weryfikowanie wdrożenia potoku
  • Aktualizowanie szablonu i ponowne wdrażanie
  • Czyszczenie zasobów

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Aby ukończyć pracę z tym artykułem, potrzebne są następujące zasoby:

Przygotowywanie repozytorium GitHub

Usługa GitHub służy do przechowywania kodu źródłowego projektu, w tym szablonów usługi Resource Manager. Aby uzyskać informacje o innych obsługiwanych repozytoriach, zobacz repozytoria obsługiwane przez usługę Azure DevOps.

Tworzenie repozytorium GitHub

Jeśli nie masz konta usługi GitHub, zobacz Wymagania wstępne.

  1. Zaloguj się do usługi GitHub.

  2. Wybierz obraz konta w prawym górnym rogu, a następnie wybierz pozycję Twoje repozytoria.

    Screenshot of creating a GitHub repository for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Wybierz pozycję Nowy, zielony przycisk.

  4. W polu Nazwa repozytorium wprowadź nazwę repozytorium. Na przykład ARMPipeline-repo. Pamiętaj, aby zastąpić dowolną wartość ARMPipeline nazwą projektu. Aby przejść przez ten samouczek, możesz wybrać pozycję Publiczna lub prywatna . Następnie wybierz pozycję Utwórz repozytorium.

  5. Zapisz adres URL. Adres URL repozytorium ma następujący format: https://github.com/[YourAccountName]/[YourRepositoryName].

To repozytorium jest nazywane repozytorium zdalnym. Każdy z deweloperów tego samego projektu może sklonować własne repozytorium lokalne i scalić zmiany w repozytorium zdalnym.

Klonowanie repozytorium zdalnego

  1. Otwórz powłokę Git Shell lub powłokę Git Bash. Zobacz Wymagania wstępne.

  2. Sprawdź, czy bieżący folder to GitHub.

  3. Uruchom następujące polecenie:

    git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName]
    cd [YourGitHubRepositoryName]
    mkdir create_web_app
    cd create_web_app
    pwd
    

    Zastąp [YourAccountName] ciąg nazwą konta usługi GitHub i zastąp [YourGitHubRepositoryName] ciąg nazwą repozytorium utworzoną w poprzedniej procedurze.

Folder create_web_app to folder, w którym jest przechowywany szablon. Polecenie pwd wyświetla ścieżkę folderu. Ścieżka służy do zapisywania szablonu w poniższej procedurze.

Pobieranie szablonu szybkiego startu

Zamiast tworzyć szablony, możesz pobrać szablony i zapisać je w folderze create_web_app .

Zarówno nazwa folderu, jak i nazwy plików są używane w potoku. Jeśli zmienisz te nazwy, musisz zaktualizować nazwy używane w potoku.

Wypychanie szablonu do repozytorium zdalnego

Plik azuredeploy.json został dodany do repozytorium lokalnego. Następnie przekażesz szablon do repozytorium zdalnego.

  1. Otwórz powłokę Git Shell lub powłokę Git Bash, jeśli nie została otwarta.

  2. Zmień katalog na folder create_web_app w repozytorium lokalnym.

  3. Sprawdź, czy plik azuredeploy.json znajduje się w folderze .

  4. Uruchom następujące polecenie:

    git add .
    git commit -m "Add web app templates."
    git push origin main
    

    Może zostać wyświetlone ostrzeżenie dotyczące LF. Możesz zignorować ostrzeżenie. main jest gałęzią główną. Zazwyczaj tworzy się gałąź dla każdej aktualizacji. Aby uprościć samouczek, użyj gałęzi głównej bezpośrednio.

  5. Przejdź do repozytorium GitHub z przeglądarki. Adres URL to https://github.com/[YourAccountName]/[YourGitHubRepository]. Zobaczysz folder create_web_app i dwa pliki w folderze.

  6. Wybierz plik azuredeploy.json , aby otworzyć szablon.

  7. Wybierz przycisk Raw (Nieprzetworzone). Adres URL zaczyna się od https://raw.githubusercontent.com.

  8. Utwórz kopię adresu URL. Tę wartość należy podać podczas konfigurowania potoku w dalszej części samouczka.

Do tej pory utworzono repozytorium GitHub i przekazano szablony do repozytorium.

Tworzenie projektu DevOps

Aby przejść do następnej procedury, potrzebna jest organizacja DevOps. Jeśli go nie masz, zobacz Wymagania wstępne.

  1. Zaloguj się do usługi Azure DevOps.

  2. Wybierz organizację DevOps po lewej stronie, a następnie wybierz pozycję Nowy projekt. Jeśli nie masz żadnych projektów, strona tworzenia projektu zostanie otwarta automatycznie.

  3. Wprowadź następujące wartości:

    Screenshot of creating an Azure DevOps project for Azure Resource Manager Azure DevOps Azure Pipelines.

    • Nazwa projektu: wprowadź nazwę projektu. Możesz użyć nazwy projektu wybranej na początku samouczka.
    • Widoczność: wybierz pozycję Prywatny.

    Użyj wartości domyślnej dla innych właściwości.

  4. Wybierz pozycję Utwórz.

Utwórz połączenie usługi używane do wdrażania projektów na platformie Azure.

  1. Wybierz pozycję Ustawienia projektu w dolnej części menu po lewej stronie.

  2. Wybierz pozycję Połączenia usługi w obszarze Potoki.

  3. Wybierz pozycję Utwórz połączenie z usługą, wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.

  4. Wybierz pozycję Jednostka usługi (automatyczna), a następnie wybierz pozycję Dalej.

  5. Wprowadź następujące wartości:

    • Poziom zakresu: wybierz pozycję Subskrypcja.
    • Subskrypcja: wybierz swoją subskrypcję.
    • Grupa zasobów: pozostaw ją pustą.
    • nazwa Połączenie ion: wprowadź nazwę połączenia. Na przykład ARMPipeline-conn. Zanotuj tę nazwę, potrzebujesz nazwy podczas tworzenia potoku.
    • Udziel uprawnień dostępu do wszystkich potoków. (wybrane)
  6. Wybierz pozycję Zapisz.

Tworzenie potoku

Do tej pory wykonano następujące zadania. Jeśli pominiesz poprzednie sekcje, ponieważ znasz usługi GitHub i DevOps, przed kontynuowaniem musisz wykonać zadania.

  • Utwórz repozytorium GitHub i zapisz szablony w folderze create_web_app w repozytorium.
  • Utwórz projekt DevOps i utwórz połączenie usługi Azure Resource Manager.

Aby utworzyć potok za pomocą kroku wdrażania szablonu:

  1. Wybierz pozycję Potoki z menu po lewej stronie.

  2. Wybierz pozycję Utwórz potok.

  3. Na karcie Connect (Połączenie) wybierz pozycję GitHub. Jeśli zostanie wyświetlony monit, wprowadź poświadczenia usługi GitHub, a następnie postępuj zgodnie z instrukcjami. Jeśli zostanie wyświetlony poniższy ekran, wybierz pozycję Tylko wybierz repozytoria i sprawdź, czy repozytorium znajduje się na liście przed wybraniem pozycji Zatwierdź i zainstaluj.

    Screenshot of selecting repositories for Azure Resource Manager Azure DevOps Azure Pipelines.

  4. Na karcie Wybierz wybierz repozytorium. Domyślna nazwa to [YourAccountName]/[YourGitHubRepositoryName].

  5. Na karcie Konfigurowanie wybierz pozycję Potok startowy. Zawiera on plik potoku azure-pipelines.yml z dwoma krokami skryptu.

  6. Usuń dwa kroki skryptu z pliku yml .

  7. Przenieś kursor do wiersza po wykonaniu kroków:

  8. Wybierz pozycję Pokaż asystenta po prawej stronie ekranu, aby otworzyć okienko Zadania .

  9. Wybierz pozycję Wdrożenie szablonu usługi ARM.

  10. Wprowadź następujące wartości:

    • deploymentScope: wybierz pozycję Grupa zasobów. Aby dowiedzieć się więcej na temat zakresów, zobacz Zakresy wdrażania.
    • Połączenie usługi Azure Resource Manager: wybierz utworzoną wcześniej nazwę połączenia usługi.
    • Subskrypcja: określ identyfikator subskrypcji docelowej.
    • Akcja: Wybierz akcję Utwórz lub aktualizuj grupęzasobów wykonuje 2 akcje — 1. utwórz grupę zasobów, jeśli zostanie podana nowa nazwa grupy zasobów; 2. wdróż określony szablon.
    • Grupa zasobów: wprowadź nową nazwę grupy zasobów. Na przykład ARMPipeline-rg.
    • Lokalizacja: wybierz lokalizację dla grupy zasobów, na przykład Środkowe stany USA.
    • Lokalizacja szablonu: wybierz adres URL pliku, co oznacza, że zadanie wyszukuje plik szablonu przy użyciu adresu URL. Ponieważ parametr relativePath jest używany w głównym szablonie, a parametr relativePath jest obsługiwany tylko w przypadku wdrożeń opartych na identyfikatorze URI, należy użyć tutaj adresu URL.
    • Link szablonu: wprowadź adres URL otrzymany na końcu sekcji Przygotowywanie repozytorium GitHub. Zaczyna się od https://raw.githubusercontent.com.
    • Link parametrów szablonu: pozostaw to pole puste. Wartości parametrów określisz w parametrach szablonu Zastępowanie.
    • Zastąpij parametry szablonu: wprowadź wartość -projectName [EnterAProjectName].
    • Tryb wdrażania: wybierz pozycję Przyrostowe.
    • Nazwa wdrożenia: wprowadź wartość DeployPipelineTemplate. Wybierz pozycję Zaawansowane , aby wyświetlić nazwę wdrożenia.

    Screenshot of the ARM template deployment page with required values entered for Azure DevOps Azure Pipelines.

  11. Wybierz Dodaj.

    Aby uzyskać więcej informacji na temat zadania, zobacz Zadanie wdrażania grupy zasobów platformy Azure i zadanie wdrażania szablonu usługi Azure Resource Manager

    Plik yml jest podobny do:

    Screenshot of the Review page with the new pipeline titled Review your pipeline YAML for Azure DevOps Azure Pipelines.

  12. Wybierz pozycję Zapisz i uruchom.

  13. W okienku Zapisywanie i uruchamianie wybierz pozycję Zapisz i uruchom ponownie. Kopia pliku YAML jest zapisywana w połączonym repozytorium. Plik YAML można wyświetlić, przechodząc do repozytorium.

  14. Sprawdź, czy potok został wykonany pomyślnie.

    Screenshot of Azure Resource Manager Azure DevOps Azure Pipelines YAML file.

Weryfikowanie wdrożenia

  1. Zaloguj się w witrynie Azure Portal.
  2. Otwórz grupę zasobów. Nazwa jest określona w pliku YAML potoku. Zostanie utworzone jedno konto magazynu. Nazwa konta magazynu rozpoczyna się od magazynu.
  3. Wybierz nazwę konta magazynu, aby go otworzyć.
  4. Wybierz Właściwości. Zwróć uwagę, że replikacja to magazyn lokalnie nadmiarowy (LRS).

Aktualizowanie i ponowne wdrażanie

Po zaktualizowaniu szablonu i wypchnięciu zmian do repozytorium zdalnego potok automatycznie aktualizuje zasoby— w tym przypadku konto magazynu.

  1. Otwórz plik linkedStorageAccount.json z repozytorium lokalnego w programie Visual Studio Code lub dowolnym edytorze tekstów.

  2. Zaktualizuj wartość defaultValue parametru storageAccountType , aby Standard_GRS. Zobacz poniższy zrzut ekranu:

    Screenshot of updating the YAML file for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Zapisz zmiany.

  4. Wypchnij zmiany do repozytorium zdalnego, uruchamiając następujące polecenia z powłoki/powłoki Git Bash.

    git pull origin main
    git add .
    git commit -m "Update the storage account type."
    git push origin main
    

    Pierwsze polecenie (pull) synchronizuje repozytorium lokalne z repozytorium zdalnym. Plik YAML potoku został dodany tylko do repozytorium zdalnego. pull Uruchomienie polecenia spowoduje pobranie kopii pliku YAML do gałęzi lokalnej.

    Czwarte polecenie (push) przekazuje poprawiony plik linkedStorageAccount.json do repozytorium zdalnego. Po zaktualizowaniu głównej gałęzi repozytorium zdalnego potok zostanie ponownie wyzwolony.

Aby zweryfikować zmiany, możesz sprawdzić właściwość Replikacja konta magazynu. Zobacz Weryfikowanie wdrożenia.

Czyszczenie zasobów

Gdy zasoby platformy Azure nie będą już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów.

  1. W witrynie Azure Portal wybierz pozycję Grupa zasobów z menu po lewej stronie.
  2. Wprowadź nazwę grupy zasobów w polu Filtruj według nazwy.
  3. Wybierz nazwę grupy zasobów.
  4. Wybierz pozycję Usuń grupę zasobów z górnego menu.

Możesz również usunąć repozytorium GitHub i projekt Usługi Azure DevOps.

Następne kroki

Gratulacje. Ukończono ten samouczek wdrażania szablonu usługi Resource Manager. Daj nam znać, jeśli masz jakiekolwiek komentarze i sugestie w sekcji opinii. Dziękujemy. Możesz przystąpić do bardziej zaawansowanych pojęć dotyczących szablonów. W następnym samouczku bardziej szczegółowo omówiono używanie dokumentacji referencyjnej szablonu, aby ułatwić definiowanie zasobów do wdrożenia.