Een Terraform-plan gebruiken om een Ubuntu-exemplaar van Google Cloud Platform te implementeren en deze te verbinden met Azure Arc
Dit artikel bevat richtlijnen voor het gebruik van het opgegeven Terraform-plan voor het implementeren van het GCP-exemplaar (Google Cloud Platform) en het verbinden als een serverresource met Azure Arc.
Vereisten
Kloon de Azure Arc Jumpstart-opslagplaats.
git clone https://github.com/microsoft/azure_arc.git
Azure CLI installeren of bijwerken naar versie 2.7 en hoger. Gebruik de volgende opdracht om uw huidige geïnstalleerde versie te controleren.
az --version
SSH-sleutel genereren (of bestaande SSH-sleutel gebruiken)
Maak een Azure-service-principal.
Als u de virtuele GCP-machine wilt verbinden met Azure Arc, is een Azure-service-principal vereist die is toegewezen met de rol Inzender. Als u deze wilt maken, meldt u zich aan bij uw Azure-account en voert u de volgende opdracht uit. U kunt deze opdracht ook uitvoeren 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>"
Voorbeeld:
az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
De uitvoer moet er ongeveer als volgt uitzien:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcGCP", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Notitie
We raden u ten zeerste aan om de service-principal te koppelen aan een specifiek Azure-abonnement en een specifieke resourcegroep.
Een nieuw GCP-project maken
Blader naar de Google API-console en meld u aan met uw Google-account. Zodra u bent aangemeld, maakt u een nieuw project met de naam
Azure Arc demo
. Nadat u deze hebt gemaakt, moet u de project-id omlaag kopiëren, omdat deze meestal anders is dan de projectnaam.Zodra het nieuwe project is gemaakt en geselecteerd in de vervolgkeuzelijst boven aan de pagina, moet u de toegang tot de Compute Engine-API voor het project inschakelen. Klik op + API's en services inschakelen en zoek naar de berekeningsengine. Selecteer Vervolgens Inschakelen om API-toegang in te schakelen.
Stel vervolgens een serviceaccountsleutel in die Terraform gebruikt om resources in uw GCP-project te maken en te beheren. Ga naar de pagina serviceaccountsleutel maken. Selecteer Nieuw serviceaccount in de vervolgkeuzelijst, geef het een naam, selecteer project en eigenaar als de rol, JSON als sleuteltype en selecteer Maken. Hiermee downloadt u een JSON-bestand met alle referenties die nodig zijn voor Terraform om de resources te beheren. Kopieer het gedownloade JSON-bestand naar de
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
map.Controleer ten slotte of uw SSH-sleutels beschikbaar zijn in
~/.ssh
en benoemdid_rsa.pub
enid_rsa
. Als u dessh-keygen
bovenstaande handleiding hebt gevolgd om uw sleutel te maken, moet deze al correct zijn ingesteld. Zo niet, dan moet u mogelijk eenmain.tf
sleutel met een ander pad gebruiken.
Implementatie
Voordat u het Terraform-plan uitvoert, moet u de omgevingsvariabelen exporteren die door het plan worden gebruikt. Deze variabelen zijn gebaseerd op de Azure-service-principal die u zojuist hebt gemaakt, uw Azure-abonnement en -tenant en de naam van het GCP-project.
Haal uw Azure-abonnements-id en tenant-id op met behulp van de
az account list
opdracht.Het Terraform-plan maakt resources in zowel Microsoft Azure als Google Cloud Platform. Vervolgens wordt een script uitgevoerd op een virtuele GCP-machine om de Azure Arc-agent en alle benodigde artefacten te installeren. Dit script vereist bepaalde informatie over uw GCP- en Azure-omgevingen. Bewerk en werk
scripts/vars.sh
elk van de variabelen bij met de juiste waarden.TF_VAR_subscription_id
= uw Azure-abonnements-idTF_VAR_client_id
= de toepassings-id van uw Azure-service-principalTF_VAR_client_secret
= wachtwoord voor uw Azure-service-principalTF_VAR_tenant_id
= uw Azure-tenant-idTF_VAR_gcp_project_id
= GCP-project-idTF_VAR_gcp_credentials_filename
= JSON-bestandsnaam van GCP-referenties
Navigeer vanuit CLI naar de
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
map van de gekloonde opslagplaats.Exporteer de omgevingsvariabelen die u hebt bewerkt door deze uit te voeren
scripts/vars.sh
met de bronopdracht, zoals hieronder wordt weergegeven. Terraform vereist dat deze worden ingesteld voor de juiste uitvoering van het plan. Houd er rekening mee dat dit script ook automatisch op afstand wordt uitgevoerd op de virtuele GCP-machine als onderdeel van de Terraform-implementatie.source ./scripts/vars.sh
Voer de
terraform init
opdracht uit waarmee de Terraform AzureRM-provider wordt gedownload.Voer vervolgens de
terraform apply --auto-approve
opdracht uit en wacht tot het plan is voltooid. Na voltooiing hebt u een GCP Ubuntu-VM geïmplementeerd en verbonden als een nieuwe server met Azure Arc in een nieuwe resourcegroep.Open Azure Portal en navigeer naar de
arc-gcp-demo
resourcegroep. De virtuele machine die in GCP is gemaakt, is zichtbaar als een resource.
Semi-geautomatiseerde implementatie (optioneel)
Zoals u misschien hebt opgemerkt, is de laatste stap van de uitvoering het registreren van de VIRTUELE machine als een nieuwe serverresource met Azure Arc.
Als u het daadwerkelijke registratieproces wilt demo/beheren, gaat u als volgt te werk:
Maak in de
install_arc_agent.sh.tmpl
scriptsjabloon commentaar bij derun connect command
sectie en sla het bestand op.Haal het openbare IP-adres van de GCP-VM op door uit te voeren
terraform output
.SSH de VM met behulp van het
ssh arcadmin@xx.xx.xx.xx
xx.xx.xx.xx
host-IP-adres.Alle omgevingsvariabelen exporteren in
vars.sh
Voer de volgende opdracht uit:
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
Wanneer u klaar bent, wordt uw VIRTUELE machine geregistreerd bij Azure Arc en zichtbaar in de resourcegroep via Azure Portal.
De implementatie verwijderen
Als u alle resources die u hebt gemaakt als onderdeel van deze demo wilt verwijderen, gebruikt u de terraform destroy --auto-approve
opdracht, zoals hieronder wordt weergegeven.
U kunt de GCP-VM ook rechtstreeks uit de GCP-console verwijderen.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor