Wdrażanie szablonów usługi ARM przy użyciu funkcji GitHub Actions
Funkcja GitHub Actions to pakiet funkcji w usłudze GitHub do automatyzowania przepływów pracy tworzenia oprogramowania w tym samym miejscu, w którym przechowujesz kod i współpracujesz nad żądaniami ściągnięcia i problemami.
Użyj akcji Wdrażanie szablonu usługi Azure Resource Manager, aby zautomatyzować wdrażanie szablonu usługi Azure Resource Manager (szablon usługi ARM) na platformie Azure.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Konto usługi GitHub. Jeśli nie masz takiego konta, zarejestruj się bezpłatnie.
- Repozytorium GitHub do przechowywania szablonów usługi Resource Manager i plików przepływu pracy. Aby go utworzyć, zobacz Tworzenie nowego repozytorium.
Omówienie pliku przepływu pracy
Przepływ pracy jest definiowany przez plik YAML (.yml) w /.github/workflows/
ścieżce w repozytorium. Ta definicja zawiera różne kroki i parametry tworzące przepływ pracy.
Plik zawiera dwie sekcje:
Sekcja | Zadania |
---|---|
Authentication | 1. Generowanie poświadczeń wdrożenia. |
Wdróż | 1. Wdróż szablon usługi Resource Manager. |
Generowanie poświadczeń wdrożenia
Aby użyć akcji logowania platformy Azure z funkcją OIDC, należy skonfigurować poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra lub tożsamości zarządzanej przypisanej przez użytkownika.
Opcja 1. Aplikacja Firmy Microsoft Entra
- Utwórz aplikację Firmy Microsoft Entra przy użyciu jednostki usługi według witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
- Skopiuj wartości identyfikatora klienta, identyfikatora subskrypcji i identyfikatora katalogu (dzierżawy), aby użyć ich później w przepływie pracy funkcji GitHub Actions.
- Przypisz odpowiednią rolę do jednostki usługi za pomocą witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
- Skonfiguruj poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra w celu zaufania tokenów wystawionych przez funkcję GitHub Actions do repozytorium GitHub.
Opcja 2. Tożsamość zarządzana przypisana przez użytkownika
- Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
- Skopiuj wartości identyfikatora klienta, identyfikatora subskrypcji i identyfikatora katalogu (dzierżawy), aby użyć ich później w przepływie pracy funkcji GitHub Actions.
- Przypisz odpowiednią rolę do tożsamości zarządzanej przypisanej przez użytkownika.
- Skonfiguruj poświadczenia tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika do tokenów zaufania wystawionych przez funkcję GitHub Actions w repozytorium GitHub.
Konfigurowanie wpisów tajnych usługi GitHub
Musisz podać identyfikator klienta aplikacji, identyfikator katalogu (dzierżawy) i identyfikator subskrypcji do akcji logowania. Te wartości można podać bezpośrednio w przepływie pracy lub przechowywać w wpisach tajnych usługi GitHub i odwoływać się do nich w przepływie pracy. Zapisanie wartości jako wpisów tajnych usługi GitHub jest bezpieczniejszą opcją.
W usłudze GitHub przejdź do repozytorium.
Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.
Wybierz pozycję Nowy wpis tajny repozytorium.
Uwaga
Aby zwiększyć bezpieczeństwo przepływu pracy w repozytoriach publicznych, użyj wpisów tajnych środowiska zamiast wpisów tajnych repozytorium. Jeśli środowisko wymaga zatwierdzenia, zadanie nie może uzyskać dostępu do wpisów tajnych środowiska, dopóki jeden z wymaganych recenzentów go nie zatwierdzi.
Utwórz wpisy tajne dla ,
AZURE_CLIENT_ID
AZURE_TENANT_ID
iAZURE_SUBSCRIPTION_ID
. Skopiuj te wartości z aplikacji Microsoft Entra lub tożsamości zarządzanej przypisanej przez użytkownika dla wpisów tajnych usługi GitHub:Wpis tajny usługi GitHub Aplikacja Microsoft Entra lub tożsamość zarządzana przypisana przez użytkownika AZURE_CLIENT_ID Client ID AZURE_SUBSCRIPTION_ID Identyfikator subskrypcji AZURE_TENANT_ID Identyfikator katalogu (dzierżawcy) Uwaga
Ze względów bezpieczeństwa zalecamy używanie wpisów tajnych usługi GitHub zamiast przekazywania wartości bezpośrednio do przepływu pracy.
Dodawanie szablonu usługi Resource Manager
Dodaj szablon usługi Resource Manager do repozytorium GitHub. Ten szablon tworzy konto magazynu.
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Plik można umieścić w dowolnym miejscu w repozytorium. Przykładowy przepływ pracy w następnej sekcji zakłada, że plik szablonu nosi nazwę azuredeploy.json i jest przechowywany w katalogu głównym repozytorium.
Tworzenie przepływu pracy
Plik przepływu pracy musi być przechowywany w folderze .github/workflows w katalogu głównym repozytorium. Rozszerzenie pliku przepływu pracy może być .yml lub yaml.
- W repozytorium GitHub wybierz pozycję Akcje z górnego menu.
- Wybierz pozycję Nowy przepływ pracy.
- Wybierz opcję Skonfiguruj przepływ pracy samodzielnie.
- Zmień nazwę pliku przepływu pracy, jeśli wolisz inną nazwę niż main.yml. Na przykład: deployStorageAccount.yml.
- Zastąp zawartość tego pliku yml następującym kodem:
on: [push]
name: Azure ARM
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# Checkout code
- uses: actions/checkout@main
# Log into Azure
- uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
# Deploy ARM template
- name: Run ARM deploy
uses: azure/arm-deploy@v1
with:
subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
resourceGroupName: ${{ secrets.AZURE_RG }}
template: ./azuredeploy.json
parameters: storageAccountType=Standard_LRS
# output containerName variable from template
- run: echo ${{ steps.deploy.outputs.containerName }}
Uwaga
Możesz określić plik parametrów formatu JSON zamiast tego w akcji Wdrażanie usługi ARM (na przykład: .azuredeploy.parameters.json
).
Pierwsza sekcja pliku przepływu pracy obejmuje:
- name: nazwa przepływu pracy.
- on: nazwa zdarzeń usługi GitHub, które wyzwala przepływ pracy. Przepływ pracy jest wyzwalany po wystąpieniu zdarzenia wypychania w gałęzi głównej, które modyfikuje co najmniej jeden z dwóch określonych plików. Dwa pliki to plik przepływu pracy i plik szablonu.
- Wybierz pozycję Start commit (Rozpocznij zatwierdzanie).
- Wybierz pozycję Zatwierdź bezpośrednio w gałęzi głównej.
- Wybierz pozycję Zatwierdź nowy plik (lub Zatwierdź zmiany).
Ponieważ przepływ pracy jest skonfigurowany do wyzwalania przez plik przepływu pracy lub aktualizowany plik szablonu, przepływ pracy jest uruchamiany bezpośrednio po zatwierdzeniu zmian.
Sprawdzanie stanu przepływu pracy
- Wybierz kartę Akcje . Zostanie wyświetlony przepływ pracy Tworzenie deployStorageAccount.yml . Uruchomienie przepływu pracy trwa od 1 do 2 minut.
- Wybierz przepływ pracy, aby go otworzyć.
- Wybierz pozycję Uruchom wdrożenie usługi ARM z menu, aby zweryfikować wdrożenie.
Czyszczenie zasobów
Gdy grupa zasobów i repozytorium nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów i repozytorium GitHub.