Azure PowerShell を使用して Azure Stack Edge デバイスに VM をデプロイする

適用対象:はい (Pro GPU SKU の場合)Azure Stack Edge Pro - GPUはい (Pro 2 SKU の場合)Azure Stack Edge Pro 2はい (Pro R SKU の場合)Azure Stack Edge Pro Rはい (Mini R SKU の場合)Azure Stack Edge Mini R

この記事では、Azure PowerShell を使用して、Azure Stack Edge デバイスに仮想マシン (VM) を作成し、管理する方法について説明します。

VM デプロイのワークフロー

VM のデプロイのワークフローの概要は次のとおりです。

  1. デバイスのローカル Azure Resource Manager に接続します。
  2. デバイス上の組み込みサブスクリプションを特定します。
  3. VM イメージを用意します。
  4. 組み込みサブスクリプションにリソース グループを作成します。 リソース グループには、VM とすべての関連リソースが含まれます。
  5. VM イメージの作成に使用する VHD を保存するためのローカル ストレージ アカウントをデバイス上に作成してください。
  6. Windows/Linux ソース イメージをストレージ アカウントにアップロードして、マネージド ディスクを作成します。
  7. マネージド ディスクを使用して VM イメージを作成します。
  8. デバイス ポートでコンピューティングを有効にして、仮想スイッチを作成します。
  9. これにより、コンピューティングを有効にしたポートに接続された仮想スイッチを使用して仮想ネットワークが作成されます。
  10. VM を作成します。これには、以前に作成した VM イメージ、仮想ネットワーク、および、仮想ネットワーク内で通信するための仮想ネットワーク インターフェイスを使用します。次に、リモートから VM にアクセスするためのパブリック IP アドレスを割り当てます。 必要に応じて、VM により多くのストレージを提供するためにデータ ディスクを含ます。

前提条件

Azure Stack Edge デバイスに VM を展開する前に、Azure PowerShell 経由で Azure Resource Manager を介してデバイスに接続するようにクライアントを構成する必要があります。 詳細な手順については、「Azure Stack Edge デバイスで Azure Resource Manager に接続する」を参照してください。

次の手順を使用して、クライアントからデバイスにアクセスできることを確認します。 Azure Resource Manager に接続したときに既にこの構成は完了しているため、次はその構成が正常に完了したことを確認します。

  1. 次のコマンドを実行して、Azure Resource Manager の通信が機能していることを確認します。

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. ローカル デバイス API を呼び出して認証を行うには、次のように入力します。

    login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
    

    Azure Resource Manager を介して接続するには、ユーザー名 EdgeArmUser とパスワードを入力します。

  3. Kubernetes でコンピューティングを構成した場合は、この手順を省略できます。 それ以外の場合は、次の手順に従って、コンピューティング用にネットワーク インターフェイスを有効にしていることを確認します。

    a. ローカル ユーザー インターフェイスで、[Compute]\(コンピューティング\) 設定に移動します。
    b. 仮想スイッチの作成に使用するネットワーク インターフェイスを選択します。 作成する VM は、このポートおよび関連付けられているネットワークに接続されている仮想スイッチに接続されます。 VM に使用する IP アドレスと一致するネットワークを選択してください。

    [Compute]\(コンピューティング\) の [Network setting]\(ネットワーク設定\) ペインのスクリーンショット。

    c. ネットワーク インターフェイスの [Enable for compute]\(コンピューティングに対して有効にする\) で、[はい] を選択します。 そのネットワーク インターフェイスに対応する仮想スイッチが Azure Stack Edge によって作成および管理されます。 現時点では、Kubernetes に特定の IP を入力しないでください。 数分でコンピューティングが有効になります。

    Note

    GPU VM を作成する場合は、インターネットに接続されているネットワーク インターフェイスを選択します。 これにより、デバイスに GPU 拡張機能をインストールできます。

デバイスで組み込みサブスクリプションに対するクエリを実行する

Azure Resource Manager では、ユーザーが表示できる固定サブスクリプションが 1 つだけサポートされています。 このサブスクリプションはデバイスごとに一意であり、サブスクリプション名もサブスクリプション ID も変更できません。

サブスクリプションには、VM の作成に必要なすべてのリソースが含まれています。

