Een Azure Resource Manager-sjabloon gebruiken om een virtuele Ubuntu-machine te implementeren en te verbinden met Azure Arc

Dit artikel bevat richtlijnen voor het gebruik van een ARM-sjabloon voor Azure Resource Manager voor het automatisch onboarden van een virtuele Ubuntu-machine naar Azure Arc. De opgegeven ARM-sjabloon is verantwoordelijk voor het maken van de Azure-resources en het uitvoeren van het azure Arc-onboardscript op de VIRTUELE machine.

Azure-VM's maken standaard gebruik van de Azure Instance Metadata Service (IMDS ). Door een Azure-VM als een server met Azure Arc te projecteren, wordt er een conflict gemaakt waardoor de Azure Arc-serverbronnen niet als een kunnen worden weergegeven wanneer de IMDS wordt gebruikt. In plaats daarvan fungeert de Azure Arc-server nog steeds als een systeemeigen Azure-VM.

In deze handleiding kunt u azure-VM's alleen voor demodoeleinden gebruiken en onboarden naar Azure Arc. U hebt de mogelijkheid om een server te simuleren die buiten Azure is geïmplementeerd, bijvoorbeeld on-premises of in andere cloudplatforms.

Notitie

Een Virtuele Azure-machine wordt naar verwachting niet geprojecteerd als een server met Azure Arc. Het volgende scenario wordt niet ondersteund en mag alleen worden gebruikt voor demo- en testdoeleinden.

Vereisten

  1. Kloon de Azure Arc Jumpstart-opslagplaats.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. 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
    
  3. Azure-abonnement: Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken.

  4. Maak een Azure-service-principal.

    Als u de Azure-resources wilt implementeren met behulp van de ARM-sjabloon, 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://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    De uitvoer moet er ongeveer als volgt uitzien:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcServers",
      "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.

Automatiseringsstroom

Hieronder vindt u een uitleg om vertrouwd te raken met de automatiserings- en implementatiestroom.

  1. Een gebruiker bewerkt het arm-sjabloonparametersbestand (eenmalige bewerking). Deze parameterwaarden worden tijdens de implementatie gebruikt.

  2. De ARM-sjabloon bevat een aangepaste scriptextensie voor Azure VM, waarmee het install_arc_agent.sh shellscript wordt geïmplementeerd.

  3. Als u wilt dat de Virtuele Azure-machine kan worden geprojecteerd als een server met Azure Arc, wordt het volgende uitgevoerd:

    1. Stel lokale omgevingsvariabelen voor het besturingssysteem in.

    2. Genereer een ~/.bash_profile bestand dat wordt geïnitialiseerd bij de eerste aanmelding van de gebruiker om de omgeving te configureren. Met dit script wordt het volgende uitgevoerd:

      • Stop de Linux Azure-gastagentservice en schakel deze uit.

      • Maak een nieuwe firewallregel voor het besturingssysteem om uitgaand verkeer van Azure IMDS naar het 169.254.169.254 externe adres te blokkeren.

      • Installeer de met Azure Arc verbonden machineagent.

      • Verwijder het ~/.bash_profile bestand zodat het niet wordt uitgevoerd na de eerste aanmelding.

  4. Een gebruiker voert SSH uit naar de Linux-VM, waarmee de uitvoering van het ~/.bash_profile script wordt gestart en de VM wordt onboarden naar Azure Arc.

    Notitie

    Met install_arc_agent.sh het shell-script wordt de firewall van het besturingssysteem ingeschakeld en worden nieuwe regels ingesteld voor binnenkomende en uitgaande verbindingen. Standaard is al het binnenkomende en uitgaande verkeer toegestaan, met uitzondering van het blokkeren van uitgaand verkeer van Azure IMDS naar het 169.254.169.254 externe adres.

Implementatie

Zoals vermeld, gebruikt deze implementatie ARM-sjablonen. U implementeert één sjabloon, die verantwoordelijk is voor het maken van alle Azure-resources in één resourcegroep en het onboarden van de gemaakte VM naar Azure Arc.

  1. Voordat u de ARM-sjabloon implementeert, meldt u zich aan met behulp van Azure CLI met de az login opdracht.

  2. De implementatie maakt gebruik van het parameterbestand van de ARM-sjabloon. Voordat u de implementatie start, bewerkt u het bestand in de azuredeploy.parameters.json map met de lokale gekloonde opslagplaats. Hier bevindt zich een voorbeeld van een parameterbestand.

  3. Als u de ARM-sjabloon wilt implementeren, gaat u naar de lokale gekloonde implementatiemap en voert u de volgende opdracht uit:

    az group create --name <Name of the Azure resource group> --location <Azure region> --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group <Name of the Azure resource group> \
    --name <The name of this deployment> \
    --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \
    --parameters <The `azuredeploy.parameters.json` parameters file location>
    

    Notitie

    Zorg ervoor dat u dezelfde azure-resourcegroepnaam gebruikt als de naam die u in het azuredeploy.parameters.json bestand hebt gebruikt.

    Voorbeeld:

    az group create --name Arc-Servers-Linux-Demo --location "westeurope" --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group Arc-Servers-Linux-Demo \
    --name arclinuxdemo \
    --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \
    --parameters azuredeploy.parameters.json
    
  4. Zodra Azure-resources zijn ingericht, ziet u deze in Azure Portal.

    A screenshot of an output from an ARM template.

    A screenshot resources in the resource group.

Linux-aanmelding en na implementatie

  1. Nu de Virtuele Linux-machine is gemaakt, maakt de volgende stap verbinding met deze VM. Met behulp van het openbare IP-adres wordt SSH naar de VIRTUELE machine gebruikt.

    A screenshot of an Azure VM public IP address.

  2. Wanneer u zich voor het eerst aanmeldt, zoals vermeld in de sectie Automation-stroom , wordt er een aanmeldingsscript uitgevoerd. Dit script is gemaakt als onderdeel van het geautomatiseerde implementatieproces.

  3. Laat het script uitvoeren en sluit de SSH-sessie niet. De sessie wordt automatisch voor u gesloten zodra deze is voltooid.

    A screenshot of one type of script output.

    A screenshot of another type of script output.

    A screenshot of a third type of script output.

  4. Na een geslaagde voltooiing wordt een nieuwe server met Azure Arc toegevoegd aan de resourcegroep.

    A screenshot of a resource group from an Azure Arc-enabled server.

    A screenshot of details from an Azure Arc-enabled server.

Opschonen

Als u de hele implementatie wilt verwijderen, verwijdert u de resourcegroep uit Azure Portal.

A screenshot of how to delete resource group