Wdrażanie wystąpienia systemu Ubuntu platformy Google Cloud Platform i łączenie go z usługą Azure Arc przy użyciu planu terraform

Ten artykuł zawiera wskazówki dotyczące używania dostarczonego planu narzędzia Terraform do wdrażania wystąpienia platformy Google Cloud Platform (GCP) i łączenia go jako zasobu serwera z obsługą usługi Azure Arc.

Wymagania wstępne

  1. Sklonuj repozytorium Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Zainstaluj lub zaktualizuj interfejs wiersza polecenia platformy Azure do wersji 2.7 lub nowszej. Użyj następującego polecenia, aby sprawdzić bieżącą zainstalowaną wersję.

    az --version
    
  3. Generowanie klucza SSH (lub używanie istniejącego klucza SSH)

  4. Tworzenie bezpłatnego konta platformy Google Cloud Platform

  5. Instalowanie programu Terraform >= 0.12

  6. Utwórz jednostkę usługi platformy Azure.

    Aby połączyć maszynę wirtualną GCP z usługą Azure Arc, wymagana jest jednostka usługi platformy Azure przypisana z rolą Współautor. Aby go utworzyć, zaloguj się do konta platformy Azure i uruchom następujące polecenie. To polecenie można również uruchomić w usłudze Azure Cloud Shell.

    az login
    az account set -s <Your Subscription ID>
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
    

    Na przykład:

    az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Dane wyjściowe powinny wyglądać podobnie do poniższych:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcGCP",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Uwaga

    Zdecydowanie zalecamy określanie zakresu jednostki usługi do określonej subskrypcji platformy Azure i grupy zasobów.

Tworzenie nowego projektu GCP

  1. Przejdź do konsoli interfejsu API Google i zaloguj się przy użyciu konta Google. Po zalogowaniu utwórz nowy projekt o nazwie Azure Arc demo. Po jego utworzeniu pamiętaj, aby skopiować identyfikator projektu, ponieważ zwykle różni się on od nazwy projektu.

    First screenshot of the New Project page in the GCP console.

    Second screenshot of the New Project page in the GCP console.

  2. Po utworzeniu nowego projektu i wybraniu go na liście rozwijanej w górnej części strony należy włączyć dostęp do interfejsu API aparatu obliczeniowego dla projektu. Kliknij pozycję + Włącz interfejsy API i usługi i wyszukaj aparat obliczeniowy. Następnie wybierz pozycję Włącz , aby włączyć dostęp do interfejsu API.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Następnie skonfiguruj klucz konta usługi, którego narzędzie Terraform będzie używać do tworzenia zasobów w projekcie GCP i zarządzania nimi. Przejdź do strony tworzenia klucza konta usługi. Z listy rozwijanej wybierz pozycję Nowe konto usługi, nadaj mu nazwę, wybierz pozycję projekt, a następnie wybierz pozycję Właściciel jako rolę, plik JSON jako typ klucza, a następnie wybierz pozycję Utwórz. Spowoduje to pobranie pliku JSON ze wszystkimi poświadczeniami, które będą potrzebne do zarządzania zasobami przez program Terraform. Skopiuj pobrany plik JSON do azure_arc_servers_jumpstart/gcp/ubuntu/terraform katalogu.

    A screenshot of how to create a service account in the GCP console.

  4. Na koniec upewnij się, że klucze SSH są dostępne w nazwach ~/.ssh i i id_rsa.pubid_rsa. Jeśli wykonano ssh-keygen powyższe instrukcje, aby utworzyć klucz, powinno to być już skonfigurowane poprawnie. Jeśli nie, może być konieczne zmodyfikowanie main.tf , aby użyć klucza z inną ścieżką.

Wdrożenie