重要

サブスクリプションは、Azure portal から VM を有効にしたときに作成され、デバイス上のローカルに存在します。

サブスクリプションは、VM のデプロイに使用されます。

  1. サブスクリプションを一覧表示するには、次のコマンドを実行します。

    Get-AzSubscription
    

    出力例を次に示します。

    PS C:\WINDOWS\system32> Get-AzSubscription
    
    Name                          Id                                   TenantId
    ----                          --                                   --------
    Default Provider Subscription ...                                  ...
    
    
    PS C:\WINDOWS\system32>
    
  2. デバイスで実行されている登録済みのリソース プロバイダーの一覧を取得します。 この一覧には、通常、コンピューティング、ネットワーク、およびストレージが含まれます。

    Get-AzResourceProvider
    

    Note

    リソース プロバイダーは事前登録されており、修正または変更することはできません。

    出力例を次に示します。

    PS C:\WINDOWS\system32>  Get-AzResourceProvider
    
    ProviderNamespace : Microsoft.AzureBridge
    RegistrationState : Registered
    ResourceTypes     : {locations, operations, locations/ingestionJobs}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Compute
    RegistrationState : Registered
    ResourceTypes     : {virtualMachines, virtualMachines/extensions, locations, operations...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Network
    RegistrationState : Registered
    ResourceTypes     : {operations, locations, locations/operations, locations/usages...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Resources
    RegistrationState : Registered
    ResourceTypes     : {tenants, locations, providers, checkresourcename...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Storage
    RegistrationState : Registered
    ResourceTypes     : {storageaccounts, storageAccounts/blobServices, storageAccounts/tableServices,
                        storageAccounts/queueServices...}
    Locations         : {DBELocal}
    
    PS C:\WINDOWS\system32>
    

リソース グループを作成する

まず、新しい Azure リソース グループを作成し、ストレージ アカウント、ディスク、ネットワーク インターフェイス、マネージド ディスクなど、すべての VM 関連リソースの論理コンテナーとしてこれを使用します。

重要

すべてのリソースは、デバイスと同じ場所に作成され、その場所は DBELocal に設定されます。

  1. パラメーターを設定する。

    $ResourceGroupName = "<Resource group name>" 
    
  2. VM 用に作成するリソースのためのリソース グループを作成してください。

    New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
    

    出力例を次に示します。

    PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaseazrg -Location DBELocal
    
    ResourceGroupName : myaseazrg
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/.../resourceGroups/myaseazrg
    
    PS C:\WINDOWS\system32>
    

ローカル ストレージ アカウントを作成する

既存のリソース グループを使用して、新しいローカル ストレージ アカウントを作成します。 このローカル ストレージ アカウントを使用して、VM の作成時に仮想ディスク イメージをアップロードします。

ローカル ストレージ アカウントを作成する前に、Azure PowerShell によって Azure Resource Manager を介してデバイスに接続するようにクライアントを構成する必要があります。 詳細な手順については、「Azure Stack Edge デバイスで Azure Resource Manager に接続する」を参照してください。

  1. パラメーターを設定する。

    $StorageAccountName = "<Storage account name>"    
    
  2. デバイス上に新しいローカル ストレージ アカウントを作成します。

    New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
    

    Note

    Azure Resource Manager を使用して、ローカル冗長ストレージ (Standard または Premium) などのローカル ストレージ アカウントのみを作成できます。 階層化ストレージ アカウントを作成するには、GPU が搭載された Azure Stack Edge Pro でストレージ アカウントを使用してデータを転送する方法に関するチュートリアルを参照してください。

    出力例を次に示します。

    PS C:\WINDOWS\system32> New-AzStorageAccount -Name myaseazsa -ResourceGroupName myaseazrg -Location DBELocal -SkuName Standard_LRS
    
    StorageAccountName ResourceGroupName PrimaryLocation SkuName      Kind    AccessTier CreationTime
    ------------------ ----------------- --------------- -------      ----    ---------- ------------
    myaseazsa          myaseazrg         DBELocal        Standard_LRS Storage            6/10/2021 11:45...
    
    PS C:\WINDOWS\system32>
    

作成した既存のローカル ストレージ アカウントのアクセス キーを取得するには、関連するリソース グループ名と、ローカル ストレージ アカウント名を指定します。

Get-AzStorageAccountKey

の出力例を次に示します。

PS C:\WINDOWS\system32> Get-AzStorageAccountKey
    
cmdlet Get-AzStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myaseazrg
Name: myaseazsa
    
KeyName    Value                                                                                       Permissions
-------    -----                                                                                       ------
key1       gv3OF57tuPDyzBNc1M7fhil2UAiiwnhTT6zgiwE3TlF/CD217Cvw2YCPcrKF47joNKRvzp44leUe5HtVkGx8RQ==    Full
key2       kmEynIs3xnpmSxWbU41h5a7DZD7v4gGV3yXa2NbPbmhrPt10+QmE5PkOxxypeSqbqzd9si+ArNvbsqIRuLH2Lw==    Full
    
PS C:\WINDOWS\system32>

BLOB URI をホスト ファイルに追加する

Azure Stack Edge デバイスでの Azure Resource Manager への接続に関するページの「手順 5: エンドポイント名の解決のためにホスト ファイルを変更する」で、Azure Blob Storage への接続に使用している BLOB URI は、クライアントの hosts ファイルに既に追加しました。 このエントリは、BLOB URI を追加するために使用されました。

<Device IP address> <storage name>.blob.<appliance name>.<dnsdomain>

証明書をインストールする

HTTPS をお使いの場合は、デバイスに適切な証明書をインストールする必要があります。 ここでは、BLOB エンドポイント証明書をインストールします。 詳細については、GPU デバイスが搭載された Azure Stack Edge Pro での証明書の使用に関するページを参照してください。

VHD のアップロード

これまでに作成したローカル ストレージ アカウントのページ BLOB に、使用するディスク イメージをコピーします。 AzCopy などのツールを使用して、ストレージ アカウントに仮想ハード ディスク (VHD) をアップロードできます。

AzCopy 10 で次のコマンドを使用します。

  1. AzCopy 用の API の適切なバージョンなど、いくつかのパラメーターを設定します。 この例では、AzCopy 10 を使用しました。

    $Env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2019-07-07"    
    $ContainerName = <Container name>
    $ResourceGroupName = <Resource group name>
    $StorageAccountName = <Storage account name>
    $VHDPath = "Full VHD Path"
    $VHDFile = <VHD file name>
    
  2. ソース (この場合はローカル システム) から、前のステップでデバイスに作成したストレージ アカウントに、VHD をコピーします。

    $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    $blobendpoint = (Get-AzEnvironment -Name Environment Name).StorageEndpointSuffix
    $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $blobendpoint
    <Create the container if it does not exist>
    $containerName = "con1"
    $container = New-AzStorageContainer -Name $containerName -Context $StorageAccountContext -Permission Container
    $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    <Path to azcopy.exe> cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"    
    

    の出力例を次に示します。

    PS C:\windows\system32> $ContainerName = "testcontainer1"
    PS C:\windows\system32> $ResourceGroupName = "myaseazrg"
    PS C:\windows\system32> $StorageAccountName = "myaseazsa"
    PS C:\windows\system32> $VHDPath = "C:\Users\alkohli\Downloads\Ubuntu1604"           
    PS C:\windows\system32> $VHDFile = "ubuntu13.vhd"
    
    PS C:\windows\system32> $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    PS C:\windows\system32> $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    PS C:\windows\system32> $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $endpoint
    PS C:\windows\system32> $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    
    PS C:\windows\system32> C:\azcopy\azcopy_windows_amd64_10.10.0\azcopy.exe cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"
    INFO: Scanning...
    INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
    
    Job 72a5e3dd-9210-3e43-6691-6bebd4875760 has started
    Log file is located at: C:\Users\alkohli\.azcopy\72a5e3dd-9210-3e43-6691-6bebd4875760.log
    
    INFO: azcopy.exe: A newer version 10.11.0 is available to download
    

VHD からマネージド ディスクを作成する

アップロードした VHD からマネージド ディスクを作成します。

  1. パラメーターを設定する。

    $DiskName = "<Managed disk name>"
    $HyperVGeneration = "<Generation of the image: V1 or V2>"
    
  2. アップロードした VHD からマネージド ディスクを作成します。 VHD のソース URL を取得するには、Storage Explorer で VHD が格納されているストレージ アカウント内のコンテナーに移動します。 VHD を選択し、右クリックして [プロパティ] を選択します。 [BLOB のプロパティ] ダイアログで、[URI] を選択します。

    $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id    
    $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD"
    New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    

    出力例を次に示します。

    PS C:\WINDOWS\system32> $DiskName = "myazmd"
    PS C:\WINDOWS\system32  $HyperVGeneration = "V1"
    PS C:\WINDOWS\system32> $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id
    PS C:\WINDOWS\system32> $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "https://myaseazsa.blob.myasegpu.wdshcsso.com/testcontainer1/ubuntu13.vhd"
    PS C:\WINDOWS\system32> New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    
    ResourceGroupName            : myaseazrg
    ManagedBy                    :
    Sku                          : Microsoft.Azure.Management.Compute.Models.DiskSku
    Zones                        :
    TimeCreated                  : 6/24/2021 12:19:56 PM
    OsType                       :
    HyperVGeneration             : V1
    CreationData                 : Microsoft.Azure.Management.Compute.Models.CreationDat
                                   a
    DiskSizeGB                   : 30
    DiskSizeBytes                : 32212254720
    UniqueId                     : 53743801-cbf2-4d2f-acb4-971d037a9395
    EncryptionSettingsCollection :
    ProvisioningState            : Succeeded
    DiskIOPSReadWrite            : 500
    DiskMBpsReadWrite            : 60
    DiskState                    : Unattached
    Encryption                   : Microsoft.Azure.Management.Compute.Models.Encryption
    Id                           : /subscriptions/.../r
                                   esourceGroups/myaseazrg/providers/Microsoft.Compute/d
                                   isks/myazmd
    Name                         : myazmd
    Type                         : Microsoft.Compute/disks
    Location                     : DBELocal
    Tags                         : {}
    
    PS C:\WINDOWS\system32>
    

マネージド ディスクから VM イメージを作成する

次に、マネージド ディスクから VM イメージを作成します。

  1. パラメーターを設定する。

    $DiskSize = "<Size greater than or equal to size of source managed disk>"
    $OsType = "<linux or windows>" 
    $ImageName = "<Image name>"
    
  2. VM イメージを作成します。 サポートされている OS の種類は、Linux と Windows です。

    $imageConfig = New-AzImageConfig -Location DBELocal -HyperVGeneration $hyperVGeneration 
    $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId 
    New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName  
    

    出力例を次に示します。

    PS C:\WINDOWS\system32> $OsType = "linux"
    PS C:\WINDOWS\system32> $ImageName = "myaseazlinuxvmimage"
    PS C:\WINDOWS\system32> $DiskSize = 35
    PS C:\WINDOWS\system32> $imageConfig = New-AzImageConfig -Location DBELocal
    PS C:\WINDOWS\system32> $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId
    
    ResourceGroupName    :
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    :
    HyperVGeneration     : V1
    Id                   :
    Name                 :
    Type                 :
    Location             : DBELocal
    Tags                 :
    
    PS C:\WINDOWS\system32> New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName
    
    ResourceGroupName    : myaseazrg
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    : Succeeded
    HyperVGeneration     : V1
    Id                   : /subscriptions/.../resourceG
                           roups/myaseazrg/providers/Microsoft.Compute/images/myaseazlin
                           uxvmimage
    Name                 : myaseazlinuxvmimage
    Type                 : Microsoft.Compute/images
    Location             : dbelocal
    Tags                 : {}
    
    PS C:\WINDOWS\system32> 
    

事前に作成したリソースを使用して VM を作成する

VM を作成してデプロイする前に、1 つの仮想ネットワークを作成し、仮想ネットワーク インターフェイスを関連付ける必要があります。

重要

次の規則が適用されます。

  • 仮想ネットワークは、リソース グループ全体でも 1 つしか作成できません。 仮想ネットワークのアドレス空間は、論理ネットワークとまったく同じである必要があります。
  • 仮想ネットワークが所有できるサブネットは 1 つに限られています。 サブネットのアドレス空間は、仮想ネットワークとまったく同じである必要があります。
  • 仮想ネットワーク インターフェイス カードを作成するときは、静的な割り当て方法のみを使用できます。 ユーザーは、プライベート IP アドレスを指定する必要があります。

自動的に作成された仮想ネットワークのクエリを実行する

デバイスのローカル UI からコンピューティングを有効にすると、ASEVNET という仮想ネットワークが ASERG リソース グループの下に自動的に作成されます。

次のコマンドを使用して、既存の仮想ネットワークのクエリを実行します。

$ArmVn = Get-AzVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG 

仮想ネットワーク インターフェイス カードの作成

仮想ネットワークのサブネット ID を使用して、仮想ネットワーク インターフェイス カードを作成します。

  1. パラメーターを設定する。

    $IpConfigName = "<IP config name>"
    $NicName = "<Network interface name>"
    
  2. 仮想ネットワーク インターフェイスを作成します。

    $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig    
    

    既定では、IP は、コンピューティング対応のネットワークからネットワーク インターフェイスに動的に割り当てられます。 ネットワーク インターフェイスに静的 IP を割り当てる場合は、-PrivateIpAddress parameter を使用してください。

    の出力例を次に示します。

    PS C:\WINDOWS\system32> $IpConfigName = "myazipconfig1"
    PS C:\WINDOWS\system32> $NicName = "myaznic1"
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id
    PS C:\WINDOWS\system32> $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

必要に応じて、VM の仮想ネットワーク インターフェイス カードを作成するときに、パブリック IP を渡すことができます。 このインスタンスでは、パブリック IP によってプライベート IP が返されます。

New-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <ResourceGroupName> -AllocationMethod Static -Location DBELocal
$publicIP = (Get-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <Resource group name>).Id
$ipConfig = New-AzNetworkInterfaceIpConfig -Name <ConfigName> -PublicIpAddressId $publicIP -SubnetId $subNetId

VM を作成する

これで、VM イメージを使用して VM を作成し、先ほど作成した仮想ネットワークに接続できるようになりました。

  1. 作成する VM にサインインするためのユーザー名とパスワードを設定します。

    $pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force;
    $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
    

    VM を作成して電源を入れた後、前のユーザー名とパスワードを使用してサインインします。

  2. パラメーターを設定します。

    $VmName = "<VM name>"
    $ComputerName = "<VM display name>"
    $OsDiskName = "<OS disk name>"
    
  3. VM を作成します。

    $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    
    $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    
    $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    
    $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    
    $VirtualMachine =  Add-AzVMNetworkInterface -Vm $VirtualMachine -Id $nicID
    
    $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    
    $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    
    New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    

    出力例を次に示します。

    PS C:\WINDOWS\system32> $pass = ConvertTo-SecureString "Password1" -AsPlainText -Force;
    PS C:\WINDOWS\system32> $cred = New-Object System.Management.Automation.PSCredential("myazuser", $pass)
    PS C:\WINDOWS\system32> $VmName = "myazvm"
    >> $ComputerName = "myazvmfriendlyname"
    >> $OsDiskName = "myazosdisk1"
    PS C:\WINDOWS\system32> $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    PS C:\WINDOWS\system32> $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> $nicID/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.Network/networkInterfaces/myaznic1
    PS C:\WINDOWS\system32> $VirtualMachine =  Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nicID
    PS C:\WINDOWS\system32> $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    PS C:\WINDOWS\system32> New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    WARNING: Since the VM is created using premium storage or managed disk, existing
    standard storage account, myaseazsa, is used for boot diagnostics.
    VERBOSE: Performing the operation "New" on target "myazvm".
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  4. 作成した VM に割り当てられている IP を確認するには、作成した仮想ネットワーク インターフェイスのクエリを実行します。 PrivateIPAddress を見つけて、VM の IP をコピーします。 出力例を次に示します。

    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

VM に接続します

Windows VM と Linux VM のどちらを作成したかによって、接続手順が異なる場合があります。

Linux VM に接続する

Linux VM に接続する場合は、次の手順に従います。

VM の作成時に渡したプライベート IP を使用して、VM に接続します。

  1. SSH セッションを開き、IP アドレスを使用して接続します。

    ssh -l <username> <ip address>
    
  2. プロンプトで、VM の作成時に使用したパスワードを入力します。

    SSH キーを指定する必要がある場合は、次のコマンドを使用します。

    ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236

    VM に接続するときの出力例を次に示します。

    PS C:\WINDOWS\system32> ssh -l myazuser "10.126.76.60"
    The authenticity of host '10.126.76.60 (10.126.76.60)' can't be established.
    ECDSA key fingerprint is SHA256:V649Zbo58zAYMKreeP7M6w7Na0Yf9QPg4SM7JZVV0E4.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '10.126.76.60' (ECDSA) to the list of known hosts.
    myazuser@10.126.76.60's password:
    Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.18.0-1013-azure x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
     System information disabled due to load higher than 1.0
    
      Get cloud support with Ubuntu Advantage Cloud Guest:
        http://www.ubuntu.com/business/services/cloud
    
    284 packages can be updated.
    192 updates are security updates. 
    
    The programs included with the Ubuntu system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
    applicable law.
    
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    myazuser@myazvmfriendlyname:~$ client_loop: send disconnect: Connection reset
    PS C:\WINDOWS\system32>
    

VM の作成時にパブリック IP アドレスを使用した場合は、その IP を使用して VM に接続できます。 パブリック IP を取得するには、次のコマンドを実行します。

$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName

この場合、パブリック IP は仮想ネットワーク インターフェイスの作成時に渡したプライベート IP と同じになります。

Windows VM に接続する

Windows VM に接続する場合は、次の手順に従います。

VM の作成時に渡した IP 経由でリモート デスクトップ プロトコル (RDP) を使用して、Windows VM に接続します。

  1. お使いのクライアントで、RDP を開きます。

  2. [スタート] に移動し、「mstsc」と入力します。

  3. [リモート デスクトップ接続] ウィンドウで、VM テンプレート パラメーター ファイルで使用した VM の IP アドレスとアクセス資格情報を入力します。 次に、 [接続](Connect) を選択します。

    RDP 経由で Windows VM に接続するための [リモート デスクトップ接続] ウィンドウのスクリーンショット。

    Note

    信頼されていないコンピューターへの接続の承認が必要となる場合があります。

これで、アプライアンスで実行されている VM にサインインしました。

VM の管理

次のセクションでは、Azure Stack Edge Pro デバイス上に作成できる一般的ないくつかの操作について説明します。

デバイスで実行されている VM を一覧表示する

Azure Stack Edge デバイスで実行されているすべての VM の一覧を取得するには、次のコマンドを実行します。

Get-AzVM -ResourceGroupName <String> -Name <String>

このコマンドレットの詳細については、「Get-AzVM」を参照してください。

VM をオンにする

デバイスで実行されている仮想マシンをオンにするには、次のコマンドレットを実行します。

Start-AzVM [-Name] <String> [-ResourceGroupName] <String>

このコマンドレットの詳細については、「Start-AzVM」を参照してください。

VM を中断またはシャットダウンする

デバイスで実行されている仮想マシンを停止またはシャットダウンするには、次のコマンドレットを実行します。

Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>

このコマンドレットの詳細については、Stop-AzVM コマンドレットに関するページを参照してください。

VM のサイズを変更する

既存の仮想マシンのサイズを変更するには、次のコマンドレットを実行します。

重要

サイズを変更する前に、-StayProvisioned フラグなしで VM を停止します。

$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>

$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"

$vm | Update-AzVM

データ ディスクの追加

VM のワークロード要件が増加した場合は、データ ディスクの追加が必要になることがあります。 これを行うには、次のコマンドを実行します。

Add-AzRmVMDataDisk -VM $VirtualMachine -Name "disk1" -VhdUri "https://contoso.blob.core.windows.net/vhds/diskstandard03.vhd" -LUN 0 -Caching ReadOnly -DiskSizeinGB 1 -CreateOption Empty 
 
Update-AzVM -ResourceGroupName "<Resource Group Name string>" -VM $VirtualMachine

VM の削除

デバイスから仮想マシンを削除するには、次のコマンドレットを実行します。

Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>

このコマンドレットの詳細については、Remove-AzVm コマンドレットに関するページを参照してください。

次のステップ

Azure Resource Manager コマンドレット