Sdílet prostřednictvím


Úvod do konzolové služby virtuálního počítače

Konzolová služba virtuálního počítače poskytuje spravovaný přístup k virtuálnímu počítači hostovaným v instanci operátora Nexus. K poskytování síťového připojení v privátní síti Azure používá službu Azure Private Link Service (PLS). Konzolová služba virtuálního počítače je zabezpečený a privátní způsob přístupu k virtuálnímu počítači, aniž by ji zpřístupňuje veřejnému internetu.

Diagram konzolové služby virtuálního počítače

Další informace o síťových prostředcích, které umožňují privátní připojení k instanci Operátor Nexus, najdete v tématu Úvod do služby Azure Private Link.

Tento dokument obsahuje pokyny, jak pomocí konzolové služby virtuálního počítače vytvořit relaci s virtuálním počítačem v instanci operátora Nexus.

Tato příručka vám pomůže:

  1. Vytvořte zabezpečené připojení privátní sítě mezi vaší sítí a privátní sítí Správce clusteru.
  2. Pomocí příkazu rozhraní příkazového řádku vytvořte prostředek konzoly ve skupině prostředků úlohy nebo tenanta az networkcloud virtualmachine console .
  3. Spusťte relaci SSH pro připojení ke konzole virtuálního počítače.

Poznámka:

Pokud se chcete vyhnout předání parametru každému --subscription příkazu Azure CLI, spusťte následující příkaz:

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

Než začnete

  1. Nainstalujte nejnovější verzi příslušných rozšíření rozhraní příkazového řádku.

Nastavení proměnných

Pokud chcete pomoct nastavit prostředí pro přístup k virtuálním počítačům, definujte tyto proměnné prostředí používané různými příkazy v této příručce.

Poznámka:

Tyto hodnoty proměnných prostředí neodráží skutečné nasazení a uživatelé je musí změnit tak, aby odpovídaly jejich prostředím.

Je třeba poznamenat, že první sada proměnných v následující části je určena pro Správce clusteru, nikoli Cluster. Hodnotu CM_EXTENDED_LOCATION lze najít pomocí příkazu 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"

Vytvoření prostředku konzoly

Prostředek konzoly poskytuje informace o virtuálním počítači Nexus. Poskytuje název virtuálního počítače, veřejný klíč SSH, datum vypršení platnosti relace SSH atd.

Tato část obsahuje podrobný průvodce, který vám pomůže vytvořit prostředek konzoly pomocí příkazů Azure CLI.

Diagram prostředku konzoly virtuálního počítače

  1. Pokud chcete vytvořit prostředek konzoly ve Správci clusteru, budete muset shromáždit některé informace, například skupinu prostředků (CM_HOSTED_RESOURCES_RESOURCE_GROUP) a vlastní umístění (CM_EXTENDED_LOCATION). Skupinu prostředků musíte zadat, ale pokud máte přístupová práva ke spuštění následujících příkazů, můžete načíst vlastní umístění:

    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. První věc před vytvořením relace SSH s virtuálním počítačem je vytvoření prostředku konzoly ve Správci clusteru.

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

    Pokud parametr vynecháte --expiration , vypršení platnosti se ve výchozím nastavení nastaví na jeden den po vytvoření prostředku konzoly. Všimněte si také, že expiration formát data a času musí následovat po RFC3339 (např. 2024-10-04T14:48:00Z), jinak se vytvoření prostředku konzoly nezdaří.

    Poznámka:

    Chcete-li provést úplnou synopzi pro tento příkaz, vyvoláte az networkcloud console create --help.

  3. Po úspěšném vytvoření prostředku konzoly načtěte identifikátor služby Private Link, který je nutný k vytvoření koncového bodu služby Private Link (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. Načtěte také přístupové ID virtuálního počítače. Tento jedinečný identifikátor musíte použít jako user ssh relaci.

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

Poznámka:

Chcete-li provést úplnou synopzi pro tento příkaz, vyvoláte az networkcloud virtualmachine console show --help.

Vytvoření připojení k privátní síti

Pokud chcete vytvořit zabezpečenou relaci s virtuálním počítačem, musíte vytvořit privátní síťové připojení mezi vaší sítí a privátní sítí Správce clusteru.

Tato privátní síť spoléhá na koncový bod Azure Private Link (PLE) a službu Azure Private Link Service (PLS).

Správce clusteru automaticky vytvoří plS, abyste mohli vytvořit privátní síťové připojení mezi vaší sítí a privátní sítí Správce clusteru.

Tato část obsahuje podrobný průvodce, který vám pomůže vytvořit připojení k privátní síti.

Diagram sítí Private Link

  1. Vytvořte ple pro vytvoření privátního a zabezpečeného připojení mezi vaší sítí a privátní sítí Správce clusteru. Potřebujete ID prostředku PLS získané při vytváření prostředku konzoly.

     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
    

Poznámka:

Pro správce clusteru budete potřebovat jenom jeden privátní koncový bod.

  1. Načtěte privátní IP adresu přidělenou ple, kterou potřebujete při vytváření ssh relace.

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

Vytvoření relace SSH s virtuálním počítačem

V tuto chvíli máte a virtual_machine_access_id sshmux_ple_ip. Tento vstup je informace potřebné k vytvoření relace s virtuálním počítačem.

Konzolová služba virtuálního počítače je ssh server, který relaci předává virtuálnímu počítači Nexus. Nepřímo sshmux_ple_ip odkazuje na službu konzoly virtuálního počítače a virtual_machine_access_id identifikátor virtuálního počítače.

Důležité

Konzolová služba virtuálního počítače naslouchá portu2222, proto je nutné zadat toto číslo portu v ssh příkazu.

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

Diagram relace SSH konzoly virtuálního počítače

Služba konzoly virtuálního počítače byla navržena tak, aby umožňovala pouze jednu relaci na virtuální počítač. Každý, kdo navazuje další úspěšnou relaci k virtuálnímu počítači, zavře existující relaci.

Důležité

Privátní klíč SSH použitý k ověřování relace (výchozí: $HOME/.ssh/id_rsa) musí odpovídat veřejnému klíči SSH předaný jako parametr při vytváření prostředku konzoly.

Aktualizace prostředku konzoly

Relaci na virtuální počítač můžete zakázat aktualizací data a času vypršení platnosti a veřejného klíče SSH použitého při vytváření relace s virtuálním počítačem.

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

Pokud chcete zakázat přístup k virtuálnímu počítači, musíte aktualizovat prostředek konzoly pomocí parametru enabled False. Tato aktualizace zavře všechny existující relace a omezí jakékoli pozdější relace.

Poznámka:

Před vytvořením relace k virtuálnímu počítači musí být odpovídající prostředek konzoly nastaven na --enabled Truehodnotu .

Když vyprší platnost času konzoly --expiration , zavře každou relaci odpovídající prostředku konzoly. Čas vypršení platnosti budete muset aktualizovat budoucí hodnotou, abyste mohli vytvořit novou relaci.

Když aktualizujete veřejný klíč SSH konzoly, služba konzoly virtuálního počítače zavře všechny aktivní relace. Zobrazíte nový privátní klíč SSH pro vytvoření nové relace.

Vyčištění (volitelné)

Pokud chcete vyčistit nastavení prostředí konzoly virtuálního počítače, musíte odstranit prostředek konzoly a koncový bod služby Private Link.

  1. Odstranění prostředku konzoly

     az networkcloud virtualmachine console delete \
         --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
         --resource-group "${VM_RESOURCE_GROUP}"
    
  2. Odstranění koncového bodu služby Private Link

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