Delen via


Zelfstudie: Virtuele Linux-machines maken en beheren met de Azure CLI

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Virtuele machines in Azure bieden een volledig geconfigureerde en flexibele computeromgeving. In deze zelfstudie worden basisitems voor de implementatie van virtuele Azure-machines behandeld, zoals het selecteren van een VM-grootte, het selecteren van een VM-image en het implementeren van een virtuele machine. U leert het volgende:

  • Een virtuele machine maken en ermee verbinden
  • VM-installatiekopieën selecteren en gebruiken
  • Specifieke VM-grootten weergeven en gebruiken
  • De grootte van een virtuele machine wijzigen
  • De status van een virtuele machine weergeven en begrijpen

In deze zelfstudie wordt gebruikgemaakt van de CLI in de Azure Cloud Shell, die voortdurend wordt bijgewerkt naar de nieuwste versie.

Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u Azure CLI 2.0.30 of hoger gebruiken voor deze zelfstudie. Voer az --version uit om de versie te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Resourcegroep aanmaken

Hieronder declareren we omgevingsvariabelen. Er wordt een willekeurig achtervoegsel toegevoegd aan resourcenamen die uniek moeten zijn voor elke implementatie.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="eastus2"
export MY_RESOURCE_GROUP_NAME="myResourceGroupVM$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

Resultaten:

{
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx",
  "location": "eastus2",
  "name": "myResourceGroupVMxxx",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Een resourcegroep moet worden gemaakt voordat een virtuele machine wordt aangemaakt. In dit voorbeeld wordt een resourcegroep met de naam myResourceGroupVM gemaakt in de regio eastus2 .

De resourcegroep wordt opgegeven tijdens het maken of wijzigen van een virtuele machine, zoals in deze zelfstudie te zien is.

Virtuele machine maken

Wanneer u een virtuele machine maakt, zijn er verschillende opties beschikbaar, zoals besturingssysteemimage, schijfgrootte en beheerdersgegevens. In het volgende voorbeeld wordt een VIRTUELE machine gemaakt met de naam myVM waarop SUSE Linux Enterprise Server (SLES) wordt uitgevoerd. Er wordt een gebruikersaccount met de naam azureuser gemaakt op de virtuele machine en SSH-sleutels worden gegenereerd als deze niet bestaan op de standaardsleutellocatie (~/.ssh).

export MY_VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM_NAME \
    --image SuseSles15SP5 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

Het kan enkele minuten duren voordat de virtuele machine is gemaakt. Zodra de VIRTUELE machine is gemaakt, voert de Azure CLI informatie over de VIRTUELE machine uit. Noteer het publicIpAddress; dit adres kan worden gebruikt voor toegang tot de virtuele machine.

{
  "fqdns": "",
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVMxxx"
}

Verbinding maken met de VM

U kunt nu verbinding maken met de VIRTUELE machine met SSH in Azure Cloud Shell of vanaf uw lokale computer. Vervang het voorbeeld-IP-adres door het publicIpAddress ip-adres dat u in de vorige stap hebt genoteerd.

Als u verbinding wilt maken met de virtuele machine, moet u eerst het openbare IP-adres ophalen met behulp van de Azure CLI. Voer de volgende opdracht uit om het IP-adres op te slaan in een variabele: export IP_ADDRESS=$(az vm show --show-details --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query publicIps --output tsv)

Zodra u het IP-adres hebt, gebruikt u SSH om verbinding te maken met de virtuele machine. Met de volgende opdracht maakt u verbinding met de virtuele machine met behulp van het azureuser account en het opgehaalde IP-adres: ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS

VM-installatiekopieën begrijpen

Azure Marketplace bevat veel afbeeldingen die kunnen worden gebruikt om VM's te maken. In de vorige stappen is een virtuele machine gemaakt met een SUSE-image. In deze stap wordt de Azure CLI gebruikt om de marketplace te doorzoeken op een Ubuntu-installatiekopie, die vervolgens wordt gebruikt om een tweede virtuele machine te implementeren.

Als u een lijst met de meest gebruikte afbeeldingen wilt zien, gebruikt u de opdracht az vm image list.

az vm image list --output table

De uitvoer van de opdracht retourneert de populairste VM-afbeeldingen op Azure.

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             debian-10                     Debian                  10                                  Debian:debian-10:10:latest                                                      Debian                   latest
x64             flatcar-container-linux-free  kinvolk                 stable                              kinvolk:flatcar-container-linux-free:stable:latest                              Flatcar                  latest
x64             opensuse-leap-15-3            SUSE                    gen2                                SUSE:opensuse-leap-15-3:gen2:latest                                             openSUSE-Leap            latest
x64             RHEL                          RedHat                  7-LVM                               RedHat:RHEL:7-LVM:latest                                                        RHEL                     latest
x64             sles-15-sp3                   SUSE                    gen2                                SUSE:sles-15-sp3:gen2:latest                                                    SLES                     latest
x64             0001-com-ubuntu-server-jammy  Canonical               18.04-LTS                           Canonical:UbuntuServer:18.04-LTS:latest                                         UbuntuLTS                latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest                     Win2022Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition-core  MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest  Win2022AzureEditionCore  latest
x64             WindowsServer                 MicrosoftWindowsServer  2019-Datacenter                     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest                     Win2019Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2016-Datacenter                     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest                     Win2016Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter                  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest                  Win2012R2Datacenter      latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-Datacenter                     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest                     Win2012Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1                         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest                         Win2008R2SP1             latest

Een volledige lijst kan worden weergegeven door de --all parameter toe te voegen. De lijst met afbeeldingen kan ook gefilterd worden op --publisher of –-offer. In dit voorbeeld wordt de lijst gefilterd op alle afbeeldingen, gepubliceerd door OpenLogic, met een aanbieding die overeenkomt met 0001-com-ubuntu-server-jammy.

az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table

Voorbeeld van gedeeltelijke uitvoer:

Architecture    Offer                              Publisher    Sku              Urn                                                                       Version
--------------  ---------------------------------  -----------  ---------------  ------------------------------------------------------------------------  ---------------
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200          22.04.202204200
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060          22.04.202205060
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280          22.04.202205280
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040          22.04.202206040
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090          22.04.202206090
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160          22.04.202206160
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220          22.04.202206220
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060          22.04.202207060

Opmerking

Canonical heeft de Offer-namen gewijzigd die ze gebruiken voor de meest recente versies. Voor Ubuntu 20.04 is de naam van de aanbieding UbuntuServer. Voor Ubuntu 20.04 is de aanbieding0001-com-ubuntu-server-focal en voor Ubuntu 22.04 is het 0001-com-ubuntu-server-jammy.

Als u een virtuele machine wilt implementeren met behulp van een specifieke installatiekopie, noteert u de waarde in de Urn-kolom, die bestaat uit de uitgever, aanbod, SKU en optioneel een versienummer om de installatiekopie te identificeren. Wanneer u de afbeelding specificeert, kan het versienummer van de afbeelding worden vervangen door latest, waarmee de nieuwste versie van de distributie wordt geselecteerd. In dit voorbeeld wordt de --image parameter gebruikt om de nieuwste versie van een Ubuntu 22.04 op te geven.

export MY_VM2_NAME="myVM2$RANDOM_SUFFIX"
az vm create --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM2_NAME --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest --generate-ssh-keys

Inzicht in VM-grootten

De grootte van een virtuele machine bepaalt de hoeveelheid rekenresources, zoals CPU, GPU en geheugen die beschikbaar worden gesteld voor de virtuele machine. Virtuele machines moeten de juiste grootte hebben voor de verwachte werkbelasting. Als de werkbelasting toeneemt, kan een bestaande virtuele machine worden aangepast in grootte.

VM-grootten

In de volgende tabel zijn grootten gecategoriseerd in use-cases.

Typ Beschrijving
Algemeen gebruik Evenwichtige CPU-geheugenverhouding. Ideaal voor ontwikkelen/testen en in kleine tot middelgrote toepassingen en gegevensoplossingen.
Geoptimaliseerde rekenkracht Hoge CPU-geheugenverhouding. Goed voor middelgrootte verkeerstoepassingen, netwerkapparatuur en batchprocessen.
Geoptimaliseerd voor geheugen Hoge geheugen-kernverhouding. Uiterst geschikt voor relationele-databases, middelgrote tot grote caches en analysefuncties in het geheugen.
Geoptimaliseerd voor opslag Snelle doorvoer van schijfgegevens en IO. Ideaal voor big data-, SQL- en NoSQL-databases.
GPU Gespecialiseerde VM's bedoeld voor intensieve grafische rendering en videobewerking.
Hoge prestaties Onze krachtigste CPU-VM's met optionele netwerkinterfaces (RDMA) voor hoge doorvoer.

Beschikbare VM-grootten zoeken

Gebruik de opdracht az vm list-sizes om een lijst met VM-grootten weer te geven die beschikbaar zijn in een bepaalde regio.

az vm list-sizes --location $REGION --output table

Voorbeeld van gedeeltelijke uitvoer:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
4                   8192          Standard_D2ds_v4           2                1047552           76800
8                   16384         Standard_D4ds_v4           4                1047552           153600
16                  32768         Standard_D8ds_v4           8                1047552           307200
32                  65536         Standard_D16ds_v4          16               1047552           614400
32                  131072        Standard_D32ds_v4          32               1047552           1228800
32                  196608        Standard_D48ds_v4          48               1047552           1843200
32                  262144        Standard_D64ds_v4          64               1047552           2457600
4                   8192          Standard_D2ds_v5           2                1047552           76800
8                   16384         Standard_D4ds_v5           4                1047552           153600
16                  32768         Standard_D8ds_v5           8                1047552           307200
32                  65536         Standard_D16ds_v5          16               1047552           614400
32                  131072        Standard_D32ds_v5          32               1047552           1228800
32                  196608        Standard_D48ds_v5          48               1047552           1843200
32                  262144        Standard_D64ds_v5          64               1047552           2457600
32                  393216        Standard_D96ds_v5          96               1047552           3686400

Vm maken met een specifieke grootte

In het vorige voorbeeld van het maken van een virtuele machine is er geen grootte opgegeven, wat resulteert in een standaardgrootte. Een VM-grootte kan tijdens de creatie worden geselecteerd met behulp van az vm create en de --size-parameter.

export MY_VM3_NAME="myVM3$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM3_NAME \
    --image SuseSles15SP5 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

De grootte van een virtuele machine wijzigen

Nadat een virtuele machine is geïmplementeerd, kan de grootte ervan worden gewijzigd om meer of minder resources toe te wijzen. U kunt de huidige grootte van een virtuele machine weergeven met az vm show:

az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query hardwareProfile.vmSize

Controleer voordat u het formaat van een VIRTUELE machine wijzigt of de gewenste grootte beschikbaar is in het huidige Azure-cluster. De opdracht az vm list-vm-resize-options retourneert de lijst met grootten.

az vm list-vm-resize-options --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query [].name

Als de gewenste grootte beschikbaar is, kan de grootte van de virtuele machine worden gewijzigd vanuit de status Ingeschakeld, hoewel deze tijdens de bewerking opnieuw wordt opgestart. Gebruik de opdracht az vm resize om de grootte te wijzigen.

az vm resize --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --size Standard_D4s_v3

Als de gewenste grootte niet beschikbaar is in het huidige cluster, moet de VM worden gedealloceerd voordat de grootte kan worden aangepast. Gebruik de opdracht az vm deallocate om de toewijzing van de VIRTUELE machine te stoppen en de toewijzing ervan ongedaan te maken. Houd er rekening mee dat wanneer de virtuele machine weer wordt ingeschakeld, gegevens op de tijdelijke schijf mogelijk worden verwijderd. Het openbare IP-adres wordt ook gewijzigd, tenzij er een statisch IP-adres wordt gebruikt. Zodra het gedealloceerd is, kan de grootte worden gewijzigd.

Nadat het formaat is gewijzigd, kan de VIRTUELE machine worden gestart.

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

Energiestatussen voor de virtuele machine

Een Azure VM kan op een van de vele energiestatussen worden ingesteld. Deze status vertegenwoordigt de huidige status van de VIRTUELE machine vanuit het oogpunt van de hypervisor.

Energietoestanden

Energiestatus Beschrijving
Beginnen Geeft aan dat de virtuele machine wordt gestart.
Hardlopen Geeft aan dat de virtuele machine draait.
Het stoppen Geeft aan dat de virtuele machine wordt gestopt.
Gestopt Geeft aan dat de virtuele machine is gestopt. Virtuele machines met de status Gestopt genereren nog steeds rekenkosten.
Vrijgeven Geeft aan dat de virtuele machine wordt gedealloceerd.
Toewijzing ongedaan gemaakt Geeft aan dat de virtuele machine is verwijderd uit de hypervisor, maar nog steeds beschikbaar is in het besturingsvlak. Virtuele machines in de status Gedealloceerd worden geen kosten in rekening gebracht.
- Geeft aan dat de energiestatus van de virtuele machine onbekend is.

De energiestatus zoeken

Gebruik de opdracht az vm get-instance-view om de status van een bepaalde VM op te halen. Zorg ervoor dat u een geldige naam opgeeft voor een virtuele machine en resourcegroep.

az vm get-instance-view \
    --name $MY_VM_NAME \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --query instanceView.statuses[1] --output table

Uitvoer:

Code                Level    DisplayStatus
------------------  -------  ---------------
PowerState/running  Info     VM running

Als u de energiestatus van alle VM's in uw abonnement wilt ophalen, gebruikt u de API Virtual Machines - List All, waarbij u de parameter statusOnly instelt op true.

Beheertaken

Tijdens de levenscyclus van een virtuele machine kunt u beheertaken uitvoeren, zoals het starten, stoppen of verwijderen van een virtuele machine. Misschien wilt u ook scripts maken voor het automatiseren van terugkerende of complexe taken. Met behulp van de Azure CLI kunnen veel algemene beheertaken worden uitgevoerd vanaf de opdrachtregel of in scripts.

IP-adres ophalen

Met deze opdracht worden de privé- en openbare IP-adressen van een virtuele machine geretourneerd.

az vm list-ip-addresses --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --output table

Virtuele machine stoppen

az vm stop --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

Virtuele machine starten

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

VM-resources verwijderen

Afhankelijk van hoe u een virtuele machine verwijdert, kan deze alleen de VM-resource verwijderen, niet de netwerk- en schijfresources. U kunt het standaardgedrag wijzigen om andere resources te verwijderen wanneer u de VIRTUELE machine verwijdert. Zie Een VIRTUELE machine en gekoppelde resources verwijderen voor meer informatie.

Als u een resourcegroep verwijdert, worden ook alle resources in de resourcegroep verwijderd, zoals de virtuele machine, het virtuele netwerk en de schijf. De parameter --no-wait retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid. De parameter --yes bevestigt dat u de resources wilt verwijderen, zonder een extra prompt om dit te doen.

Volgende stappen

In deze zelfstudie hebt u geleerd over basistaken voor het maken en beheren van een virtuele machine, zoals:

  • Een virtuele machine maken en ermee verbinden
  • VM-installatiekopieën selecteren en gebruiken
  • Specifieke VM-grootten weergeven en gebruiken
  • De grootte van een virtuele machine wijzigen
  • De status van een virtuele machine weergeven en begrijpen

Ga door naar de volgende zelfstudie om te leren over VM-schijven.