Delen via


Inleiding tot de consoleservice van de virtuele machine

De vm-consoleservice (Virtual Machine) biedt beheerde toegang tot een VM die wordt gehost in een Operator Nexus-exemplaar. Het maakt gebruik van Azure Private Link Service (PLS) om netwerkconnectiviteit te bieden in het privénetwerk van Azure. De VM Console-service is een veilige en privé manier om toegang te krijgen tot een virtuele machine zonder deze beschikbaar te maken voor het openbare internet.

Diagram van de VM Console-service.

Zie Inleiding tot Azure Private Link voor meer informatie over netwerkresources die privéconnectiviteit met een Operator Nexus-exemplaar mogelijk maken.

Dit document bevat begeleide instructies voor het gebruik van de VM-consoleservice voor het tot stand brengen van een sessie met een virtuele machine in een Operator Nexus-exemplaar.

Deze handleiding helpt u bij het volgende:

  1. Een beveiligde privénetwerkverbinding tot stand brengen tussen uw netwerk en het privénetwerk van Clusterbeheer.
  2. Maak een Console-resource in uw workload/tenantresourcegroep met behulp van de az networkcloud virtualmachine console CLI-opdracht.
  3. Start een SSH-sessie om verbinding te maken met de console van de virtuele machine.

Notitie

Voer de volgende opdracht uit om te voorkomen dat de --subscription parameter wordt doorgegeven aan elke Azure CLI-opdracht:

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

Voordat u begint

  1. Installeer de nieuwste versie van de juiste CLI-extensies.

Variabelen instellen

Als u de omgeving wilt instellen voor toegang tot virtuele machines, definieert u deze omgevingsvariabelen die worden gebruikt door de verschillende opdrachten in deze handleiding.

Notitie

Deze omgevingsvariabelewaarden weerspiegelen geen echte implementatie en gebruikers moeten deze wijzigen zodat ze overeenkomen met hun omgevingen.

Er moet worden opgemerkt dat de eerste set variabelen in de onderstaande sectie voor clusterbeheer niet het cluster zijn. De CM_EXTENDED_LOCATION waarde vindt u met de opdracht az networkcloud virtualmachine show --name <virtual machine name> --resource-group <virtual machine's resource group> --query "consoleExtendedLocation" | jq -r '.consoleExtendedLocation.name'.

    # CM_HOSTED_RESOURCES_RESOURCE_GROUP: Cluster Manager resource group name
    export CM_HOSTED_RESOURCES_RESOURCE_GROUP="my-contoso-console-rg"

    # VIRTUAL_MACHINE_NAME: Virtual Machine name you want to access through VM Console service
    export VIRTUAL_MACHINE_NAME="my-undercloud-vm"
    # 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=$(az networkcloud virtualmachine show --name ${VIRTUAL_MACHINE_NAME} --resource-group ${VIRTUAL_MACHINE_RG}  --query "consoleExtendedLocation" | jq -r '.consoleExtendedLocation.name')

    # 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"

Consoleresource maken

De Console-resource bevat de informatie over de Nexus-VM. De vm-naam, openbare SSH-sleutel, vervaldatum voor de SSH-sessie, enzovoort.

Deze sectie bevat stapsgewijze instructies voor het maken van een consoleresource met behulp van Azure CLI-opdrachten.

