Freigeben über


Einführung in den Vm-Konsolendienst

Der Konsolendienst für virtuelle Computer (VM) bietet verwalteten Zugriff auf einen virtuellen Computer, der in einer Operator Nexus-Instanz gehostet wird. Es basiert auf dem Azure Private Link Service (PLS), um eine private Netzwerkverbindung zwischen dem Netzwerk des Benutzers und dem privaten Netzwerk des Azure Operator Nexus Cluster Managers herzustellen.

Diagram of VM Console service.

Weitere Informationen zu Netzwerkressourcen, die private Konnektivität mit einer Operator Nexus-Instanz ermöglichen, finden Sie in der 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:

  1. Richten Sie eine sichere private Netzwerkkonnektivität zwischen Ihrem Netzwerk und dem privaten Netzwerk des Cluster-Managers ein.
  2. Erstellen Sie eine Konsolenressource in Ihrer Workload-/Mandantenressourcengruppe mithilfe des az networkcloud virtualmachine console CLI-Befehls.
  3. Initiieren Sie eine SSH-Sitzung, um eine Verbindung mit der Konsole des virtuellen Computers herzustellen.

Hinweis

Um zu vermeiden, dass der --subscription Parameter an jeden Azure CLI-Befehl übergeben wird, führen Sie den folgenden Befehl aus:

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

Voraussetzungen

  1. Installieren Sie die neueste Version der entsprechenden CLI-Erweiterungen.

Festlegen von Variablen

Um die Umgebung für den Zugriff auf virtuelle Computer einzurichten, definieren Sie diese Umgebungsvariablen, die von den verschiedenen Befehlen in diesem Handbuch verwendet werden.

Hinweis

Diese Umgebungsvariablenwerte spiegeln keine echte Bereitstellung wider, und Benutzer müssen sie entsprechend ihren Umgebungen ändern.

Beachten Sie, dass der erste Satz von Variablen im folgenden Abschnitt für den Cluster-Manager und nicht für den Cluster-Manager gilt.

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

Erstellen einer Konsolenressource

Die Konsolenressource stellt die Informationen über den virtuellen Computer bereit, z. B. VM-Name, öffentlicher SSH-Schlüssel, Ablaufdatum für die SSH-Sitzung usw.

Dieser Abschnitt enthält schrittweise Anleitungen zum Erstellen einer Konsolenressource mithilfe von Azure CLI-Befehlen.

Diagram of VM Console Resource.

  1. Um eine Konsolenressource im Cluster-Manager zu erstellen, müssen Sie einige Informationen sammeln, z. B. Ressourcengruppe (CM_HOSTED_RESOURCES_RESOURCE_GROUP) und benutzerdefinierten Speicherort (CM_EXTENDED_LOCATION). Sie müssen die Ressourcengruppe bereitstellen, aber Sie können den benutzerdefinierten Speicherort abrufen, wenn Sie Über Zugriffsrechte zum Ausscheiden der unten aufgeführten 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 '"')
    
  2. Das erste, bevor Sie eine SSH-Sitzung mit einer VM einrichten können, besteht darin, eine Konsolenressource im Cluster-Manager zu 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 expiration Datums- und Uhrzeitformat RFC3339 andernfalls schlägt die Erstellung der Konsolenressource fehl.

    Hinweis

    Rufen Sie für einen vollständigen Überblick über diesen Befehl auf az networkcloud console create --help.

  3. Rufen Sie bei erfolgreicher Erstellung der Konsolenressource den Bezeichner des privaten Linkdiensts ab, der zum Erstellen des Endpunkts für private Links (PRIVATE Link Endpoint, 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")
    
  4. Rufen Sie außerdem die VM-Zugriffs-ID ab. Sie müssen diesen eindeutigen Bezeichner als userssh 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 auf az networkcloud virtualmachine console show --help.

Einrichten von Verbinden ivität des privaten Netzwerks

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 Endpoint (PLE) und dem Azure Private Link Service (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, die Sie bei der Einrichtung einer privaten Netzwerkkonnektivität unterstützt.

Diagram of Private Link networking.

  1. Erstellen Sie das 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 der Erstellung der Konsolenressource abgerufen wurde.

     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.

  1. Rufen Sie die private IP-Adresse ab, die der PLE zugeordnet ist, die Sie beim Einrichten der ssh Sitzung benötigen.

     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 virtuellem Computer

An diesem Punkt haben Sie die virtual_machine_access_id und die sshmux_ple_ip. Diese Eingabe ist die informationen, die zum Einrichten einer Sitzung mit dem virtuellen Computer erforderlich sind.

Der VM-Konsolendienst ist ein ssh Server, der die Sitzung an die angegebene VM weitergibt. Der sshmux_ple_ip indirekte Verweis auf den VM-Konsolendienst und den virtual_machine_access_id Bezeichner für den virtuellen Computer.

Wichtig

Der VM-Konsolendienst überwacht den Port2222, daher müssen Sie diese Portnummer im ssh Befehl angeben.

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

Diagram of VM Console SSH Session.

Der VM-Konsolendienst wurde so konzipiert, dass nur eine Sitzung pro virtueller Computer zulässig ist. Jeder, der eine weitere erfolgreiche Sitzung auf 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 der Konsolenressource

Sie können die Sitzung auf einen bestimmten virtuellen Computer deaktivieren, indem Sie das Ablaufdatum/die Uhrzeit und/oder 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 Falseaktualisieren. Dieses Update schließt alle vorhandenen Sitzungen und schränkt alle nachfolgenden Sitzungen ein.

Hinweis

Bevor Sie eine Sitzung auf einem virtuellen Computer erstellen, muss die entsprechende Konsolenressource auf <a0/> festgelegt sein.

Wenn eine Konsolenzeit --expiration 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, auf die von der Konsolenressource verwiesen wird. Sie müssen einen übereinstimmenden privaten SSH-Schlüssel bereitstellen, der dem neuen öffentlichen Schlüssel entspricht, wenn Sie eine neue Sitzung einrichten.

Aufräumen (optional)

Zum sauber Ihrer VM-Konsolenumgebung müssen Sie die Konsolenressource und den Privaten Link-Endpunkt löschen.

  1. Löschen der Konsolenressource

     az networkcloud virtualmachine console delete \
         --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
         --resource-group "${VM_RESOURCE_GROUP}"
    
  2. Löschen des Endpunkts für private Verknüpfungen

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