Share via


Introduktion till virtual machine-konsoltjänsten

Konsoltjänsten virtuell dator (VM) ger hanterad åtkomst till en virtuell dator som finns i en Operator Nexus-instans. Den förlitar sig på Azure Private Link Service (PLS) för att upprätta en privat nätverksanslutning mellan användarens nätverk och Azure Operator Nexus Cluster Manager privata nätverk.

Diagram of VM Console service.

Mer information om nätverksresurser som möjliggör privat anslutning till en Operator Nexus-instans finns i Introduktion till Azure Private Link.

Det här dokumentet innehåller guidade instruktioner om hur du använder vm-konsoltjänsten för att upprätta en session med en virtuell dator i en Operator Nexus-instans.

Den här guiden hjälper dig att:

  1. Upprätta en säker privat nätverksanslutning mellan nätverket och Klusterhanterarens privata nätverk.
  2. Skapa en konsolresurs i din resursgrupp för arbetsbelastning/klientorganisation med hjälp av az networkcloud virtualmachine console CLI-kommandot.
  3. Initiera en SSH-session för att ansluta till den virtuella datorns konsol.

Kommentar

Kör följande kommando för att undvika att skicka parametern --subscription till varje Azure CLI-kommando:

  az account set --subscription "your-subscription-ID"

Innan du börjar

  1. Installera den senaste versionen av lämpliga CLI-tillägg.

Ange variabler

För att konfigurera miljön för åtkomst till virtuella datorer definierar du de miljövariabler som används av de olika kommandona i den här guiden.

Kommentar

Dessa miljövariabelvärden återspeglar inte en verklig distribution och användarna MÅSTE ändra dem för att matcha sina miljöer.

Det bör noteras att den första uppsättningen variabler i avsnittet nedan gäller klusterhanteraren, inte klustret.

    # CM_HOSTED_RESOURCES_RESOURCE_GROUP: Cluster Manager resource group name
    export CM_HOSTED_RESOURCES_RESOURCE_GROUP="my-contoso-console-rg"
    # CM_EXTENDED_LOCATION: Cluster Manager Extended Location, can be retrieved but you will need access rights to execute certain Azure CLI commands
    export CM_EXTENDED_LOCATION="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ExtendedLocation/customLocations/clusterManagerExtendedLocationName"

    # VIRTUAL_MACHINE_NAME: Virtual Machine name you want to access through VM Console service
    export VIRTUAL_MACHINE_NAME="my-undercloud-vm"
    # CONSOLE_PUBLIC_KEY: Public Key matching Private Key to be used when establish `ssh` session, e.g., `ssh -i $HOME/.ssh/id-rsa`
    export CONSOLE_PUBLIC_KEY="xxxx-xxxx-xxxxxx-xxxx"
    # CONSOLE_EXPIRATION_TIME: Expiration date and time (RFC3339 format) for any `ssh` session with a virtual machine. 
    export CONSOLE_EXPIRATION_TIME="2023-06-01T01:27:03.008Z"

    # PRIVATE_ENDPOINT_RG: Resource group name that Private Endpoint will be created on
    export PRIVATE_ENDPOINT_RG="my-work-env-rg"
    # PRIVATE_ENDPOINT_NAME: Private Endpoint's name you choose
    export PRIVATE_ENDPOINT_NAME="my-work-env-ple"
    # PRIVATE_ENDPOINT_CONNECTION_NAME: PLE/PLS connection name you choose
    export PRIVATE_ENDPOINT_CONNECTION_NAME="my-contoso-ple-pls-connection"
    # PRIVATE_ENDPOINT_REGION: Location where Private Endpoint will be created
    export PRIVATE_ENDPOINT_REGION="eastus"
    # PRIVATE_ENDPOINT_VNET: Virtual Network to be used by the Private Endpoint
    export PRIVATE_ENDPOINT_VNET="my-work-env-ple-vnet"
    # PRIVATE_ENDPOINT_SUBNET: Subnetwork to be used by the Private Endpoint
    export PRIVATE_ENDPOINT_SUBNET="my-work-env-ple-subnet"

Skapa konsolresurs

Konsolresursen innehåller information om den virtuella datorn, till exempel vm-namn, offentlig SSH-nyckel, förfallodatum för SSH-sessionen osv.

Det här avsnittet innehåller stegvis guide som hjälper dig att skapa en konsolresurs med hjälp av Azure CLI-kommandon.

Diagram of VM Console Resource.

  1. För att kunna skapa en konsolresurs i Klusterhanteraren måste du samla in viss information, t.ex. resursgrupp (CM_HOSTED_RESOURCES_RESOURCE_GROUP) och anpassad plats (CM_EXTENDED_LOCATION). Du måste ange resursgruppen, men du kan hämta den anpassade platsen om du har behörighet att ta ut kommandona nedan.

    export cluster_manager_resource_id=$(az resource list -g ${CM_HOSTED_RESOURCES_RESOURCE_GROUP} --query "[?type=='Microsoft.NetworkCloud/clusterManagers'].id" --output tsv)
    export CM_EXTENDED_LOCATION=$(az resource show --ids $cluster_manager_resource_id --query "properties.managerExtendedLocation.name" | tr -d '"')
    
  2. Det första innan du kan upprätta en SSH-session med en virtuell dator är att skapa en konsolresurs i Klusterhanteraren.

    az networkcloud virtualmachine console create \
        --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
        --resource-group "${CM_HOSTED_RESOURCES_RESOURCE_GROUP}" \
        --extended-location name="${CM_EXTENDED_LOCATION}" type="CustomLocation" \
        --enabled True \
        --key-data "${CONSOLE_PUBLIC_KEY}" \
        [--expiration "${CONSOLE_EXPIRATION_TIME}"]
    

    Om du utelämnar parametern --expiration förfaller förfallodatumet till en dag efter att konsolresursen har skapats. Observera också att expiration datum- och tidsformatet måste överensstämma med RFC3339 annars misslyckas skapandet av konsolresursen.

    Kommentar

    Om du vill ha en fullständig synopsis för det här kommandot anropar az networkcloud console create --helpdu .

  3. När konsolresursen har skapats hämtar du den private link-tjänstidentifierare som krävs för att skapa en Private Link-slutpunkt (PLE)

    export pls_resourceid=$(az networkcloud virtualmachine console show \
        --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
        --resource-group "${CM_HOSTED_RESOURCES_RESOURCE_GROUP}" \
        --query "privateLinkServiceId")
    
  4. Hämta även åtkomst-ID:t för den virtuella datorn. Du måste använda den här unika identifieraren från och med userssh sessionen.

    virtual_machine_access_id=$(az networkcloud virtualmachine console show \
        --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
        --resource-group "${CM_HOSTED_RESOURCES_RESOURCE_GROUP}" \
        --query "virtualMachineAccessId")
    

Kommentar

Om du vill ha en fullständig synopsis för det här kommandot anropar az networkcloud virtualmachine console show --helpdu .

Upprätta privat nätverks Anslut ivitet

För att upprätta en säker session med en virtuell dator måste du upprätta en privat nätverksanslutning mellan nätverket och klusterhanterarens privata nätverk.

Det här privata nätverket förlitar sig på Azure Private Link-slutpunkten (PLE) och Azure Private Link Service (PLS).

Klusterhanteraren skapar automatiskt en PLS så att du kan upprätta en privat nätverksanslutning mellan nätverket och klusterhanterarens privata nätverk.

Det här avsnittet innehåller en stegvis guide som hjälper dig att upprätta en privat nätverksanslutning.

Diagram of Private Link networking.

  1. Skapa PLE för att upprätta en privat och säker anslutning mellan nätverket och klusterhanterarens privata nätverk. Du behöver det PLS-resurs-ID som hämtats i Skapa konsolresurs.

     az network private-endpoint create \
         --connection-name "${PRIVATE_ENDPOINT_CONNECTION_NAME}" \
         --name "${PRIVATE_ENDPOINT_NAME}" \
         --private-connection-resource-id "${pls_resourceid}" \
         --resource-group "${PRIVATE_ENDPOINT_RG}" \
         --vnet-name "${PRIVATE_ENDPOINT_VNET}" \
         --subnet "${PRIVATE_ENDPOINT_SUBNET}" \
         --manual-request false
    

