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
Sklonuj repozytorium Azure Arc Jumpstart.
git clone https://github.com/microsoft/azure_arc.git
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
Generowanie klucza SSH (lub używanie istniejącego klucza SSH)
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.
Zaloguj się do konsoli zarządzania platformy AWS
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
Kliknij pozycję Użytkownicy z menu po lewej stronie, a następnie wybierz pozycję Dodaj użytkownika, aby utworzyć nowego użytkownika IAM.
Na stronie Dodawanie użytkownika nadaj użytkownikowi nazwę i
Terraform
zaznacz pole wyboru Dostęp programowy, a następnie wybierz przycisk Dalej.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.
Na stronie Tagi przypisz tag z kluczem
azure-arc-demo
i wybierz przycisk Dalej, aby przejść do strony Przegląd.Sprawdź, czy wszystko jest poprawne, a następnie wybierz pozycję Utwórz użytkownika , gdy wszystko będzie gotowe.
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.
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.
Pobierz identyfikator subskrypcji platformy Azure i identyfikator dzierżawy
az account list
przy użyciu polecenia .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 AzureTF_VAR_client_id
= identyfikator aplikacji jednostki usługi platformy AzureTF_VAR_client_secret
= hasło jednostki usługi platformy AzureTF_VAR_tenant_id
= identyfikator dzierżawy platformy AzureAWS_ACCESS_KEY_ID
= klucz dostępu platformy AWSAWS_SECRET_ACCESS_KEY
= klucz tajny platformy AWS
W interfejsie wiersza polecenia platformy Azure przejdź do
azure_arc_servers_jumpstart/aws/ubuntu/terraform
katalogu sklonowanego repozytorium.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
Upewnij się, że klucze SSH są dostępne w plikach ~/.ssh i nazwach
id_rsa.pub
iid_rsa
. Jeśli wykonanossh-keygen
powyższe instrukcje, aby utworzyć klucz, powinno to być już skonfigurowane poprawnie. Jeśli nie, może być konieczne zmodyfikowaniemain.tf
, aby użyć klucza z inną ścieżką.terraform init
Uruchom polecenie , które pobierze dostawcę modułu AzureRM programu Terraform.
Wdrożenie
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.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.
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.
Jeśli chcesz demo/kontrolować rzeczywisty proces rejestracji, wykonaj następujące czynności:
W szablonie skryptu oznacz sekcję
install_arc_agent.sh.tmpl
jakorun connect command
komentarz i zapisz plik.Uzyskaj publiczny adres IP maszyny wirtualnej platformy AWS, uruchamiając polecenie
terraform output
.SSH maszyny wirtualnej przy użyciu adresu
ssh ubuntu@xx.xx.xx.xx
xx.xx.xx.xx
IP hosta.Wyeksportuj wszystkie zmienne środowiskowe w pliku
vars.sh
.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
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.
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.
W przypadku ręcznego usunięcia wystąpienia należy również usunąć *./scripts/install_arc_agent.sh
element , który jest tworzony przez plan programu Terraform.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla