共用方式為


教學課程:使用 Azure CLI 連線到虛擬機擴展集實例

虛擬機擴展集可讓您部署和管理一組虛擬機。 在虛擬機規模集的生命週期過程中,您可能需要執行一項或多項管理任務。 在本教學課程中,您將瞭解如何:

  • 列出連接資訊
  • 使用 SSH 連線到個別實例

如果您沒有 Azure 訂用帳戶,請在開始之前建立 Azure 免費帳戶

先決條件

  • Azure Cloud Shell中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門

  • 如果您想要在本機執行 CLI 參考命令, Azure CLI 安裝。 如果您正在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱 如何在 Docker 容器中執行 Azure CLI

    • 如果您使用本機安裝,請使用 az login 命令來登入 Azure CLI。 若要完成驗證程式,請遵循終端機中顯示的步驟。 如需其他登入選項,請參閱 使用 Azure CLI 登入

    • 出現提示時,請先安裝 Azure CLI 擴充功能。 如需擴充功能的詳細資訊,請參閱 搭配 Azure CLI 使用擴充功能

    • 執行 az version,查看已安裝的版本和相依庫。 若要升級至最新版本,請執行 az upgrade

本文需要 Azure CLI 2.0.29 版或更新版本。 如果使用 Azure Cloud Shell,則已安裝最新版本。

列出規模設定中的實例

如果您尚未建立擴展集,請參閱 教學課程:使用 Azure CLI 建立和管理虛擬機擴展集

列出虛擬機器規模設定內的所有實例。

az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table
Location    Name                 ResourceGroup
----------  -------------------  ---------------
eastus      myScaleSet_0e7d4d21  myResourceGroup
eastus      myScaleSet_39379fc3  myResourceGroup

取得 NIC 資訊

使用 az vm nic list 和個別 VM 實例的名稱來尋找 NIC 名稱。

az vm nic list \
  --resource-group myResourceGroup
  --vm-name myScaleSet_0e7d4d21
[
  {
    "deleteOption": "Delete",
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a",
    "primary": true,
    "resourceGroup": "myResourceGroup"
  }
]

使用 VM 名稱和 NIC 名稱,取得 NIC 的私人 IP 位址、使用 az vm nic show的輸入 NAT 規則名稱和負載平衡器名稱。

az vm nic show --resource-group myResourceGroup --vm-name myScaleSet_0e7d4d21 --nic mysca2215Nic-828c525a
{
  "enableAcceleratedNetworking": false,
  "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a",
  "ipConfigurations": [
    {
      "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a/ipConfigurations/mysca2215IPConfig",
      "loadBalancerBackendAddressPools": [
        {
          "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSetLB/backendAddressPools/myScaleSetLBBEPool",
        }
      ],
      "name": "mysca2215IPConfig",
      "primary": true,
      "privateIpAddress": "10.0.0.5",
      "privateIpAddressVersion": "IPv4",
      "privateIpAllocationMethod": "Dynamic",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "subnet": {
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myScaleSetVNET/subnets/myScaleSetSubnet",
        "resourceGroup": "myResourceGroup",
      },
      "type": "Microsoft.Network/networkInterfaces/ipConfigurations",
    }
  ],
  "location": "eastus",
  "name": "mysca2215Nic-828c525a",
  "networkSecurityGroup": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myScaleSetNSG",
    "resourceGroup": "myResourceGroup",
  },
  "nicType": "Standard",
  "primary": true,
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "tapConfigurations": [],
  "type": "Microsoft.Network/networkInterfaces",
  "virtualMachine": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_0e7d4d21",
    "resourceGroup": "myResourceGroup"
  },
}

取得後端集區詳細數據

使用後端集區名稱和負載平衡器名稱,取得您想要與 az network lb list-mapping 連線之實例的私人 IP 位址埠。

az network lb list-mapping --backend-pool-name myScaleSetLBBEPool --resource-group myResourceGroup --name myScaleSetLB --request ip=10.0.0.5
{
  "inboundNatRulePortMappings": [
    {
      "backendPort": 22,
      "frontendPort": 50001,
      "inboundNatRuleName": "NatRule",
      "protocol": "Tcp"
    }
  ]
}

取得負載平衡器的公用IP

使用 az network public-ip list取得負載平衡器的公用 IP。

az network public-ip list --resource-group myResourceGroup
[
  {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myScaleSetLBPublicIP",
    "idleTimeoutInMinutes": 4,
    "ipAddress": "20.172.211.239",
    "ipConfiguration": {
      "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSetLB/frontendIPConfigurations/loadBalancerFrontEnd",
      "resourceGroup": "myResourceGroup"
    },
    "ipTags": [],
    "location": "eastus",
    "name": "myScaleSetLBPublicIP",
    "provisioningState": "Succeeded",
    "publicIPAddressVersion": "IPv4",
    "publicIPAllocationMethod": "Static",
    "resourceGroup": "myResourceGroup",
    "sku": {
      "name": "Standard",
      "tier": "Regional"
    },
    "tags": {},
    "type": "Microsoft.Network/publicIPAddresses"
  }
]

連接到您的實例

使用負載平衡器的IP和您要連線的機器的埠,透過SSH連接到該機器。

ssh azureuser@20.172.211.239 -p 50000

後續步驟

在本教學課程中,您已瞭解如何列出擴展集中的實例,並透過SSH連線到個別實例。

  • 列出和檢視擴展集中的實例
  • 收集規模集中各個實例的網路資訊
  • 連接到規模設定中的個別虛擬機實例