Diagram van vm-consoleresource.

  1. Als u een consoleresource wilt maken in Clusterbeheer, moet u enkele gegevens verzamelen, bijvoorbeeld resourcegroep (CM_HOSTED_RESOURCES_RESOURCE_GROUP) en aangepaste locatie (CM_EXTENDED_LOCATION). U moet de resourcegroep opgeven, maar u kunt de aangepaste locatie ophalen als u toegangsrechten hebt om de volgende opdrachten uit te voeren:

    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. Het eerste wat u kunt doen voordat u een SSH-sessie met een VIRTUELE machine tot stand brengt, is het maken van een consoleresource in Clusterbeheer.

    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}"]
    

    Als u de --expiration parameter weglaat, wordt de vervaldatum standaard ingesteld op één dag na het maken van de Console-resource. Houd er ook rekening mee dat de expiration datum- en tijdnotatie moet volgen RFC3339 (bijvoorbeeld 2024-10-04T14:48:00Z) anders mislukt het maken van de Console-resource.

    Notitie

    Voor een volledige synopsis voor deze opdracht roept u aan az networkcloud console create --help.

  3. Nadat de consoleresource is gemaakt, haalt u de Private Link-service-id op die is vereist voor het maken van een Private Link-eindpunt (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. Haal ook de toegangs-id van de VM op. U moet deze unieke id gebruiken vanaf user de ssh sessie.

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

Notitie

Voor een volledige synopsis voor deze opdracht roept u aan az networkcloud virtualmachine console show --help.

Connectiviteit met privénetwerk tot stand brengen

Als u een beveiligde sessie met een virtuele machine tot stand wilt brengen, moet u een privénetwerkverbinding tot stand brengen tussen uw netwerk en het privénetwerk van clusterbeheer.

Dit privénetwerk is afhankelijk van het Azure Private Link-eindpunt (PLE) en de Azure Private Link-service (PLS).

Clusterbeheer maakt automatisch een PLS, zodat u een privénetwerkverbinding tot stand kunt brengen tussen uw netwerk en het privénetwerk van Clusterbeheer.

Deze sectie bevat een stapsgewijze handleiding om u te helpen bij het tot stand brengen van een privénetwerkconnectiviteit.

Diagram van Private Link-netwerken.

  1. Maak de PLE voor het tot stand brengen van een privé- en beveiligde verbinding tussen uw netwerk en het privénetwerk van Clusterbeheer. U hebt de PLS-resource-id nodig die u hebt verkregen bij het maken van een consoleresource.

     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
    

Notitie

U hebt slechts één privé-eindpunt per clusterbeheer nodig.

  1. Haal het privé-IP-adres op dat is toegewezen aan de PLE, die u nodig hebt bij het tot stand brengen van de ssh sessie.

     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}"
    

Een SSH-sessie met virtuele machine tot stand brengen

Op dit moment heb je de virtual_machine_access_id en de sshmux_ple_ip. Deze invoer is de informatie die nodig is voor het tot stand brengen van een sessie met de virtuele machine.

De VM Console-service is een ssh server die de sessie doorsluizen naar een Nexus-VM. De sshmux_ple_ip indirect verwijst naar de VM Console-service en de virtual_machine_access_id id voor de VIRTUELE machine.

Belangrijk

De VM Console-service luistert naar poort2222, daarom moet u dit poortnummer opgeven in de ssh opdracht.

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

Diagram van de SSH-sessie van de VM-console.

De VM Console-service is ontworpen om slechts één sessie per virtuele machine toe te staan. Iedereen die een andere geslaagde sessie met een VIRTUELE machine tot stand heeft gebracht, sluit een bestaande sessie.

Belangrijk

De persoonlijke SSH-sleutel die wordt gebruikt voor het verifiëren van de sessie (standaard: $HOME/.ssh/id_rsa) MOET overeenkomen met de openbare SSH-sleutel die is doorgegeven als een parameter bij het maken van de Console-resource.

Consoleresource bijwerken

U kunt de sessie uitschakelen op een virtuele machine door de vervaldatum/tijd en de openbare SSH-sleutel bij te werken die wordt gebruikt bij het maken van de sessie met een VIRTUELE machine.

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}"]

Als u de toegang tot een virtuele machine wilt uitschakelen, moet u de consoleresource bijwerken met de parameter enabled False. Met deze update wordt elke bestaande sessie gesloten en worden latere sessies beperkt.

Notitie

Voordat u een sessie naar een VIRTUELE machine maakt, moet de bijbehorende consoleresource worden ingesteld op--enabled True.

Wanneer een consoletijd --expiration verloopt, wordt een sessie gesloten die overeenkomt met de Console-resource. U moet de verlooptijd bijwerken met een toekomstige waarde, zodat u een nieuwe sessie kunt opzetten.

Wanneer u de openbare SSH-sleutel van de console bijwerkt, sluit de VM Console-service alle actieve sessies. U presenteert een nieuwe persoonlijke SSH-sleutel om een nieuwe sessie te maken.

Opschonen (optioneel)

Als u de installatie van de VM-consoleomgeving wilt opschonen, moet u de consoleresource en uw Private Link-eindpunt verwijderen.

  1. Uw consoleresource verwijderen

     az networkcloud virtualmachine console delete \
         --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
         --resource-group "${VM_RESOURCE_GROUP}"
    
  2. Het Private Link-eindpunt verwijderen

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