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.
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:
- Een beveiligde privénetwerkverbinding tot stand brengen tussen uw netwerk en het privénetwerk van Clusterbeheer.
- Maak een Console-resource in uw workload/tenantresourcegroep met behulp van de
az networkcloud virtualmachine console
CLI-opdracht. - 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
- 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.
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 '"')
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 deexpiration
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
.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")
Haal ook de toegangs-id van de VM op. U moet deze unieke id gebruiken vanaf
user
dessh
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.
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.
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
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.
Uw consoleresource verwijderen
az networkcloud virtualmachine console delete \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${VM_RESOURCE_GROUP}"
Het Private Link-eindpunt verwijderen
az network private-endpoint delete \ --name ${PRIVATE_ENDPOINT_NAME}-ple \ --resource-group ${PRIVATE_ENDPOINT_NAME}-rg