Stosowanie zautomatyzowanego przepływu pracy

Ukończone

W tej lekcji dowiesz się więcej o zautomatyzowanych narzędziach przepływu pracy i sposobie ich integracji z programem Terraform i platformą Azure.

Informacje o GitHub Actions

Jako menedżer infrastruktury potrzebujesz przepływów pracy kompilacji i wdrażania, aby używać tej samej kontroli wersji co projekt.

Za pomocą funkcji GitHub Actions można uruchomić proces ciągłej integracji i ciągłego dostarczania (CI/CD), który jest połączony z repozytoriami Usługi GitHub.

Za pomocą funkcji GitHub Actions można kompilować, testować i wdrażać kod bezpośrednio z usługi GitHub. Możesz również przypisywać przeglądy kodu, zarządzać gałęziami i klasyfikacją problemów.

Składniki funkcji GitHub Actions

Opiszmy różne składniki funkcji GitHub Actions, jak pokazano na poniższym diagramie:

Diagram przedstawiający relację przepływów pracy funkcji GitHub Actions z zadaniami składników, krokami i akcjami.

  • Przepływ pracy: wyzwalany przez określone zdarzenia lub działania przepływ pracy to zbiór zadań i kroków automatyzujących zadania cyklu życia tworzenia oprogramowania.
  • Zadanie: zestaw kroków wykonywanych w module uruchamiającym.
  • Krok: zadanie, które może uruchamiać co najmniej jedno polecenie lub akcje. Każdy krok składa się z poszczególnych akcji uruchamianych po wystąpieniu określonego zdarzenia, takiego jak żądanie ściągnięcia.
  • Akcja: autonomiczne polecenia, które można połączyć w kroki. Można połączyć wiele kroków, aby utworzyć zadanie. Poszczególne akcje to spakowane skrypty, które automatyzują zadania programistyczne. Aby utworzyć przepływ pracy, należy dodać akcje do pliku YAML w katalogu .github/workflows w repozytorium GitHub.

Akcja narzędzia Terraform w usłudze GitHub

Akcja hashicorp/setup-terraform konfiguruje interfejs wiersza polecenia narzędzia Terraform w przepływie pracy funkcji GitHub Actions przez:

  • Pobranie określonej wersji interfejsu wiersza polecenia programu Terraform i dodanie jej do programu PATH.
  • Konfigurowanie pliku konfiguracji interfejsu wiersza polecenia programu Terraform przy użyciu nazwy hosta terraform lub przedsiębiorstwa i tokenu interfejsu API.
  • Zainstalowanie skryptu otoki w celu opakowania później wywołań terraform pliku binarnego i uwidocznienie jego stDOUT, STDERR i kodu zakończenia jako danych wyjściowych o nazwach stdout, stderri exitcode, odpowiednio.

Uwierzytelnianie funkcji GitHub Actions za pomocą platformy Azure

Narzędzie Terraform obsługuje kilka opcji uwierzytelniania za pomocą platformy Azure:

  • Jeśli używasz programu Terraform interaktywnie, zalecamy uwierzytelnianie za pośrednictwem konta Microsoft.
  • W przypadku używania narzędzia Terraform z poziomu kodu lub automatyzacji zalecamy uwierzytelnianie za pośrednictwem jednostki usługi platformy Azure.

Jednostka usługi to tożsamość do użycia z aplikacjami, hostowanymi usługami i zautomatyzowanymi narzędziami w celu uzyskania dostępu do zasobów platformy Azure.

Następne kroki

W następnej lekcji skonfigurujemy przykładowy projekt i użyjemy funkcji GitHub Actions z programem Terraform, aby wdrożyć go na platformie Azure.

Kluczowe pojęcia dotyczące nowych usług Azure Pipelines

Dowiedzmy się więcej o składnikach tworzących usługę Azure Pipeline.

Diagram kluczowych pojęć i składników w usłudze Azure Pipeline.

  • Wyzwalacz nakazuje uruchomienie potoku.
  • Potok składa się z co najmniej jednego etapu. Potok może zostać wdrożony w co najmniej jednym środowisku.
  • Etap to sposób organizowania zadania w potoku, a każdy etap może mieć co najmniej jedno zadanie.
  • Każde zadanie jest uruchamiane na jednym agencie. Zadanie może być również bez agenta.
  • Każdy agent uruchamia zadanie, które zawiera co najmniej jeden krok.
  • Krok może być zadaniem lub skryptem i jest najmniejszym blokiem konstrukcyjnym potoku.
  • Zadanie to wstępnie spakowany skrypt, który wykonuje akcję, taką jak wywoływanie interfejsu API REST lub publikowanie artefaktu kompilacji.
  • Artefakt to kolekcja plików lub pakietów publikowanych przez przebieg.

Napiwek

Aby uzyskać bardziej szczegółowe informacje na temat różnych składników potoku i sposobu ich używania, zobacz Linki podane w sekcji Podsumowanie .

Zadania programu Terraform dla usługi Azure Pipelines

Podczas wykonywania poleceń, które wchodzą w interakcję z platformą Azure, taką jak plan, applyi destroy, zadanie użyje połączenia usługi platformy Azure do autoryzowania operacji względem subskrypcji docelowej. Zalecanym sposobem nawiązywania połączenia z platformą Azure jest powiązanie połączenia usługi z jednostką usługi platformy Azure. Jednostka usługi platformy Azure to tożsamość, która jest tworzona w celu uzyskiwania dostępu do zasobów platformy Azure przy użyciu zautomatyzowanych narzędzi.

Poniższy fragment kodu YAML używa dostawcy azurermnarzędzia Terraform usługi Azure Pipeline. Połączenie z usługą jest określane za pośrednictwem danych wejściowych environmentServiceNameAzureRM :

- task: TerraformTaskV1@0
  inputs:
    provider: 'azurerm'
    command: 'apply'
    workingDirectory: $(Build.Repository.LocalPath)/terraform
    backendAzureRmContainerName: 'tfstate'
    backendAzureRmKey: 'tf/terraform.tfstate'
    environmentServiceNameAzureRM: $(serviceConnection)

Napiwek

Jeśli używasz azurerm jako dostawcy narzędzia Terraform usługi Azure Pipeline, musisz również podać połączenie z usługą i kontenerem magazynu do użycia ze stanem zaplecza programu Terraform.

Przekazywanie parametrów

Istnieje wiele metod przekazywania parametrów do poleceń terraform. Zmienne umożliwiają wygodne uzyskiwanie kluczowych danych w różnych częściach potoku.

Zmienną dla potoku kompilacji można ustawić, wykonując następujące kroki:

  1. Przejdź do strony Potoki , wybierz odpowiedni potok, a następnie wybierz pozycję Edytuj.
  2. Znajdź zmienne dla tego potoku.
  3. Dodaj lub zaktualizuj zmienną.
  4. Aby oznaczyć zmienną jako wpis tajny, wybierz pozycję Zachowaj ten wpis tajny wartości.
  5. Zapisz potok.

Dane wyjściowe narzędzia Terraform do zmiennych potoku

Zadanie TerraformCLI obsługuje uruchamianie polecenia narzędzia Terraform output . Po uruchomieniu interfejsu wiersza polecenia zmienne potoku zostaną utworzone na podstawie każdej zmiennej wyjściowej emitowane z terraform output polecenia .

Następne kroki

W następnej lekcji skonfigurujemy przykładowy projekt i użyjemy usługi Azure Pipelines z programem Terraform, aby wdrożyć go na platformie Azure.