Use um plano Terraform para implantar uma instância do Google Cloud Platform Ubuntu e conectá-la ao Azure Arc
Este artigo fornece orientação para usar o plano Terraform fornecido para implantar a instância do Google Cloud Platform (GCP) e conectá-la como um recurso de servidor habilitado para Azure Arc.
Pré-requisitos
Clone o repositório do Azure Arc Jumpstart.
git clone https://github.com/microsoft/azure_arc.git
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
Gerar chave SSH (ou usar chave SSH existente)
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
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.Depois que o novo projeto for criado e selecionado na lista suspensa na parte superior da página, você deverá habilitar o acesso à API do Compute Engine 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.
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 que serão necessárias para o Terraform gerenciar os recursos. Copie o arquivo JSON baixado para o
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
diretório.Finalmente, certifique-se de que suas chaves SSH estão disponíveis em
~/.ssh
e nomeadasid_rsa.pub
eid_rsa
. Se você seguiu ossh-keygen
guia acima para criar sua chave, então isso já deve estar configurado corretamente. Caso contrário, talvez seja necessário modificarmain.tf
para usar uma chave com um caminho diferente.
Implementação
Antes de executar o plano Terraform, você deve 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.
Recupere sua ID de assinatura do Azure e ID de locatário usando o
az account list
comando.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 AzureTF_VAR_client_id
= sua ID do aplicativo principal de serviço do AzureTF_VAR_client_secret
= sua senha principal de serviço do AzureTF_VAR_tenant_id
= sua ID de locatário do AzureTF_VAR_gcp_project_id
= ID do projeto GCPTF_VAR_gcp_credentials_filename
= Nome do arquivo JSON de credenciais GCP
Na CLI, navegue até o
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
diretório do repositório clonado.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. Observe que esse script também será executado automaticamente remotamente na máquina virtual GCP como parte da implantação do Terraform.source ./scripts/vars.sh
Execute o comando que baixará o
terraform init
provedor Terraform AzureRM.Em seguida, execute o
terraform apply --auto-approve
comando e aguarde a conclusão do plano. Após a conclusão, você terá uma VM do GCP Ubuntu implantada e conectada como um novo servidor habilitado para Azure Arc dentro de um novo grupo de recursos.Abra o portal do Azure e navegue até o
arc-gcp-demo
grupo de recursos. A máquina virtual criada no GCP será visível como um recurso.
Implantação semiautomatizada (opcional)
Como você deve ter notado, a última etapa da execução é registrar a VM como um novo recurso de servidor habilitado para Azure Arc.
Se você quiser demonstrar/controlar o processo de registro real, faça o seguinte:
No modelo de
install_arc_agent.sh.tmpl
script, comente arun connect command
seção e salve o arquivo.Obtenha o IP público da VM GCP executando
terraform output
o .SSH a VM usando o onde
xx.xx.xx.xx
é ossh arcadmin@xx.xx.xx.xx
IP do host.Exporte todas as variáveis de ambiente em
vars.sh
Execute o seguinte comando:
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
Quando concluída, sua VM será registrada no Azure Arc e visível no grupo de recursos por meio do portal do Azure.
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.
Como alternativa, você pode excluir a VM do GCP diretamente do console do GCP.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários