Använda en Terraform-plan för att distribuera en Amazon Web Services Amazon Elastic Compute Cloud-instans och ansluta den till Azure Arc
Den här artikeln innehåller vägledning om hur du använder den tillhandahållna Terraform-planen för att distribuera en Amazon Web Services-instans (AWS) Amazon Elastic Compute Cloud (EC2) och ansluta den som en Azure Arc-aktiverad serverresurs.
Förutsättningar
Klona Azure Arc Jumpstart-lagringsplatsen.
git clone https://github.com/microsoft/azure_arc.git
Installera eller uppdatera Azure CLI till version 2.7 och senare. Använd följande kommando för att kontrollera den aktuella installerade versionen.
az --version
Generera SSH-nyckel (eller använd befintlig SSH-nyckel)
Skapa ett Huvudnamn för Azure-tjänsten.
För att ansluta den virtuella AWS-datorn till Azure Arc krävs ett Huvudnamn för Azure-tjänsten som tilldelats rollen Deltagare. Om du vill skapa det loggar du in på ditt Azure-konto och kör följande kommando. Du kan också köra det här kommandot i 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>"
Till exempel:
az ad sp create-for-rbac -n "http://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
Resultatet bör se ut så här:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcAWS", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Kommentar
Vi rekommenderar starkt att du omfånget tjänstens huvudnamn till en specifik Azure-prenumeration och resursgrupp.
Skapa en AWS-identitet
För att Terraform ska kunna skapa resurser i AWS måste vi skapa en ny AWS IAM-roll med lämpliga behörigheter och konfigurera Terraform att använda den.
När du har loggat in väljer du listrutan Tjänster längst upp till vänster. Under Säkerhet, identitet och efterlevnad väljer du IAM för att komma åt sidan för identitets- och åtkomsthantering
Klicka på Användare på den vänstra menyn och välj sedan Lägg till användare för att skapa en ny IAM-användare.
På sidan Lägg till användare namnger du användaren
Terraform
och markerar kryssrutan Programmatisk åtkomst och väljer sedan Nästa.På sidan Ange behörigheter väljer du Koppla befintliga principer direkt och väljer sedan rutan bredvid AmazonEC2FullAccess enligt skärmbilden och väljer sedan Nästa.
På sidan Taggar tilldelar du en tagg med nyckeln
azure-arc-demo
och väljer Nästa för att gå vidare till sidan Granska .Kontrollera att allt är korrekt och välj Skapa användare när det är klart.
När användaren har skapats visas användarens åtkomstnyckel-ID och hemliga åtkomstnyckel. Kopiera dessa värden innan du väljer Stäng. På nästa sida kan du se ett exempel på hur detta ska se ut. När du har dessa nycklar kan du använda dem med Terraform för att skapa AWS-resurser.
Konfigurera Terraform
Innan du kör Terraform-planen måste du exportera de miljövariabler som ska användas av planen. Dessa variabler baseras på din Azure-prenumeration och klientorganisation, Azure-tjänstens huvudnamn och AWS IAM-användaren och nycklarna som du nyss skapade.
Hämta ditt Azure-prenumerations-ID och klient-ID med hjälp av
az account list
kommandot .Terraform-planen skapar resurser i både Microsoft Azure och AWS. Sedan körs ett skript på en virtuell AWS EC2-dator för att installera Azure Arc-agenten och alla nödvändiga artefakter. Det här skriptet kräver viss information om dina AWS- och Azure-miljöer. Redigera
scripts/vars.sh
och uppdatera var och en av variablerna med lämpliga värden.TF_VAR_subscription_id
= ditt Azure-prenumerations-IDTF_VAR_client_id
= ditt program-ID för azure-tjänstens huvudnamnTF_VAR_client_secret
= lösenordet för azure-tjänstens huvudnamnTF_VAR_tenant_id
= ditt Azure-klient-IDAWS_ACCESS_KEY_ID
= AWS-åtkomstnyckelAWS_SECRET_ACCESS_KEY
= AWS-hemlig nyckel
Från Azure CLI navigerar du till katalogen för
azure_arc_servers_jumpstart/aws/ubuntu/terraform
den klonade lagringsplatsen.Exportera de miljövariabler som du redigerade genom att köra
scripts/vars.sh
med källkommandot enligt nedan. Terraform kräver att dessa anges för att planen ska köras korrekt. Observera att det här skriptet också körs automatiskt på den virtuella AWS-datorn som en del av Terraform-distributionen.source ./scripts/vars.sh
Kontrollera att dina SSH-nycklar är tillgängliga i ~/.ssh och med namnet
id_rsa.pub
ochid_rsa
. Om du har följtssh-keygen
guiden ovan för att skapa din nyckel bör den redan vara korrekt konfigurerad. Annars kan du behöva ändramain.tf
för att använda en nyckel med en annan sökväg.terraform init
Kör kommandot som laddar ned Terraform AzureRM-providern.
Distribution
terraform apply --auto-approve
Kör kommandot och vänta tills planen har slutförts. När du är klar har du en AWS Amazon Linux 2 EC2-instans distribuerad och ansluten som en ny Azure Arc-aktiverad server i en ny resursgrupp.Öppna Azure-portalen och gå till
arc-aws-demo
resursgruppen. Den virtuella datorn som skapas i AWS visas som en resurs.
Halvautomatiserad distribution (valfritt)
Som du kanske har märkt är det sista steget i körningen att registrera den virtuella datorn som en ny Azure Arc-aktiverad serverresurs.
Om du vill demonstrera/kontrollera den faktiska registreringsprocessen gör du följande:
I skriptmallen
install_arc_agent.sh.tmpl
kommenterar du ut avsnittetrun connect command
och sparar filen.Hämta den offentliga IP-adressen för den virtuella AWS-datorn genom att köra
terraform output
.SSH den virtuella datorn med hjälp av
ssh ubuntu@xx.xx.xx.xx
värd-IP-adressenxx.xx.xx.xx
.Exportera alla miljövariabler i
vars.sh
.Kör följande kommando:
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
När den är klar registreras den virtuella datorn med Azure Arc och visas i resursgruppen via Azure-portalen.
Ta bort distributionen
Om du vill ta bort alla resurser som du skapade som en del av den här demonstrationen terraform destroy --auto-approve
använder du kommandot enligt nedan.
Du kan också ta bort AWS EC2-instansen direkt genom att avsluta den från AWS-konsolen. Observera att det tar några minuter innan instansen faktiskt tas bort.
Om du tar bort instansen manuellt bör du också ta bort *./scripts/install_arc_agent.sh
, som skapas av Terraform-planen.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för