Použijte plán Terraformu k nasazení instance Amazon Linux 2 v cloudu Amazon elastického cloudu a připojte ho ke službě Azure ARC.Use a Terraform plan to deploy an Amazon Linux 2 instance on Amazon Elastic Compute Cloud and connect it to Azure Arc

V tomto článku najdete pokyny k používání poskytnutého plánu terraformu k nasazení instance služby Amazon Web Services (AWS) Amazon elastického cloudového cloudu (EC2) pro Linux 2 a jejich připojení jako prostředku serveru s podporou ARC Azure.This article provides guidance for using the provided Terraform plan to deploy an Amazon Web Services (AWS) Amazon Elastic Compute Cloud (EC2) Linux 2 instance and connect it as an Azure Arc enabled server resource.

PožadavkyPrerequisites

  1. Naklonujte úložiště rychlé zprovoznění pro Azure ARC.Clone the Azure Arc Jumpstart repository.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Nainstalovat nebo aktualizovat rozhraní příkazového řádku Azure CLI.Install or update Azure CLI. V Azure CLI by měla běžet verze 2.7.0 nebo novější.Azure CLI should be running version 2.7.0 or later. Použijte az --version ke kontrole aktuálně nainstalované verze.Use az --version to check your current installed version.

  3. Generovat klíč SSH (nebo použít existující klíč SSH)Generate SSH key (or use existing SSH key)

  4. Vytvořit bezplatný účet AWSCreate free AWS account

  5. Instalace Terraformu >= 0,12Install Terraform >= 0.12

  6. Vytvoření instančního objektu AzureCreate an Azure service principal.

    Pokud chcete připojit virtuální počítač AWS ke službě Azure ARC, vyžaduje se instanční objekt Azure přiřazený k roli přispěvatele.To connect the AWS virtual machine to Azure Arc, an Azure service principal assigned with the Contributor role is required. Pokud ho chcete vytvořit, přihlaste se ke svému účtu Azure a spusťte následující příkazy:To create it, sign in to your Azure account and run the following commands:

    az login
    az ad sp create-for-rbac -n "http://AzureArcAWS" --role contributor
    

    Výstup by měl vypadat nějak takto:Output should look similar to this:

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

    Poznámka

    Důrazně doporučujeme nastavit obor instančního objektu na konkrétní předplatné Azure a skupinu prostředků.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.

Vytvoření AWS identityCreate an AWS identity

Aby Terraformu vytváření prostředků v AWS, bude potřeba vytvořit novou AWS roli IAM s příslušnými oprávněními a nakonfigurovat Terraformu pro její použití.In order for Terraform to create resources in AWS, we will need to create a new AWS IAM role with appropriate permissions and configure Terraform to use it.

  1. Přihlaste se ke konzole pro správu AWS .Sign in to the AWS management console

  2. Po přihlášení vyberte v levém horním panelu rozevírací seznam služby .After signing in, select the Services dropdown in the top left. V části zabezpečení, identita a dodržování předpisů vyberte IAM pro přístup ke stránce pro správu identit a přístupu .Under Security, Identity, and Compliance, select IAM to access the identity and access management page

    Snímek obrazovky s AWS cloudovou konzolou.

    Snímek obrazovky s AWS cloudovou konzolou pro správu identit a přístupu

  3. V nabídce vlevo klikněte na Uživatelé a pak vyberte Přidat uživatele a vytvořte nového uživatele IAM.Click on Users from the left menu, and then select Add user to create a new IAM user.

    Snímek obrazovky s postupem, jak vytvořit nového uživatele v konzole AWS cloudu

  4. Na stránce Přidat uživatele pojmenujte uživatele Terraform a zaškrtněte políčko programový přístup a pak vyberte Další .On the Add User page, name the user Terraform and select the Programmatic Access check box, and then select Next

    Druhý snímek obrazovky s postupem, jak vytvořit nového uživatele v konzole AWS cloudu

  5. Na stránce nastavit oprávnění vyberte možnost připojit existující zásady přímo a potom zaškrtněte políčko vedle AmazonEC2FullAccess , jak je vidět na snímku obrazovky, a pak vyberte Další .On the Set Permissions page, select Attach existing policies directly and then check the box next to AmazonEC2FullAccess as seen in the screenshot, and then select Next

    Třetí snímek obrazovky s postupem, jak vytvořit nového uživatele v konzole AWS cloudu.

  6. Na stránce značky přiřaďte značku k klíči azure-arc-demo a potom kliknutím na tlačítko Další přejděte na stránku revize.On the Tags page, assign a tag with a key of azure-arc-demo, then select Next to proceed to the review page.

    Snímek obrazovky značek v konzole AWS Cloud.

  7. Ověřte, zda je vše správné, a pak vyberte vytvořit uživatele.Verify that everything is correct, then select Create user.

    Čtvrtá obrazovka, jak vytvořit nového uživatele v konzole AWS cloudu.

  8. Po vytvoření uživatele se zobrazí ID přístupového klíče uživatele a tajný přístupový klíč.After the user is created, you will see the user's access key ID and secret access key. Před výběrem možnosti Zavřít tyto hodnoty zkopírujte.Copy these values down before selecting Close. Na další stránce vidíte příklad toho, co by mělo vypadat jako.On the next page, you can see an example of what this should look like. Jakmile budete mít tyto klíče, budete je moct používat s Terraformu k vytváření prostředků AWS.Once you have these keys, you will be able to use them with Terraform to create AWS resources.

    Snímek obrazovky s úspěšně vytvořeným uživatelem v konzole AWS Cloud.

Konfigurace TerraformuConfigure Terraform

Před spuštěním plánu Terraformu je nutné exportovat proměnné prostředí, které plán použije.Before executing the Terraform plan, you must export the environment variables which will be used by the plan. Tyto proměnné jsou založené na předplatném Azure a tenantovi, instančním objektu Azure a AWS uživateli a klíčích IAM, které jste právě vytvořili.These variables are based on your Azure subscription and tenant, the Azure service principal, and the AWS IAM user and keys you just created.

  1. Pomocí příkazu načtěte ID vašeho předplatného Azure a ID tenanta az account list .Retrieve your Azure subscription ID and tenant ID using the az account list command.

  2. Plán Terraformu vytvoří prostředky v obou Microsoft Azure i AWS.The Terraform plan creates resources in both Microsoft Azure and AWS. Potom spustí skript na virtuálním počítači s AWS EC2 pro instalaci agenta Azure ARC a všech potřebných artefaktů.It then executes a script on an AWS EC2 virtual machine to install the Azure Arc agent and all necessary artifacts. Tento skript vyžaduje určité informace o prostředích AWS a Azure.This script requires certain information about your AWS and Azure environments. Upravte scripts/vars.sh a aktualizujte každou proměnnou odpovídajícími hodnotami.Edit scripts/vars.sh and update each of the variables with the appropriate values.

    • TF_VAR_subscription_id= ID vašeho předplatného AzureTF_VAR_subscription_id= your Azure subscription ID
    • TF_VAR_client_id= ID aplikace instančního objektu služby AzureTF_VAR_client_id= your Azure service principal application ID
    • TF_VAR_client_secret = Vaše heslo instančního objektu služby AzureTF_VAR_client_secret = your Azure service principal password
    • TF_VAR_tenant_id= vaše ID tenanta AzureTF_VAR_tenant_id= your Azure tenant ID
    • AWS_ACCESS_KEY_ID = Přístupový klíč AWSAWS_ACCESS_KEY_ID = AWS access key
    • AWS_SECRET_ACCESS_KEY = AWS tajný klíčAWS_SECRET_ACCESS_KEY = AWS secret key
  3. V Azure CLI přejděte do azure_arc_servers_jumpstart/aws/al2/terraform adresáře klonovaného úložiště.From the Azure CLI, navigate to the azure_arc_servers_jumpstart/aws/al2/terraform directory of the cloned repo.

  4. Exportujte proměnné prostředí, které jste upravovali, spuštěním scripts/vars.sh příkazu se zdrojovým příkazem, jak je znázorněno níže.Export the environment variables you edited by running scripts/vars.sh with the source command as shown below. Terraformu vyžaduje, aby byly nastaveny pro správné spuštění plánu.Terraform requires these to be set for the plan to execute properly. Všimněte si, že tento skript se také automaticky spustí vzdáleně na virtuálním počítači s AWS jako součást nasazení Terraformu.Note that this script will also be automatically executed remotely on the AWS virtual machine as part of the Terraform deployment.

    source ./scripts/vars.sh
    
  5. Zajistěte, aby byly klíče SSH dostupné v ~/.ssh a pojmenované id_rsa.pub a id_rsa .Make sure your SSH keys are available in ~/.ssh and named id_rsa.pub and id_rsa. Pokud jste postupovali podle výše uvedeného Průvodce ssh-keygen, měli byste tento klíč už správně nastavit.If you followed the ssh-keygen guide above to create your key then this should already be setup correctly. V takovém případě může být nutné upravit, main.tf aby používala klíč s jinou cestou.If not, you may need to modify main.tf to use a key with a different path.

  6. Spusťte terraform init příkaz, který stáhne poskytovatele Terraformu AzureRM.Run the terraform init command which will download the Terraform AzureRM provider.

    Snímek obrazovky s příkazem terraformu init

