Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa konsoli maszyny wirtualnej (VM) zapewnia zarządzany dostęp do maszyny wirtualnej (VM) hostowanej w wystąpieniu Operator Nexus. Używa usługi Azure Private Link (PLS) do zapewnienia łączności sieciowej w sieci prywatnej platformy Azure. Usługa konsoli maszyny wirtualnej to bezpieczny i prywatny sposób uzyskiwania dostępu do maszyny wirtualnej bez uwidaczniania jej w publicznym Internecie.
Aby uzyskać więcej informacji na temat zasobów sieciowych, które umożliwiają prywatną łączność z Operator Nexus Instance, zobacz Wprowadzenie do usługi Azure Private Link.
Ten dokument zawiera szczegółowe instrukcje dotyczące korzystania z usługi konsoli maszyny wirtualnej w celu nawiązania sesji z maszyną wirtualną w instancji Operatora Nexus.
Ten przewodnik ułatwia:
- Ustanów bezpieczną łączność sieci prywatnej między swoją siecią a siecią prywatną Menedżera klastra.
- Utwórz zasób "Console" w grupie zasobów obciążenia/dzierżawy, używając polecenia w interfejsie wiersza polecenia
az networkcloud virtualmachine console. - Uruchom sesję SSH, aby nawiązać połączenie z konsolą maszyny wirtualnej.
Uwaga / Notatka
Aby uniknąć przekazywania parametru do każdego polecenia Azure CLI, wykonaj następujące polecenie:
az account set --subscription "your-subscription-ID"
Zanim rozpoczniesz
- Zainstaluj najnowszą wersję odpowiednich rozszerzeń CLI.
Ustawianie zmiennych
Aby ułatwić skonfigurowanie środowiska dostępu do maszyn wirtualnych, zdefiniuj te zmienne środowiskowe używane przez różne polecenia w tym przewodniku.
Uwaga / Notatka
Te wartości zmiennych środowiskowych nie odzwierciedlają rzeczywistego wdrożenia, a użytkownicy MUSZĄ je zmienić tak, aby były zgodne ze swoimi środowiskami.
Należy zauważyć, że pierwszy zestaw zmiennych w poniższej sekcji dotyczy Menedżera klastra , a nie klastra.
Wartość CM_EXTENDED_LOCATION można znaleźć za pomocą polecenia az networkcloud virtualmachine show --name <virtual machine name> --resource-group <virtual machine's resource group> --query "consoleExtendedLocation" | jq -r '.consoleExtendedLocation.name'.
# CLUSTER_MANAGER_RESOURCE_GROUP: Cluster Manager resource group name
export CLUSTER_MANAGER_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"
# VIRTUAL_MACHINE_RG: Resource group name where the Virtual Machine is located
export VIRTUAL_MACHINE_RG="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=$(az networkcloud virtualmachine show --name ${VIRTUAL_MACHINE_NAME} --resource-group ${VIRTUAL_MACHINE_RG} --query "consoleExtendedLocation.name" -o tsv)
# 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="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD... user@hostname"
# 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"
Ważne
Podczas ustawiania zmiennej środowiskowej CONSOLE_PUBLIC_KEY upewnij się, że poprawnie podano wartość klucza publicznego SSH, ponieważ zawiera spacje. Przykład:
export CONSOLE_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... user@hostname"
Klucz publiczny SSH powinien być kompletnym ciągiem klucza, w tym typem klucza (ssh-rsa, ssh-ed25519 itp.), danymi klucza i opcjonalnie komentarzem.
Tworzenie zasobu konsoli
Zasób konsoli zawiera informacje o maszynie wirtualnej Nexus. Udostępnia ona nazwę maszyny wirtualnej, publiczny klucz SSH, datę wygaśnięcia sesji SSH itd.
Ta sekcja zawiera szczegółowy przewodnik ułatwiający tworzenie zasobu konsoli przy użyciu poleceń interfejsu wiersza polecenia platformy Azure.
Aby utworzyć zasób konsoli w Menedżerze klastra, należy zebrać niektóre informacje, na przykład grupę zasobów (CLUSTER_MANAGER_RESOURCE_GROUP) i lokalizację niestandardową (CM_EXTENDED_LOCATION). Musisz podać grupę zasobów, ale możesz pobrać lokalizację niestandardową, jeśli masz uprawnienia dostępu do wykonywania następujących poleceń:
export cluster_manager_resource_id=$(az resource list -g ${CLUSTER_MANAGER_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 '"')Pierwszą rzeczą, zanim będzie można ustanowić sesję SSH z maszyną wirtualną, jest utworzenie zasobu konsoli w Menedżerze klastra.
az networkcloud virtualmachine console create \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${CLUSTER_MANAGER_RESOURCE_GROUP}" \ --extended-location name="${CM_EXTENDED_LOCATION}" type="CustomLocation" \ --enabled True \ --ssh-public-key key-data="${CONSOLE_PUBLIC_KEY}" \ [--expiration "${CONSOLE_EXPIRATION_TIME}"]Jeśli pominięto
--expirationparametr, wygaśnięcie zostanie domyślnie ustawione na jeden dzień po utworzeniu zasobu konsoli. Należy równieżexpiration, że format daty i godziny musi być zgodny z RFC3339 (np. 2024-10-04T14:48:00Z) w przeciwnym razie tworzenie zasobu konsoli kończy się niepowodzeniem.Uwaga / Notatka
Aby uzyskać pełną składnię dla tego polecenia, wywołaj metodę
az networkcloud console create --help.Po pomyślnym utworzeniu zasobu konsoli pobierz identyfikator usługi Private Link , który jest wymagany do utworzenia punktu końcowego usługi Private Link (PLE)
export pls_resourceid=$(az networkcloud virtualmachine console show \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${CLUSTER_MANAGER_RESOURCE_GROUP}" \ --query "privateLinkServiceId" -o tsv)Ponadto pobierz identyfikator dostępu do maszyny wirtualnej. Należy użyć tego unikatowego identyfikatora jako
usersesjissh.virtual_machine_access_id=$(az networkcloud virtualmachine console show \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${CLUSTER_MANAGER_RESOURCE_GROUP}" \ --query "virtualMachineAccessId" -o tsv)
Uwaga / Notatka
Aby uzyskać pełną składnię dla tego polecenia, wywołaj metodę az networkcloud virtualmachine console show --help.
Ustanawianie łączności z siecią prywatną
Aby ustanowić bezpieczną sesję z maszyną wirtualną, należy ustanowić łączność sieci prywatnej między swoją siecią a siecią prywatną Menedżera Klastra.
Ta sieć prywatna opiera się na punkcie końcowym usługi Azure Private Link (PLE) i usłudze Azure Private Link (PLS).
Menedżer klastra automatycznie tworzy usługę PLS, aby można było ustanowić połączenie sieciowe prywatne między siecią a siecią prywatną Menedżera klastra.
Ta sekcja zawiera przewodnik krok po kroku, który pomoże Ci ustanowić łączność z siecią prywatną.
Utwórz PLE na potrzeby ustanawiania prywatnego i bezpiecznego połączenia między siecią a prywatną siecią Menedżera klastra. Potrzebny jest identyfikator zasobu PLS uzyskany w sekcji Tworzenie zasobu konsoli.
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
Uwaga / Notatka
Będzie potrzebny tylko jeden prywatny punkt końcowy dla menedżera klastra.
Pobierz prywatny adres IP przydzielony do PLE, który jest potrzebny podczas nawiązywania sesji
ssh.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}"
Ustanawianie sesji SSH z maszyną wirtualną
W tym momencie masz element virtual_machine_access_id i sshmux_ple_ip. Te dane wejściowe to informacje potrzebne do ustanowienia sesji z maszyną wirtualną.
Usługa konsoli maszyny wirtualnej to serwer ssh, który przekazuje sesję do maszyny wirtualnej Nexus. Pośrednio sshmux_ple_ip odwołuje się do usługi konsoli maszyny wirtualnej i virtual_machine_access_id identyfikatora maszyny wirtualnej.
Ważne
Usługa konsoli maszyny wirtualnej nasłuchuje portu 2222, dlatego należy określić ten numer portu w poleceniu ssh .
ssh [-i path-to-private-SSH-key] -p 2222 $virtual_machine_access_id@$sshmux_ple_ip
Usługa konsoli maszyny wirtualnej została zaprojektowana tak, aby zezwalać tylko na jedną sesję dla maszyny wirtualnej. Każda osoba, która ustanawia kolejną pomyślną sesję na maszynie wirtualnej, zamyka istniejącą sesję.
Ważne
Prywatny klucz SSH używany do uwierzytelniania sesji (wartość domyślna: $HOME/.ssh/id_rsa) MUSI być zgodny z publicznym kluczem SSH przekazanym jako parametr podczas tworzenia zasobu konsoli.
Aktualizowanie zasobu konsoli
Sesję można wyłączyć na maszynie wirtualnej, aktualizując datę/godzinę wygaśnięcia i publiczny klucz SSH używany podczas tworzenia sesji z maszyną wirtualną.
az networkcloud virtualmachine console update \
--virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \
--resource-group "${VM_RESOURCE_GROUP}" \
[--enabled True | False] \
[--ssh-public-key key-data="${CONSOLE_PUBLIC_KEY}"] \
[--expiration "${CONSOLE_EXPIRATION_TIME}"]
Jeśli chcesz wyłączyć dostęp do maszyny wirtualnej, musisz zaktualizować zasób konsoli przy użyciu parametru enabled False. Ta aktualizacja zamyka dowolną istniejącą sesję i ogranicza wszelkie późniejsze sesje.
Uwaga / Notatka
Przed utworzeniem sesji na maszynie wirtualnej odpowiedni zasób konsoli musi mieć ustawioną wartość na --enabled True.
Po wygaśnięciu czasu konsoli --expiration zostanie zamknięta dowolna sesja odpowiadająca zasobowi konsoli. Należy zaktualizować czas wygaśnięcia przy użyciu przyszłej wartości, aby można było ustanowić nową sesję.
Po zaktualizowaniu publicznego klucza SSH konsoli usługa konsoli maszyny wirtualnej zamyka wszystkie aktywne sesje. Aby utworzyć nową sesję, używasz nowego prywatnego klucza SSH.
Czyszczenie (opcjonalnie)
Aby wyczyścić konfigurację środowiska konsoli maszyny wirtualnej, należy usunąć zasób konsoli i punkt końcowy usługi Private Link.
Usuwanie zasobu konsoli
az networkcloud virtualmachine console delete \ --virtual-machine-name "${VIRTUAL_MACHINE_NAME}" \ --resource-group "${VM_RESOURCE_GROUP}"Usuwanie punktu końcowego usługi Private Link
az network private-endpoint delete \ --name "${PRIVATE_ENDPOINT_NAME}" \ --resource-group "${PRIVATE_ENDPOINT_RG}"