Dela via


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

  1. Klona Azure Arc Jumpstart-lagringsplatsen.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. 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
    
  3. Generera SSH-nyckel (eller använd befintlig SSH-nyckel)

  4. Skapa ett kostnadsfritt AWS-konto

  5. Installera Terraform >= 0.12

  6. 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.

  1. Logga in på AWS-hanteringskonsolen

  2. 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

    A screenshot of an AWS cloud console.

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

  3. Klicka på Användareden vänstra menyn och välj sedan Lägg till användare för att skapa en ny IAM-användare.

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

  4. På sidan Lägg till användare namnger du användaren Terraform och markerar kryssrutan Programmatisk åtkomst och väljer sedan Nästa.

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

  5. 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.

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

  6. 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 .

    A screenshot of tags in an AWS cloud console.

  7. Kontrollera att allt är korrekt och välj Skapa användare när det är klart.

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

  8. 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.

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

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.

  1. Hämta ditt Azure-prenumerations-ID och klient-ID med hjälp av az account list kommandot .

  2. 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-ID
    • TF_VAR_client_id = ditt program-ID för azure-tjänstens huvudnamn
    • TF_VAR_client_secret = lösenordet för azure-tjänstens huvudnamn
    • TF_VAR_tenant_id = ditt Azure-klient-ID
    • AWS_ACCESS_KEY_ID = AWS-åtkomstnyckel
    • AWS_SECRET_ACCESS_KEY = AWS-hemlig nyckel
  3. Från Azure CLI navigerar du till katalogen för azure_arc_servers_jumpstart/aws/ubuntu/terraform den klonade lagringsplatsen.

  4. 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
    
  5. Kontrollera att dina SSH-nycklar är tillgängliga i ~/.ssh och med namnet id_rsa.pub och id_rsa. Om du har följt ssh-keygen guiden ovan för att skapa din nyckel bör den redan vara korrekt konfigurerad. Annars kan du behöva ändra main.tf för att använda en nyckel med en annan sökväg.

  6. terraform init Kör kommandot som laddar ned Terraform AzureRM-providern.

    A screenshot of the terraform init command.

Distribution

  1. 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.

  2. Öppna Azure-portalen och gå till arc-aws-demo resursgruppen. Den virtuella datorn som skapas i AWS visas som en resurs.

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

    A screenshot of AWS console displaying EC2 instances.

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.

A screenshot of the azcmagent connect command.

Om du vill demonstrera/kontrollera den faktiska registreringsprocessen gör du följande:

  1. I skriptmallen install_arc_agent.sh.tmpl kommenterar du ut avsnittet run connect command och sparar filen.

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

  2. Hämta den offentliga IP-adressen för den virtuella AWS-datorn genom att köra terraform output.

    A screenshot of output from Terraform.

  3. SSH den virtuella datorn med hjälp av ssh ubuntu@xx.xx.xx.xx värd-IP-adressen xx.xx.xx.xx .

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

  4. Exportera alla miljövariabler i vars.sh.

    A screenshot of exported environment variables in vars.sh.

  5. 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
    

    Another screenshot of the azcmagent connect command.

  6. 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.

A screenshot of the terraform destroy command.

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.

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

Om du tar bort instansen manuellt bör du också ta bort *./scripts/install_arc_agent.sh, som skapas av Terraform-planen.