Einführung in den Vm-Konsolendienst
Der Konsolendienst für virtuelle Maschinen (VM) verwalteten Zugriff auf einen virtuellen Computer, der in einer Operator Nexus-Instanz gehostet wird. Er verwendet den Azure Private Link-Dienst (PLS), um Netzwerkkonnektivität im privaten Azure-Netzwerk bereitzustellen. Der VM-Konsolendienst ist eine sichere und private Möglichkeit, auf einen virtuellen Computer zuzugreifen, ohne ihn für das öffentliche Internet verfügbar zu machen.
Weitere Informationen zu Netzwerkressourcen, die private Konnektivität mit einer Operator Nexus-Instanz ermöglichen, finden Sie unter Einführung in Azure Private Link.
Dieses Dokument enthält Anleitungen zur Verwendung des VM-Konsolendiensts zum Einrichten einer Sitzung mit einem virtuellen Computer in einer Operator Nexus-Instanz.
Dieser Leitfaden hilft Ihnen bei folgenden Schritten:
- Richten Sie eine sichere private Netzwerkkonnektivität zwischen Ihrem Netzwerk und dem privaten Netzwerk des Cluster-Managers ein.
- Erstellen Sie eine Konsolenressource in Ihrer Workload/Mandantenressourcengruppe mithilfe des CLI-Befehls
az networkcloud virtualmachine console
. - Starten Sie eine SSH-Sitzung, um eine Verbindung mit der Konsole des virtuellen Computers herzustellen.
Hinweis
Um das Übergeben des --subscription
-Parameters an jeden Azure CLI-Befehl zu vermeiden, führen Sie den folgenden Befehl aus:
az account set --subscription "your-subscription-ID"
Voraussetzungen
- Installieren Sie die neueste Version der passenden Azure CLI-Erweiterung.
Festlegen von Variablen
Um die Umgebung für den Zugriff auf virtuelle Maschinen einzurichten, definieren Sie folgende Umgebungsvariablen, die von den verschiedenen Befehlen in diesem Leitfaden verwendet werden.
Hinweis
Diese Umgebungsvariablenwerte spiegeln keine echte Bereitstellung wider, und Benutzer müssen sie ihren Umgebungen entsprechend ändern.
Beachten Sie, dass die erste Gruppe von Variablen im folgenden Abschnitt für den Cluster-Manager und nicht für den Cluster gelten.
Der CM_EXTENDED_LOCATION-Wert kann mit dem Befehl az networkcloud virtualmachine show --name <virtual machine name> --resource-group <virtual machine's resource group> --query "consoleExtendedLocation" | jq -r '.consoleExtendedLocation.name'
gefunden werden.
# 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"
Erstellen einer Konsolenressource
Die Konsolenressource stellt die Informationen über die Nexus-VM bereit. Sie stellt den VM-Namen, öffentlichen SSH-Schlüssel, das Ablaufdatum für die SSH-Sitzung usw. bereit.
Dieser Abschnitt enthält schrittweise Anleitungen zum Erstellen einer Konsolenressource mithilfe von Azure CLI-Befehlen.
Um eine Console-Ressource im Cluster-Manager zu erstellen, müssen Sie einige Informationen sammeln, z. B. Ressourcengruppe (CM_HOSTED_RESOURCES_RESOURCE_GROUP) und benutzerdefinierter Speicherort (CM_EXTENDED_LOCATION). Sie müssen die Ressourcengruppe bereitstellen, aber Sie können den benutzerdefinierten Speicherort abrufen, wenn Sie über Zugriffsrechte zum Ausführen der folgenden Befehle verfügen:
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 '"')
Damit Sie eine SSH-Sitzung mit einem virtuellen Computer einrichten können, müssen Sie als Erstes eine Console-Ressource im Cluster-Manager erstellen.
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}"]
Wenn Sie den
--expiration
-Parameter weglassen, wird der Ablauf standardmäßig auf einen Tag nach der Erstellung der Konsolenressource festgelegt. Beachten Sie außerdem, dass das Datums- und Uhrzeitformat fürexpiration
RFC3339 entsprechen muss (z. B. 2024-10-04T14:48:00Z), andernfalls schlägt die Erstellung der Konsolenressource fehl.Hinweis
Rufen Sie für einen vollständigen Überblick über diesen Befehl
az networkcloud console create --help
auf.Rufen Sie nach der Erstellung der Konsolenressource den Private Link Service-Bezeichner ab, der zum Erstellen des Private Link-Endpunkts (PLE) erforderlich ist.
export pls_resourceid=$(az networkcloud virtualmachine console show \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${CM_HOSTED_RESOURCES_RESOURCE_GROUP}" \ --query "privateLinkServiceId")
Rufen Sie außerdem die VM-Zugriffs-ID ab. Sie müssen diesen eindeutigen Bezeichner als
user
derssh
-Sitzung verwenden.virtual_machine_access_id=$(az networkcloud virtualmachine console show \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${CM_HOSTED_RESOURCES_RESOURCE_GROUP}" \ --query "virtualMachineAccessId")
Hinweis
Rufen Sie für einen vollständigen Überblick über diesen Befehl az networkcloud virtualmachine console show --help
auf.
Einrichten der privaten Netzwerkkonnektivität
Um eine sichere Sitzung mit einem virtuellen Computer einzurichten, müssen Sie eine private Netzwerkkonnektivität zwischen Ihrem Netzwerk und dem privaten Netzwerk des Cluster-Managers einrichten.
Dieses private Netzwerk basiert auf dem Azure Private Link-Endpunkt (PLE) und dem Azure Private Link-Dienst (PLS).
Der Cluster-Manager erstellt automatisch einen PLS, sodass Sie eine private Netzwerkverbindung zwischen Ihrem Netzwerk und dem privaten Netzwerk des Cluster-Managers herstellen können.
Dieser Abschnitt enthält eine schrittweise Anleitung, mit der Sie die private Netzwerkkonnektivität einrichten können.
Erstellen Sie den PLE zum Einrichten einer privaten und sicheren Verbindung zwischen Ihrem Netzwerk und dem privaten Netzwerk des Cluster-Managers. Sie benötigen die PLS-Ressourcen-ID, die in Erstellen einer Konsolenressource abgerufen wird.
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
Hinweis
Sie benötigen nur einen privaten Endpunkt pro Cluster-Manager.
Rufen Sie die private IP-Adresse ab, die dem PLE zugeordnet ist. Sie benötigen sie beim Einrichten der
ssh
-Sitzung.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}"
Einrichten einer SSH-Sitzung mit dem virtuellen Computer
An diesem Punkt haben Sie virtual_machine_access_id
und sshmux_ple_ip
. Diese Eingabe entspricht den Informationen, die zum Einrichten einer Sitzung mit dem virtuellen Computer erforderlich sind.
Der VM-Konsolendienst ist ein ssh
-Server, der die Sitzung an eine Nexus-VM weitergibt. sshmux_ple_ip
verweist indirekt auf den VM-Konsolendienst, und virtual_machine_access_id
ist der den Bezeichner für den virtuellen Computer.
Wichtig
Der VM-Konsolendienst lauscht auf Port 2222
. Daher müssen Sie diese Portnummer im Befehl ssh
angeben.
SSH [-i path-to-private-SSH-key] -p 2222 $virtual_machine_access_id@$sshmux_ple_ip
Der VM-Konsolendienst wurde so konzipiert, dass nur eine Sitzung pro virtuellem Computer zulässig ist. Jeder, der eine weitere erfolgreiche Sitzung mit einem virtuellen Computer einrichtet, schließt eine vorhandene Sitzung.
Wichtig
Der private SSH-Schlüssel, der für die Authentifizierung der Sitzung verwendet wird (Standard: $HOME/.ssh/id_rsa
) MUSS mit dem öffentlichen SSH-Schlüssel übereinstimmen, der beim Erstellen der Konsolenressource als Parameter übergeben wird.
Aktualisieren einer Konsolenressource
Sie können die Sitzung mit einem virtuellen Computer deaktivieren, indem Sie das Ablaufdatum/die Uhrzeit und den öffentlichen SSH-Schlüssel aktualisieren, der beim Erstellen der Sitzung mit einer VM verwendet wird.
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}"]
Wenn Sie den Zugriff auf einen virtuellen Computer deaktivieren möchten, müssen Sie die Konsolenressource mit dem Parameter enabled False
aktualisieren. Dieses Update schließt alle vorhandenen Sitzungen und schränkt spätere Sitzungen ein.
Hinweis
Bevor Sie eine Sitzung auf einem virtuellen Computer erstellen, muss die entsprechende Konsolenressource auf --enabled True
festgelegt werden.
Wenn eine --expiration
-Zeit für eine Konsole abläuft, wird jede Sitzung geschlossen, die der Konsolenressource entspricht. Sie müssen die Ablaufzeit mit einem zukünftigen Wert aktualisieren, damit Sie eine neue Sitzung einrichten können.
Wenn Sie den öffentlichen SSH-Schlüssel der Konsole aktualisieren, schließt der VM-Konsolendienst alle aktiven Sitzungen. Sie stellen einen neuen privaten SSH-Schlüssel zum Erstellen einer neuen Sitzung bereit.
Bereinigen (optional)
Zum Bereinigen der VM-Konsolenumgebungseinrichtung müssen Sie die Konsolenressource und den Private Link-Endpunkt löschen.
Löschen der Konsolenressource
az networkcloud virtualmachine console delete \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${VM_RESOURCE_GROUP}"
Löschen des Private Link-Endpunkts
az network private-endpoint delete \ --name ${PRIVATE_ENDPOINT_NAME}-ple \ --resource-group ${PRIVATE_ENDPOINT_NAME}-rg