Przed wykonaniem planu programu Terraform należy wyeksportować zmienne środowiskowe, które będą używane przez plan. Te zmienne są oparte na właśnie utworzonej jednostce usługi platformy Azure, subskrypcji i dzierżawie platformy Azure oraz nazwie projektu GCP.

  1. Pobierz identyfikator subskrypcji platformy Azure i identyfikator dzierżawy az account list przy użyciu polecenia .

  2. Plan narzędzia Terraform tworzy zasoby zarówno na platformie Microsoft Azure, jak i w usłudze Google Cloud Platform. Następnie wykonuje skrypt na maszynie wirtualnej GCP w celu zainstalowania agenta usługi Azure Arc i wszystkich niezbędnych artefaktów. Ten skrypt wymaga pewnych informacji na temat środowiska GCP i platformy Azure. Edytuj scripts/vars.sh i aktualizuj każdą ze zmiennych przy użyciu odpowiednich wartości.

    • TF_VAR_subscription_id= identyfikator subskrypcji platformy Azure
    • TF_VAR_client_id = identyfikator aplikacji jednostki usługi platformy Azure
    • TF_VAR_client_secret = hasło jednostki usługi platformy Azure
    • TF_VAR_tenant_id = identyfikator dzierżawy platformy Azure
    • TF_VAR_gcp_project_id = identyfikator projektu GCP
    • TF_VAR_gcp_credentials_filename = nazwa pliku JSON poświadczeń GCP
  3. Z poziomu interfejsu azure_arc_servers_jumpstart/gcp/ubuntu/terraform wiersza polecenia przejdź do katalogu sklonowanego repozytorium.

  4. Wyeksportuj edytowane zmienne środowiskowe, uruchamiając polecenie scripts/vars.sh źródłowe, jak pokazano poniżej. Narzędzie Terraform wymaga, aby plan był prawidłowo wykonywany. Należy pamiętać, że ten skrypt zostanie również automatycznie wykonany zdalnie na maszynie wirtualnej GCP w ramach wdrożenia narzędzia Terraform.

    source ./scripts/vars.sh
    
  5. terraform init Uruchom polecenie , które pobierze dostawcę modułu AzureRM programu Terraform.

    A screenshot of the terraform init command.

  6. Następnie uruchom terraform apply --auto-approve polecenie i poczekaj na zakończenie planu. Po zakończeniu będziesz mieć wdrożoną i połączoną maszynę wirtualną Z systemem Ubuntu GCP jako nowy serwer z obsługą usługi Azure Arc w nowej grupie zasobów.

  7. Otwórz witrynę Azure Portal i przejdź do arc-gcp-demo grupy zasobów. Maszyna wirtualna utworzona w GCP będzie widoczna jako zasób.

    A screenshot of an Azure Arc-enabled server in the Azure portal.

Wdrożenie częściowo zautomatyzowane (opcjonalne)

Jak można zauważyć, ostatnim krokiem przebiegu jest zarejestrowanie maszyny wirtualnej jako nowego zasobu serwera z obsługą usługi Azure Arc.

A screenshot of running the azcmagent connect command.

Jeśli chcesz demo/kontrolować rzeczywisty proces rejestracji, wykonaj następujące czynności:

  1. W szablonie skryptu oznacz sekcję install_arc_agent.sh.tmpl jako run connect command komentarz i zapisz plik.

    A screenshot showing main.tf being commented out to disable automatic onboarding of an Azure Arc agent.

  2. Uzyskaj publiczny adres IP maszyny wirtualnej GCP, uruchamiając polecenie terraform output.

    A screenshot of output from Terraform.

  3. SSH maszyny wirtualnej przy użyciu adresu ssh arcadmin@xx.xx.xx.xxxx.xx.xx.xx IP hosta.

    A screenshot of an SSH key connecting to a GCP server.

  4. Eksportowanie wszystkich zmiennych środowiskowych w programie vars.sh

    A screenshot of environment variables exporting with vars.sh.

  5. Uruchom następujące polecenie:

    azcmagent connect --service-principal-id $TF_VAR_client_id --service-principal-secret $TF_VAR_client_secret --resource-group "Azure Arc gcp-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
    

    A screenshot of the azcmagent connect command completing successfully.

  6. Po zakończeniu maszyna wirtualna zostanie zarejestrowana w usłudze Azure Arc i widoczna w grupie zasobów za pośrednictwem witryny Azure Portal.

Usuwanie wdrożenia

Aby usunąć wszystkie zasoby utworzone w ramach tego pokazu terraform destroy --auto-approve , użyj polecenia , jak pokazano poniżej.

A screenshot of the terraform destroy command.

Alternatywnie można usunąć maszynę wirtualną GCP bezpośrednio z konsoli GCP.

A screenshot showing how to delete a virtual machine from the GCP console.