NasazeníDeployment

  1. Spusťte terraform apply --auto-approve příkaz a počkejte na dokončení plánu.Run the terraform apply --auto-approve command and wait for the plan to finish. Po dokončení budete mít nasazenou instanci AWS Amazon Linux 2 EC2 a připojili se jako nový server s podporou ARC Azure v nové skupině prostředků.Upon completion, you will have an AWS Amazon Linux 2 EC2 instance deployed and connected as a new Azure Arc enabled server inside a new resource group.

  2. Otevřete Azure Portal a přejděte do arc-servers-demo skupiny prostředků.Open the Azure portal and navigate to the arc-servers-demo resource group. Virtuální počítač vytvořený v AWS bude viditelný jako prostředek.The virtual machine created in AWS will be visible as a resource.

    Snímek obrazovky zobrazující Server s podporou ARC Azure v Azure Portal.

Částečně automatizované nasazení (volitelné)Semi-automated deployment (optional)

Jak jste si všimli, v posledním kroku spuštění je registrace virtuálního počítače jako nového prostředku serveru s podporou ARC Azure.As you may have noticed, the last step of the run is to register the VM as a new Azure Arc enabled server resource.

Snímek obrazovky s příkazem azcmagent Connect

Pokud chcete demo nebo řídit skutečný proces registrace, udělejte toto:If you want to demo/control the actual registration process, do the following:

  1. V install_arc_agent.sh.tmpl šabloně skriptu přidejte do run connect command části a uložte soubor.In the install_arc_agent.sh.tmpl script template, comment out the run connect command section and save the file.

    Snímek obrazovky příkazu azcmagent Connect byl zakomentován.

  2. Získejte veřejnou IP adresu virtuálního počítače AWS spuštěním terraform output .Get the public IP of the AWS VM by running terraform output.

    Snímek obrazovky s výstupem terraformu.

  3. SSH k virtuálnímu počítači pomocí nástroje ssh ec2-user@xx.xx.xx.xx , kde xx.xx.xx.xx je adresa IP hostitele.SSH to the VM using the ssh ec2-user@xx.xx.xx.xx, where xx.xx.xx.xx is the host IP.

    Snímek obrazovky s klíčem SSH, který se připojuje k serveru EC2.

  4. Exportovat všechny proměnné prostředí v vars.shExport all the environment variables in vars.sh

    Snímek obrazovky exportovaných proměnných prostředí v ' var.sh '.

  5. Spusťte následující příkaz:Run the following command:

    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
    

    Další snímek příkazu "azcmagent Connect".

  6. Po dokončení se váš virtuální počítač zaregistruje ve službě Azure ARC a zobrazí se ve skupině prostředků prostřednictvím Azure Portal.When complete, your VM will be registered with Azure Arc and visible in the resource group via the Azure portal.

Odstranit nasazeníDelete the deployment

Pokud chcete odstranit všechny prostředky, které jste vytvořili v rámci této ukázky, použijte terraform destroy --auto-approve příkaz, jak je znázorněno níže.To delete all the resources you created as part of this demo, use the terraform destroy --auto-approve command as shown below. Snímek obrazovky s příkazem terraformu DestroyA screenshot of the terraform destroy command.

Alternativně můžete instanci AWS EC2 odstranit přímo jejím ukončením z konzoly AWS.Alternatively, you can delete the AWS EC2 instance directly by terminating it from the AWS console. Snímek obrazovky s postupem ukončení instance v konzole AWSA screenshot of how to terminate an instance in the AWS console.