Een Terraform-plan gebruiken om een Amazon Web Services Amazon Elastic Compute Cloud-exemplaar 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 een Amazon Web Services -exemplaar (AWS) Amazon Elastic Compute Cloud (EC2) 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 AWS-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://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
De uitvoer moet er ongeveer als volgt uitzien:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcAWS", "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 AWS-identiteit maken
Om ervoor te zorgen dat Terraform resources maakt in AWS, moeten we een nieuwe AWS IAM-rol maken met de juiste machtigingen en Terraform configureren om deze te gebruiken.
Aanmelden bij de AWS-beheerconsole
Nadat u zich hebt aangemeld, selecteert u de vervolgkeuzelijst Services in de linkerbovenhoek. Selecteer onder Beveiliging, Identiteit en Naleving IAM voor toegang tot de pagina identiteits- en toegangsbeheer
Klik in het linkermenu op Gebruikers en selecteer Vervolgens Gebruiker toevoegen om een nieuwe IAM-gebruiker te maken.
Geef op de pagina Gebruiker toevoegen de gebruiker
Terraform
een naam en schakel het selectievakje Programmatische toegang in en selecteer vervolgens Volgende.Selecteer op de pagina Machtigingen instellen de optie Bestaande beleidsregels rechtstreeks bijvoegen en selecteer vervolgens het vakje naast AmazonEC2FullAccess, zoals wordt weergegeven in de schermafbeelding en selecteer vervolgens Volgende.
Wijs op de pagina Tags een tag toe met een sleutel van
azure-arc-demo
en selecteer Volgende om door te gaan naar de pagina Controleren .Controleer of alles juist is en selecteer Gebruiker maken wanneer u klaar bent.
Nadat de gebruiker is gemaakt, ziet u de toegangssleutel-id en geheime toegangssleutel van de gebruiker. Kopieer deze waarden voordat u Sluiten selecteert. Op de volgende pagina ziet u een voorbeeld van hoe dit eruit moet zien. Zodra u deze sleutels hebt, kunt u deze gebruiken met Terraform om AWS-resources te maken.
Terraform configureren
Voordat u het Terraform-plan uitvoert, moet u de omgevingsvariabelen exporteren die door het plan worden gebruikt. Deze variabelen zijn gebaseerd op uw Azure-abonnement en -tenant, de Azure-service-principal en de AWS IAM-gebruiker en -sleutels die u zojuist hebt gemaakt.
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 AWS. Vervolgens wordt een script uitgevoerd op een virtuele AWS EC2-machine om de Azure Arc-agent en alle benodigde artefacten te installeren. Dit script vereist bepaalde informatie over uw AWS- 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-idAWS_ACCESS_KEY_ID
= AWS-toegangssleutelAWS_SECRET_ACCESS_KEY
= AWS-geheime sleutel
Navigeer vanuit de Azure CLI naar de
azure_arc_servers_jumpstart/aws/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 AWS-machine als onderdeel van de Terraform-implementatie.source ./scripts/vars.sh
Zorg ervoor dat uw SSH-sleutels beschikbaar zijn in ~/.ssh en benoemd
id_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.Voer de
terraform init
opdracht uit waarmee de Terraform AzureRM-provider wordt gedownload.
Implementatie
Voer de
terraform apply --auto-approve
opdracht uit en wacht tot het plan is voltooid. Na voltooiing hebt u een AWS Amazon Linux 2 EC2-exemplaar geïmplementeerd en verbonden als een nieuwe server met Azure Arc in een nieuwe resourcegroep.Open Azure Portal en navigeer naar de
arc-aws-demo
resourcegroep. De virtuele machine die in AWS 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 AWS-VM op door uit te voeren
terraform output
.SSH de VM met behulp van het
ssh ubuntu@xx.xx.xx.xx
xx.xx.xx.xx
host-IP-adres.Exporteer alle omgevingsvariabelen 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 "arc-aws-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 het AWS EC2-exemplaar ook rechtstreeks verwijderen door het uit te sluiten vanuit de AWS-console. Houd er rekening mee dat het enkele minuten duurt voordat het exemplaar daadwerkelijk is verwijderd.
Als u het exemplaar handmatig verwijdert, moet u ook verwijderen *./scripts/install_arc_agent.sh
. Dit wordt gemaakt door het Terraform-plan.
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