Nasazení instance Amazon Linuxu 2 v Amazon Elastic Compute Cloudu pomocí plánu Terraformu a jeho připojení ke službě Azure Arc

Tento článek obsahuje pokyny pro použití poskytnutého plánu Terraformu k nasazení instance Amazon Elastic Compute Cloud (AWS) Amazon Elastic Compute Cloud (EC2) Linux 2 a jeho připojení jako prostředku serveru s podporou Služby Azure Arc.

Požadavky

  1. Naklonujte úložiště Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Nainstalujte nebo aktualizujte Azure CLI. Azure CLI by mělo používat verzi 2.7.0 nebo novější. Slouží az --version ke kontrole aktuální nainstalované verze.

  3. Generování klíče SSH (nebo použití existujícího klíče SSH)

  4. Vytvoření bezplatného účtu AWS

  5. Instalace Terraformu >= 0.12

  6. Vytvořte instanční objekt Azure.

    K připojení virtuálního počítače AWS k Azure Arc se vyžaduje instanční objekt Azure přiřazený s rolí Přispěvatel. Pokud ho chcete vytvořit, přihlaste se ke svému účtu Azure a spusťte následující příkazy:

    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>"
    

    Příklad:

    az ad sp create-for-rbac -n "http://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Výstup by měl vypadat takto:

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

    Poznámka:

    Důrazně doporučujeme nastavit obor instančního objektu na konkrétní předplatné Azure a skupinu prostředků.

Vytvoření identity AWS

Aby Terraform mohl vytvářet prostředky v AWS, musíme vytvořit novou roli AWS IAM s příslušnými oprávněními a nakonfigurovat Terraform, aby ho mohl používat.

  1. Přihlášení ke konzole pro správu AWS

  2. Po přihlášení vyberte rozevírací seznam Služby v levém horním rohu. V části Zabezpečení, Identita a Dodržování předpisů vyberte IAM pro přístup ke stránce správy identit a přístupu.

    A screenshot of the AWS cloud console.

    A screenshot of an identity and access management AWS cloud console.

  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.

    A screenshot of how to create a new user in an AWS cloud console.

  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ší.

    Second screenshot of how to create a new user in an AWS cloud console.

  5. Na stránce Nastavit oprávnění vyberte Připojit existující zásady přímo a pak zaškrtněte políčko vedle AmazonEC2FullAccess, jak je vidět na snímku obrazovky, a pak vyberte Další.

    Third screenshot of how to create a new user in an AWS cloud console.

  6. Na stránce Značky přiřaďte značku s klíčem azure-arc-demoa pak výběrem tlačítka Další přejděte na stránku revize.

    A screenshot of tags in an AWS cloud console.

  7. Ověřte, že je vše správné, a pak vyberte Vytvořit uživatele.

    Fourth screenshot of how to create a new user in an AWS cloud console.

  8. Po vytvoření uživatele se zobrazí ID přístupového klíče uživatele a tajný přístupový klíč. Před výběrem možnosti Zavřít tyto hodnoty zkopírujte dolů. Na další stránce uvidíte příklad, jak by to mělo vypadat. Jakmile tyto klíče budete mít, budete je moct používat s Terraformem k vytvoření prostředků AWS.

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

Konfigurace Terraformu

Před spuštěním plánu Terraform je nutné exportovat proměnné prostředí, které bude plán používat. Tyto proměnné jsou založené na vašem předplatném a tenantovi Azure, instančním objektu Azure a uživateli a klíči AWS IAM, které jste právě vytvořili.

  1. Pomocí příkazu načtěte ID předplatného Azure a ID tenanta az account list .

  2. Plán Terraformu vytváří prostředky v Microsoft Azure i AWS. Potom na virtuálním počítači AWS EC2 spustí skript pro instalaci agenta Azure Arc a všech nezbytných artefaktů. Tento skript vyžaduje určité informace o prostředích AWS a Azure. Upravte a aktualizujte scripts/vars.sh jednotlivé proměnné příslušnými hodnotami.

    • TF_VAR_subscription_id= ID vašeho předplatného Azure
    • TF_VAR_client_id= ID vaší aplikace instančního objektu Azure
    • TF_VAR_client_secret = vaše heslo instančního objektu Azure
    • TF_VAR_tenant_id= ID tenanta Azure
    • AWS_ACCESS_KEY_ID = přístupový klíč AWS
    • AWS_SECRET_ACCESS_KEY = tajný klíč AWS
  3. Z Azure CLI přejděte do azure_arc_servers_jumpstart/aws/al2/terraform adresáře klonovaného úložiště.

  4. Exportujte proměnné prostředí, které jste upravili spuštěním scripts/vars.sh zdrojového příkazu, jak je znázorněno níže. Terraform vyžaduje, aby se plán správně spustil. Všimněte si, že tento skript se také automaticky spustí na virtuálním počítači AWS jako součást nasazení Terraformu.

    source ./scripts/vars.sh
    
  5. Ujistěte se, že jsou klíče SSH k dispozici ve ~/.ssh složce a pojmenované id_rsa.pub a id_rsa. Pokud jste postupovali podle výše uvedeného ssh-keygen průvodce a vytvořili klíč, měl by už být správně nastavený. Pokud ne, možná budete muset upravit main.tf použití klíče s jinou cestou.

  6. terraform init Spusťte příkaz, který stáhne zprostředkovatele Terraform AzureRM.

    A screenshot of the terraform init command.

Nasazení

  1. terraform apply --auto-approve Spusťte příkaz a počkejte na dokončení plánu. Po dokončení budete mít nasazenou a připojenou instanci AWS Amazon Linux 2 EC2 a připojit se jako nový server s podporou Azure Arc v nové skupině prostředků.

  2. Otevřete Azure Portal a přejděte do arc-servers-demo skupiny prostředků. Virtuální počítač vytvořený v AWS bude viditelný jako prostředek.

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

Částečně automatizované nasazení (volitelné)

Jak jste si možná všimli, posledním krokem spuštění je registrace virtuálního počítače jako nového prostředku serveru s podporou Azure Arc.

A screenshot of the azcmagent connect command.

Pokud chcete provést ukázku nebo řízení skutečného procesu registrace, postupujte takto:

  1. install_arc_agent.sh.tmpl V šabloně skriptu zakomentujte run connect command oddíl a soubor uložte.

    A screenshot of the azcmagent connect command commented out.

  2. Spuštěním příkazu terraform outputzískáte veřejnou IP adresu virtuálního počítače AWS.

    A screenshot of output from Terraform.

  3. Připojte se přes SSH k virtuálnímu počítači pomocí ssh ec2-user@xx.xx.xx.xxip adresy hostitele, kde xx.xx.xx.xx je IP adresa hostitele.

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

  4. Export všech proměnných prostředí v vars.sh

    A screenshot of exported environment variables in var.sh.

  5. Spusťte následující příkaz:

    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
    

    Another screenshot of the azcmagent connect command.

  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 webu Azure Portal.

Odstranění nasazení

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. A screenshot of the terraform destroy command.

Případně můžete instanci AWS EC2 odstranit přímo ukončením z konzoly AWS. A screenshot of how to terminate an instance in the AWS console.