Verwenden eines Terraform-Plans zum Bereitstellen einer Amazon Linux 2-Instanz in Amazon Elastic Compute Cloud und Herstellen einer Verbindung mit Azure Arc
In diesem Artikel finden Sie eine Anleitung zum Verwenden des bereitgestellten Terraform-Plans, um eine Instanz von Amazon Web Services (AWS) Amazon Elastic Compute Cloud (EC2) Linux 2 bereitzustellen und sie mit einer Serverressource mit Azure Arc-Unterstützung zu verbinden.
Voraussetzungen
Klonen Sie das Repository für den Schnelleinstieg in Azure Arc.
git clone https://github.com/microsoft/azure_arc.git
Installieren oder aktualisieren Sie Azure CLI. Die ausgeführte Azure CLI-Version muss mindestens 2.7.0 sein. Überprüfen Sie mit
az --version
Ihre aktuell installierte Version.Generieren Sie einen SSH-Schlüssel (oder verwenden Sie einen vorhandenen SSH-Schlüssel)
Erstellen Sie einen Azure-Dienstprinzipal.
Um die AWS-VM mit Azure Arc zu verbinden, ist ein Azure-Dienstprinzipal mit der Rolle „Mitwirkender“ erforderlich. Zum Erstellen dieses Dienstprinzipals melden Sie sich bei Ihrem Azure-Konto an und führen die folgenden Befehle aus:
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>"
Beispiel:
az ad sp create-for-rbac -n "http://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
Die Ausgabe sollte wie folgt aussehen:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcAWS", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Hinweis
Es wird dringend empfohlen, dass Sie für den Dienstprinzipal ein bestimmtes Azure-Abonnement und eine bestimmte Ressourcengruppe festlegen.
Erstellen einer AWS-Identität
Damit Terraform Ressourcen in AWS erstellen kann, muss eine neue AWS IAM-Rolle mit den erforderlichen Berechtigungen erstellt und Terraform für die Verwendung dieser Rolle konfiguriert werden.
Melden Sie sich bei der AWS-Managementkonsole an.
Wählen Sie nach der Anmeldung links oben die Dropdownliste Services aus. Wählen Sie unter Security, Identity, and Compliance (Sicherheit, Identität und Compliance) IAM aus, um auf die Seite „Identity and Access Management“ (Identitäts- und Zugriffsverwaltung) zuzugreifen.
Klicken Sie im Menü auf der linken Seite auf User (Benutzer), und wählen Sie Add user (Benutzer hinzufügen) aus, um einen neuen IAM-Benutzer zu erstellen.
Nennen Sie auf der Seite Add User (Benutzer hinzufügen) den Benutzer
Terraform
. Aktivieren Sie das Kontrollkästchen Programmatic Access (Programmgesteuerter Zugriff), und wählen Sie dann Next (Weiter) aus.Wählen Sie auf der Seite Set Permissions (Berechtigungen festlegen) die Option Attach existing policies directly (Vorhandene Richtlinien direkt anfügen) aus. Aktivieren Sie dann das Kontrollkästchen neben AmazonEC2FullAccess (siehe Screenshot), und wählen Sie dann Next (Weiter) aus.
Weisen Sie auf der Seite Tags ein Tag mit dem Schlüssel
azure-arc-demo
zu. Wählen Sie dann Next (Weiter) aus, um zur Überprüfungsseite zu gelangen.Vergewissern Sie sich, dass alles stimmt, und wählen Sie dann Create User (Benutzer erstellen) aus.
Nach dem Erstellen des Benutzers sehen Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel des Benutzers. Kopieren Sie diese Werte, ehe Sie Close (Schließen) auswählen. Auf der nächsten Seite sehen Sie ein Beispiel, wie dies aussehen sollte. Sobald Sie diese Schlüssel haben, können Sie mithilfe von Terraform AWS-Ressourcen erstellen.
Konfigurieren von Terraform
Bevor Sie den Terraform-Plan ausführen, müssen Sie die vom Plan verwendeten Umgebungsvariablen exportieren. Diese Variablen basieren auf Ihrem Azure-Abonnement und -Mandanten, dem Azure-Dienstprinzipal sowie dem AWS IAM-Benutzer und den Schlüsseln, die Sie soeben erstellt haben.
Rufen Sie Ihre Azure-Abonnement-ID und Mandanten-ID mithilfe des Befehls
az account list
ab.Durch den Terraform-Plan werden Ressourcen sowohl in Microsoft Azure als auch in AWS erstellt. Anschließend wird ein Skript auf einer AWS EC2-VM ausgeführt, um den Azure Arc-Agent und alle erforderlichen Artefakte zu installieren. Für dieses Skript werden bestimmte Informationen zu Ihrer AWS- und Azure-Umgebung benötigt. Bearbeiten Sie
scripts/vars.sh
, und aktualisieren Sie alle Variablen mit den entsprechenden Werten.TF_VAR_subscription_id
= ID Ihres Azure-AbonnementsTF_VAR_client_id
= Anwendungs-ID Ihres Azure-DienstprinzipalsTF_VAR_client_secret
= Kennwort Ihres Azure-DienstprinzipalsTF_VAR_tenant_id
= ID Ihres Azure-MandantenAWS_ACCESS_KEY_ID
= AWS-ZugriffsschlüsselAWS_SECRET_ACCESS_KEY
= Geheimer AWS-Schlüssel
Navigieren Sie über die Azure CLI zum Verzeichnis
azure_arc_servers_jumpstart/aws/al2/terraform
des geklonten Repositorys.Exportieren Sie die bearbeiteten Umgebungsvariablen, indem Sie
scripts/vars.sh
mit dem Befehl „source“ ausführen (siehe unten). Diese Variablen sind für eine ordnungsgemäße Ausführung des Terraform-Plans erforderlich. Beachten Sie, dass dieses Skript im Rahmen der Terraform-Bereitstellung auch automatisch remote auf der AWS-VM ausgeführt wird.source ./scripts/vars.sh
Stellen Sie sicher, dass Ihre SSH-Schlüssel in
~/.ssh
verfügbar sind und die Namenid_rsa.pub
undid_rsa
haben. Wenn Sie den obigen Leitfaden zussh-keygen
bei der Erstellung Ihres Schlüssels befolgt haben, sollte dieser bereits ordnungsgemäß eingerichtet sein. Andernfalls müssen Sie möglicherweisemain.tf
ändern, um einen Schlüssel mit einem anderen Pfad zu verwenden.Führen Sie den Befehl
terraform init
aus, um die AzureRM-Anbieter für Terraform herunterzuladen.
Bereitstellung
Führen Sie den Befehl
terraform apply --auto-approve
aus, und warten Sie, bis der Plan ausgeführt wurde. Nach Abschluss des Vorgangs haben Sie eine AWS Amazon Linux 2 EC2-Instanz bereitgestellt und als neuen Server mit Azure Arc-Unterstützung innerhalb einer neuen Ressourcengruppe verbunden.Öffnen Sie das Azure-Portal, und navigieren Sie zur Ressourcengruppe
arc-servers-demo
. Die in AWS erstellte VM ist als Ressource sichtbar.
Halbautomatisierte Bereitstellung (optional)
Wie Sie vielleicht bemerkt haben, besteht der letzte Schritt darin, die VM als neue Serverressource mit Azure Arc-Unterstützung zu registrieren.
Wenn Sie den eigentlichen Registrierungsvorgang demonstrieren/steuern möchten, gehen Sie wie folgt vor:
Kommentieren Sie in der Skriptvorlage
install_arc_agent.sh.tmpl
den Abschnittrun connect command
aus, und speichern Sie die Datei.Rufen Sie die öffentliche IP-Adresse der AWS-VM durch Ausführen von
terraform output
ab.Verbinden Sie sich über SSH mit der VM unter Verwendung von
ssh ec2-user@xx.xx.xx.xx
, wobeixx.xx.xx.xx
die IP-Adresse des Hosts ist.Exportieren Sie alle Umgebungsvariablen in
vars.sh
.Führen Sie den folgenden Befehl aus:
azcmagent connect --service-principal-id $TF_VAR_client_id --service-principal-secret $TF_VAR_client_secret --resource-group "Arc-Servers-Demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
Nach Abschluss des Vorgangs wird Ihre VM bei Azure Arc registriert und im Azure-Portal in der Ressourcengruppe angezeigt.
Löschen der Bereitstellung
Um alle Ressourcen zu löschen, die Sie als Teil dieser Demo erstellt haben, führen Sie den Befehl terraform destroy --auto-approve
wie unten gezeigt aus.
Alternativ können Sie die AWS EC2-Instanz auch direkt löschen, indem Sie sie über die AWS-Konsole außer Betrieb nehmen.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für