Use um plano Terraform para implantar uma instância do Windows do Google Cloud Platform e conectá-la ao Azure Arc

Este artigo fornece orientação para usar o plano Terraform fornecido para implantar uma instância do Google Cloud Platform (GCP) do Windows Server e conectá-la como um recurso de servidor habilitado para Azure Arc.

Pré-requisitos

  1. Clone o repositório do Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Instale ou atualize a CLI do Azure para a versão 2.7 e superior. Use o seguinte comando para verificar sua versão instalada atual.

    az --version
    
  3. Instalar Terraform >= 0.12

  4. Conta do Google Cloud Platform com faturamento ativado:crie uma conta de avaliação gratuita. Para criar máquinas virtuais do Windows Server, você deve atualizar sua conta para habilitar a cobrança. Selecione Faturação no menu e, em seguida, selecione Atualizar no canto inferior direito.

    First screenshot showing how to enable billing on a GCP account.

    Second screenshot showing how to enable billing on a GCP account.

    Third screenshot showing how to enable billing on a GCP account.

    Aviso legal: Para evitar cobranças inesperadas, siga a seção "excluir a implantação" no final deste artigo.

  5. Crie uma entidade de serviço do Azure.

    Para conectar a máquina virtual GCP ao Azure Arc, é necessária uma entidade de serviço do Azure atribuída com a função de Colaborador. Para criá-lo, entre em sua conta do Azure e execute o seguinte comando. Você também pode executar esse comando no 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>"
    

    Por exemplo:

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

    A saída deverá ter o seguinte aspeto:

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

    Nota

    É altamente recomendável que você defina o escopo da entidade de serviço para uma assinatura específica do Azure e um grupo de recursos.

Criar um novo projeto GCP

  1. Navegue até o console da API do Google e faça login com sua Conta do Google. Depois de fazer login, crie um novo projeto chamado Azure Arc demo. Depois de criá-lo, certifique-se de copiar o ID do projeto, pois geralmente é diferente do nome do projeto.

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

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

  2. Depois que o novo projeto é criado e selecionado na lista suspensa na parte superior da página, você deve habilitar o acesso à API do mecanismo de computação para o projeto. Clique em + Ativar APIs e Serviços e procure por mecanismo de computação. Em seguida, selecione Ativar para habilitar o acesso à API.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Em seguida, configure uma chave de conta de serviço, que o Terraform usará para criar e gerenciar recursos em seu projeto GCP. Vá para a página criar chave de conta de serviço. Selecione Nova Conta de Serviço na lista suspensa, dê um nome, selecione projeto e proprietário como a função, JSON como o tipo de chave e selecione Criar. Isso faz o download de um arquivo JSON com todas as credenciais necessárias para o Terraform gerenciar os recursos. Copie o arquivo JSON baixado para o azure_arc_servers_jumpstart/gcp/windows/terraform diretório.

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

Implementação

Antes de executar o plano Terraform, você deve definir e, em seguida, exportar as variáveis de ambiente que serão usadas pelo plano. Essas variáveis são baseadas na entidade de serviço do Azure que você acabou de criar, sua assinatura e locatário do Azure e o nome do projeto GCP.

  1. Recupere sua ID de assinatura do Azure e ID de locatário usando o az account list comando.

  2. O plano Terraform cria recursos no Microsoft Azure e no Google Cloud Platform. Em seguida, ele executa um script em uma máquina virtual GCP para instalar o agente do Azure Arc e todos os artefatos necessários. Esse script requer determinadas informações sobre seus ambientes GCP e Azure. Edite scripts/vars.sh e atualize cada uma das variáveis com os valores apropriados.

    • TF_VAR_subscription_id = sua ID de assinatura do Azure
    • TF_VAR_client_id = sua ID do aplicativo principal de serviço do Azure
    • TF_VAR_client_secret = sua senha principal de serviço do Azure
    • TF_VAR_tenant_id = sua ID de locatário do Azure
    • TF_VAR_gcp_project_id = ID do projeto GCP
    • TF_VAR_gcp_credentials_filename = Nome do arquivo JSON de credenciais GCP
  3. Na CLI, navegue até o azure_arc_servers_jumpstart/gcp/windows/terraform diretório do repositório clonado.

  4. Exporte as variáveis de ambiente editadas executando scripts/vars.sh com o comando source, conforme mostrado abaixo. Terraform requer que estes sejam definidos para que o plano seja executado corretamente.

    source ./scripts/vars.sh
    
  5. Execute o comando que baixará o terraform init provedor Terraform AzureRM.

    A screenshot of the terraform init command.

  6. Em seguida, execute o terraform apply --auto-approve comando e aguarde a conclusão do plano. Após a conclusão do script Terraform, você terá implantado uma VM do Windows Server 2019 do GCP e iniciado um script para baixar o agente do Azure Arc para a VM e conectar a VM como um novo servidor habilitado para Azure Arc dentro de um novo grupo de recursos do Azure. Levará alguns minutos para o agente terminar o provisionamento, então pegue uma xícara de café.

    A screenshot of the terraform apply command.

  7. Após alguns minutos, você poderá abrir o portal do Azure e navegar até o arc-gcp-demo grupo de recursos. A máquina virtual do Windows Server criada no GCP será visível como um recurso.

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

Implantação semiautomatizada (opcional)

O plano Terraform instala automaticamente o agente do Azure Arc e conecta a VM ao Azure como um recurso gerenciado executando um script do PowerShell quando a VM é inicializada pela primeira vez.

A screenshot of the azcmagent connect command.

Se você quiser demonstrar/controlar o processo de registro real, faça o seguinte:

  1. Antes de executar o comando, abra main.tf e comente a windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content linha e salve o terraform apply arquivo.

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

  2. Execute terraform apply --auto-approve conforme as instruções acima.

  3. Abra o console do GCP, navegue até a página da instância de computação e selecione a VM que foi criada.

    A screenshot of a server in the GCP console.

    A screenshot showing how to reset a password for a Windows Server in the GCP console.

  4. Crie um usuário e senha para a VM selecionando Definir senha e especificando um nome de usuário.

    A screenshot showing how to set a username and password for a Windows Server in the GCP console.

  5. RDP na VM selecionando o botão RDP na página VM no console do GCP e entre com o nome de usuário e senha que você acabou de criar.

    A screenshot showing how to RDP into a GCP instance.

  6. Depois de fazer login, abra o PowerShell ISE como Administrador. Verifique se você está executando a versão x64 do PowerShell ISE e não a versão x86. Uma vez aberto, selecione Arquivo > novo para criar um arquivo vazio .ps1 . Em seguida, cole todo o conteúdo do ./scripts/install_arc_agent.ps1. Clique no botão de reprodução para executar o script. Quando terminar, você verá a saída mostrando a integração bem-sucedida da máquina.

    Screenshot showing the Windows PowerShell integrated scripting environment with an Azure Arc agent connection script.

Excluir a implantação

Para excluir todos os recursos que você criou como parte desta demonstração, use o terraform destroy --auto-approve comando como mostrado abaixo.

A screenshot of the terraform destroy command.

Como alternativa, você pode excluir a VM do GCP diretamente do console do GCP.

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