Wdrażanie wystąpienia usługi Amazon Web Services Amazon Elastic Compute Cloud za pomocą planu terraform i łączenie go z usługą Azure Arc

Ten artykuł zawiera wskazówki dotyczące używania dostarczonego planu narzędzia Terraform do wdrażania wystąpienia usługi Amazon Web Services (AWS) Amazon Elastic Compute Cloud (EC2) 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 AWS

  5. Instalowanie programu Terraform >= 0.12

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

    Aby połączyć maszynę wirtualną platformy AWS 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://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

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

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

    Uwaga

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

Tworzenie tożsamości platformy AWS

Aby program Terraform utworzył zasoby na platformie AWS, musimy utworzyć nową rolę zarządzania dostępem i tożsamościami platformy AWS z odpowiednimi uprawnieniami i skonfigurować narzędzie Terraform do korzystania z niego.

  1. Zaloguj się do konsoli zarządzania platformy AWS

  2. Po zalogowaniu wybierz listę rozwijaną Usługi w lewym górnym rogu. W obszarze Zabezpieczenia, tożsamość i zgodność wybierz pozycję Zarządzanie dostępem i tożsamościami, aby uzyskać dostęp do strony zarządzania tożsamościami i dostępem

    A screenshot of an AWS cloud console.

    A screenshot of identity and access management in the AWS cloud console.

  3. Kliknij pozycję Użytkownicy z menu po lewej stronie, a następnie wybierz pozycję Dodaj użytkownika, aby utworzyć nowego użytkownika IAM.

    A screenshot of creating a new user in an AWS cloud console.

  4. Na stronie Dodawanie użytkownika nadaj użytkownikowi nazwę i Terraform zaznacz pole wyboru Dostęp programowy, a następnie wybierz przycisk Dalej.

    Second screenshot of creating a new user in an AWS cloud console.

  5. Na stronie Ustawianie uprawnień wybierz pozycję Dołącz istniejące zasady bezpośrednio, a następnie wybierz pole obok pozycji AmazonEC2FullAccess, jak pokazano na zrzucie ekranu, a następnie wybierz pozycję Dalej.

    Third screenshot of creating a new user in an AWS cloud console.

  6. Na stronie Tagi przypisz tag z kluczem azure-arc-demo i wybierz przycisk Dalej, aby przejść do strony Przegląd.

    A screenshot of tags in an AWS cloud console.

  7. Sprawdź, czy wszystko jest poprawne, a następnie wybierz pozycję Utwórz użytkownika , gdy wszystko będzie gotowe.

    Fourth screenshot of creating a user in an AWS cloud console.

  8. Po utworzeniu użytkownika zobaczysz identyfikator klucza dostępu użytkownika i klucz dostępu wpisu tajnego. Skopiuj te wartości przed wybraniem pozycji Zamknij. Na następnej stronie możesz zobaczyć przykład tego, jak powinno to wyglądać. Po utworzeniu tych kluczy będzie można ich używać z programem Terraform do tworzenia zasobów platformy AWS.

    A screenshot of creating a user successfully in an AWS cloud console.

Konfigurowanie narzędzia Terraform

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

  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ługach AWS. Następnie wykonuje skrypt na maszynie wirtualnej usługi AWS EC2 w celu zainstalowania agenta usługi Azure Arc i wszystkich niezbędnych artefaktów. Ten skrypt wymaga pewnych informacji o środowiskach platformy AWS 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
    • AWS_ACCESS_KEY_ID = klucz dostępu platformy AWS
    • AWS_SECRET_ACCESS_KEY = klucz tajny platformy AWS
  3. W interfejsie wiersza polecenia platformy Azure przejdź do azure_arc_servers_jumpstart/aws/ubuntu/terraform 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 platformy AWS w ramach wdrożenia programu Terraform.

    source ./scripts/vars.sh
    
  5. Upewnij się, że klucze SSH są dostępne w plikach ~/.ssh i nazwach id_rsa.pub i id_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ą.

  6. terraform init Uruchom polecenie , które pobierze dostawcę modułu AzureRM programu Terraform.

    A screenshot of the terraform init command.

Wdrożenie

  1. Uruchom polecenie i poczekaj terraform apply --auto-approve na zakończenie planu. Po zakończeniu będziesz mieć wdrożone wystąpienie usługi AwS Amazon Linux 2 EC2 i połączone jako nowy serwer z obsługą usługi Azure Arc w nowej grupie zasobów.

  2. Otwórz witrynę Azure Portal i przejdź do arc-aws-demo grupy zasobów. Maszyna wirtualna utworzona na platformie AWS będzie widoczna jako zasób.

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

    A screenshot of AWS console displaying EC2 instances.

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 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 platformy AWS, uruchamiając polecenie terraform output.

    A screenshot of output from Terraform.

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

    A screenshot of an SSH key connecting to an EC2 server.

  4. Wyeksportuj wszystkie zmienne środowiskowe w pliku vars.sh.

    A screenshot of exported environment variables in 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 "arc-aws-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
    

    Another screenshot of the azcmagent connect command.

  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żesz usunąć wystąpienie usługi AWS EC2 bezpośrednio, przerywając je z poziomu konsoli platformy AWS. Należy pamiętać, że usunięcie wystąpienia potrwa kilka minut.

A screenshot of how to terminate an instance in the AWS console.

W przypadku ręcznego usunięcia wystąpienia należy również usunąć *./scripts/install_arc_agent.shelement , który jest tworzony przez plan programu Terraform.