Nasazení instance Google Cloud Platform Ubuntu pomocí plánu Terraformu a jeho připojení ke službě Azure Arc

Tento článek obsahuje pokyny k použití poskytnutého plánu Terraformu k nasazení instance GCP (Google Cloud Platform) 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 na verzi 2.7 a novější. Pomocí následujícího příkazu zkontrolujte aktuální nainstalovanou verzi.

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

  4. Vytvoření bezplatného účtu Google Cloud Platform

  5. Instalace Terraformu >= 0.12

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

    K připojení virtuálního počítače GCP ke službě 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říkaz. Tento příkaz můžete spustit také v Azure Cloud Shellu.

    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://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Výstup by měl vypadat takto:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcGCP",
      "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í nového projektu GCP

  1. Přejděte do konzoly Rozhraní API Google a přihlaste se pomocí svého účtu Google. Po přihlášení vytvořte nový projekt s názvem Azure Arc demo. Po jeho vytvoření nezapomeňte zkopírovat ID projektu, protože se obvykle liší od názvu projektu.

    First screenshot of the New Project page in the GCP console.

    Second screenshot of the New Project page in the GCP console.

  2. Jakmile se nový projekt vytvoří a vybere v rozevíracím seznamu v horní části stránky, musíte pro projekt povolit přístup k rozhraní API výpočetního stroje. Klikněte na + Povolit rozhraní API a služby a vyhledejte výpočetní modul. Pak vyberte Povolit, pokud chcete povolit přístup k rozhraní API.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Dále nastavte klíč účtu služby, který Terraform použije k vytváření a správě prostředků v projektu GCP. Přejděte na stránku pro vytvoření klíče účtu služby. V rozevíracím seznamu vyberte Nový účet služby, pojmenujte ho, jako roli vyberte projekt, jako typ klíče JSON a vyberte Vytvořit. Tím se stáhne soubor JSON se všemi přihlašovacími údaji, které bude potřeba pro Terraform ke správě prostředků. Zkopírujte stažený soubor JSON do azure_arc_servers_jumpstart/gcp/ubuntu/terraform adresáře.

    A screenshot of how to create a service account in the GCP console.

  4. Nakonec se ujistěte, že jsou klíče SSH k dispozici ve složce ~/.ssh 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.

Nasazení

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 právě vytvořeném instančním objektu Azure, předplatném a tenantovi Azure a názvu projektu GCP.

  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 Google Cloud Platform. Potom na virtuálním počítači GCP spustí skript pro instalaci agenta Azure Arc a všech nezbytných artefaktů. Tento skript vyžaduje určité informace o prostředích GCP 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
    • TF_VAR_gcp_project_id = ID projektu GCP
    • TF_VAR_gcp_credentials_filename = Název souboru JSON přihlašovacích údajů GCP
  3. Z rozhraní příkazového řádku přejděte do azure_arc_servers_jumpstart/gcp/ubuntu/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 GCP v rámci nasazení Terraformu.

    source ./scripts/vars.sh
    
  5. terraform init Spusťte příkaz, který stáhne zprostředkovatele Terraform AzureRM.

    A screenshot of the terraform init command.

  6. Potom spusťte terraform apply --auto-approve příkaz a počkejte na dokončení plánu. Po dokončení budete mít virtuální počítač GCP Ubuntu nasazený a připojený jako nový server s podporou Azure Arc v nové skupině prostředků.

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

    A screenshot of 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 running 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 showing main.tf being commented out to disable automatic onboarding of an Azure Arc agent.

  2. Spuštěním příkazu <a0/& získejte veřejnou IP adresu virtuálního počítače GCP.

    A screenshot of output from Terraform.

  3. Připojte virtuální počítač přes SSH pomocí ssh arcadmin@xx.xx.xx.xx ip adresy hostitele, kde xx.xx.xx.xx je ip adresa hostitele.

    A screenshot of an SSH key connecting to a GCP server.

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

    A screenshot of environment variables exporting with vars.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 "Azure Arc gcp-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
    

    A screenshot of the azcmagent connect command completing successfully.

  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 virtuální počítač GCP odstranit přímo z konzoly GCP.

A screenshot showing how to delete a virtual machine from the GCP console.