Kommentar

Du behöver bara en privat slutpunkt per klusterhanterare.

  1. Hämta den privata IP-adress som allokerats till PLE, som du behöver när du upprättar ssh sessionen.

     export ple_interface_id=$(az network private-endpoint list --resource-group ${PRIVATE_ENDPOINT_RG} --query "[0].networkInterfaces[0].id" -o tsv)
    
     export sshmux_ple_ip=$(az network nic show --ids $ple_interface_id --query 'ipConfigurations[0].privateIPAddress' -o tsv)
    
     echo "sshmux_ple_ip: ${sshmux_ple_ip}"
    

Upprätta en SSH-session med virtuell dator

Nu har virtual_machine_access_id du och sshmux_ple_ip. Den här indatan är den information som behövs för att upprätta en session med den virtuella datorn.

VM-konsoltjänsten är en ssh server som "vidarebefordrar" sessionen till den avsedda virtuella datorn. Indirekt sshmux_ple_ip refererar till VM-konsoltjänsten och identifieraren virtual_machine_access_id för den virtuella datorn.

Viktigt!

VM-konsoltjänsten lyssnar på port 2222. Därför måste du ange det här portnumret i ssh kommandot .

   SSH [-i path-to-private-SSH-key] -p 2222 $virtual_machine_access_id@$sshmux_ple_ip

Diagram of VM Console SSH Session.

VM-konsoltjänsten har utformats för att endast tillåta en session per virtuell dator. Alla som upprättar en annan lyckad session till en virtuell dator stänger en befintlig session.

Viktigt!

Den privata SSH-nyckel som används för att autentisera sessionen (standard: $HOME/.ssh/id_rsa) MÅSTE matcha den offentliga SSH-nyckel som skickas som en parameter när du skapar konsolresursen.

Uppdatera konsolresurs

Du kan inaktivera sessionen till en viss virtuell dator genom att uppdatera förfallodatum/tid och/eller uppdatera den offentliga SSH-nyckel som används när du skapar sessionen med en virtuell dator.

az networkcloud virtualmachine console update \
    --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
    --resource-group "${VM_RESOURCE_GROUP}" \
    [--enabled True | False] \
    [--key-data "${CONSOLE_PUBLIC_KEY}"] \
    [--expiration "${CONSOLE_EXPIRATION_TIME}"]

Om du vill inaktivera åtkomsten till en virtuell dator måste du uppdatera konsolresursen med parametern enabled False. Den här uppdateringen stänger alla befintliga sessioner och begränsar efterföljande sessioner.

Kommentar

Innan du skapar en session till en virtuell dator måste motsvarande konsolresurs vara inställd på --enabled True.

När en konsoltid --expiration går ut stängs alla sessioner som motsvarar konsolresursen. Du måste uppdatera förfallotiden med ett framtida värde så att du kan upprätta en ny session.

När du uppdaterar konsolens offentliga SSH-nyckel stänger VM-konsoltjänsten alla aktiva sessioner som refereras av konsolresursen. Du måste ange en matchande privat SSH-nyckel som matchar den nya offentliga nyckeln när du upprättar en ny session.

Rensa (valfritt)

Om du vill rensa konfigurationen av vm-konsolens miljö måste du ta bort konsolresursen och private link-slutpunkten.

  1. Ta bort konsolresursen

     az networkcloud virtualmachine console delete \
         --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
         --resource-group "${VM_RESOURCE_GROUP}"
    
  2. Ta bort private link-slutpunkten

    az network private-endpoint delete \
    --name ${PRIVATE_ENDPOINT_NAME}-ple \
    --resource-group ${PRIVATE_ENDPOINT_NAME}-rg