Usare un piano di Terraform per distribuire un'istanza di Google Cloud Platform Ubuntu e connetterla ad Azure Arc
Questo articolo fornisce indicazioni per l'uso del piano di Terraform fornito per distribuire un'istanza di Google Cloud Platform (GCP) e connetterla come risorsa server abilitata per Azure Arc.
Prerequisiti
Clonare il repository delle risorse introduttive per Azure Arc.
git clone https://github.com/microsoft/azure_arc.git
Installare l'interfaccia della riga di comando di Azure 2.7 e successive o eseguirne l'aggiornamento a tale versione. Usare il comando seguente per verificare l'attuale versione installata.
az --version
Generare una chiave SSH (o usarne una esistente)
Creare un'entità servizio di Azure.
Per connettere la macchina virtuale GCP ad Azure Arc, è necessario avere un'entità servizio di Azure assegnata con il ruolo Collaboratore. Per crearla, accedere al proprio account Azure ed eseguire il comando seguente. È possibile eseguire il comando anche in 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>"
Ad esempio:
az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
L'output dovrebbe essere simile al seguente:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcGCP", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Nota
È consigliabile impostare l'ambito dell'entità servizio su una sottoscrizione e un gruppo di risorse di Azure specifici.
Creare un nuovo progetto GCP
Passare alla console di API Google e accedere con l'account Google. Dopo aver eseguito l'accesso, creare un nuovo progetto denominato
Azure Arc demo
. Dopo la creazione, assicurarsi di copiare l'ID progetto perché in genere è diverso dal nome del progetto.Dopo aver creato e selezionato il nuovo progetto nell'elenco a discesa nella parte superiore della pagina, è necessario abilitare l'accesso all'API del motore di calcolo per il progetto. Fare clic su + Enable APIs and Services (Abilita API e servizi) e cercare il motore di calcolo. Selezionare quindi Enable (Abilita) per abilitare l'accesso alle API.
Successivamente configurare una chiave dell'account del servizio che Terraform userà per creare e gestire le risorse nel progetto GCP. Passare alla pagina per creare la chiave dell'account del servizio. Selezionare New Service Account (Nuovo account del servizio) nell'elenco a discesa, assegnare un nome, selezionare il progetto e quindi il ruolo di proprietario, il tipo di chiave JSON e selezionare Create (Crea). Verrà scaricato un file JSON con tutte le credenziali necessarie a Terraform per gestire le risorse. Copiare il file JSON scaricato nella directory
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
.Assicurarsi infine che le chiavi SSH siano disponibili in
~/.ssh
e denominateid_rsa.pub
eid_rsa
. Se per creare la chiave è stata seguita la guidassh-keygen
precedente, dovrebbe essere già configurata correttamente. In caso contrario, potrebbe essere necessario modificaremain.tf
per usare una chiave con un percorso diverso.
Distribuzione
Prima di eseguire il piano di Terraform, è necessario esportare le variabili di ambiente che verranno usate. Queste variabili si basano sull'entità servizio di Azure appena creata, sulla sottoscrizione e sul tenant di Azure, nonché sul nome del progetto GCP.
Recuperare gli ID della sottoscrizione e del tenant di Azure usando il comando
az account list
.Il piano di Terraform crea risorse sia in Microsoft Azure sia in Google Cloud Platform. Esegue quindi uno script nella macchina virtuale GCP per installare l'agente di Azure Arc e tutti gli artefatti necessari. Questo script richiede determinate informazioni sugli ambienti GCP e Azure in uso. Modificare
scripts/vars.sh
e aggiornare ciascuna variabile con i valori appropriati.TF_VAR_subscription_id
= ID sottoscrizione di AzureTF_VAR_client_id
= ID applicazione dell'entità servizio di AzureTF_VAR_client_secret
= password dell'entità servizio di AzureTF_VAR_tenant_id
= ID tenant di AzureTF_VAR_gcp_project_id
= ID progetto GCPTF_VAR_gcp_credentials_filename
= nome del file JSON delle credenziali GCP
Nell'interfaccia della riga di comando passare alla directory
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
del repository clonato.Esportare le variabili di ambiente modificate eseguendo
scripts/vars.sh
con il comando source, come illustrato di seguito. Terraform ne richiede l'impostazione per il corretto funzionamento del piano. Questo script verrà eseguito automaticamente anche in remoto nella macchina virtuale nell'ambito della distribuzione di Terraform.source ./scripts/vars.sh
Eseguire il comando
terraform init
per scaricare il provider AzureRM di Terraform.Eseguire quindi il comando
terraform apply --auto-approve
e attendere il completamento del piano. Al termine, si avrà una macchina virtuale Ubuntu GCP distribuita e connessa come nuovo server abilitato per Azure Arc all'interno di un nuovo gruppo di risorse.Aprire il portale di Azure e passare al gruppo di risorse
arc-gcp-demo
. La macchina virtuale creata in GCP sarà visibile come risorsa.
Distribuzione semi-automatizzata (facoltativo)
Come si può notare, l'ultimo passaggio dell'esecuzione consiste nel registrare la macchina virtuale come nuova risorsa server abilitata per Azure Arc.
Se si vuole dimostrare/controllare il processo di registrazione effettivo, procedere come segue:
Nel modello di script
install_arc_agent.sh.tmpl
impostare come commento la sezionerun connect command
e salvare il file.Ottenere l'indirizzo IP pubblico della macchina virtuale GCP eseguendo
terraform output
.Accedere tramite SSH alla macchina virtuale usando
ssh arcadmin@xx.xx.xx.xx
, dovexx.xx.xx.xx
è l'indirizzo IP dell'host.Esportare tutte le variabili di ambiente in
vars.sh
Esegui questo 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
Al termine, la macchina virtuale verrà registrata con Azure Arc e sarà visibile nel gruppo di risorse attraverso il portale di Azure.
Eliminare la distribuzione
Per eliminare tutte le risorse create nell'ambito di questa demo, usare il comando terraform destroy --auto-approve
come illustrato sotto.
In alternativa, è possibile eliminare la macchina virtuale GCP direttamente dalla console GCP.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per