演習 - Azure PowerShell を使用して対話形式で Azure リソースを作成する

完了

元のシナリオでは、顧客関係管理 (CRM) ソフトウェアをテストするために仮想マシン (VM) を作成する必要があります。 新しいビルドを使用できるようになったら、新しい VM を起動して、クリーン イメージからインストール エクスペリエンス全体をテストする必要があります。 テストが完了したら、VM を削除できます。

VM を作成するコマンドを試してみましょう。

Azure PowerShell を使用して Linux VM を作成する

Azure サンドボックスを使用しているので、リソース グループを作成する必要はありません。 代わりに、既存のサンドボックス リソース グループ [サンドボックス リソース グループ名] を使用します。 場所の制限に注意してください。

Azure PowerShell を使用して新しい Azure VM を作成する方法を次に示します。

  1. New-AzVM コマンドレットを使用して VM を作成します。

    • [サンドボックス リソース グループ名] というサンドボックスのリソース グループを指定します。

    • 組織の命名標準に従って VM に名前を付けます。

    • 使用可能な Azure サンドボックスの場所の一覧から、近くの場所を選択します。

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Ubuntu Linux イメージ Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest を使用します。

    • Get-Credential コマンドレットを使用して、VM 管理者の資格情報を設定します。

    • SSH アクセス用のポート 22OpenPorts パラメーターを追加します。

    • SSH サインイン用のパブリック IP アドレス名を作成します。

    $azVmParams = @{
        ResourceGroupName   = '<rgn>[sandbox resource group name]</rgn>'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    ヒント

    [コピー] ボタンを使用して、コマンドをクリップボードにコピーできます。 貼り付けるには、Cloud Shell ターミナル内で新しい行を右クリックして [貼り付け] を選択するか、Shift + Insert キーボード ショートカット (macOS では ⌘ + V) を使用します。

  2. 資格情報を入力します。

    メッセージが表示されたら、次のガイドラインに従ってユーザー名とパスワードを入力します。パスワードの長さは 12 - 123 文字で、小文字、大文字、数字、特殊文字 (正規表現の一致 [\W_]) の 4 つの複雑さの要件のうち 3 つを満たしている必要があります。 詳細については、Linux VM に関する FAQ を参照してください。

  3. VM の作成を待ちます。

    VM の作成プロセスが完了するまでに数分かかります。

  4. VM に対してクエリを実行します。

    完了したら、VM にクエリを実行し、VM オブジェクトを変数 ($vm) に割り当てます。

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  5. VM に関する情報を表示します。

    VM に関する情報を表示するには、変数の内容を表示します。

    $vm
    

    出力例:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. VM のプロパティを検査します。

    メンバー アクセス演算子 (.) を使用して、複雑なオブジェクトを検査できます。 たとえば、HardwareProfile セクションに関連付けられた VMSize オブジェクトのプロパティを表示するには、次のコマンドを実行します。

    $vm.HardwareProfile
    

    または、ディスクのいずれかに関する情報を取得するには、次のコマンドを実行します。

    $vm.StorageProfile.OsDisk
    
  7. 使用可能な VM サイズを取得します。

    VM オブジェクトを他のコマンドレットに渡して、使用可能なサイズを取得します。

    $vm | Get-AzVMSize
    
  8. パブリック IP アドレスを取得します。

    VM に接続するためのパブリック IP アドレスを取得し、変数に格納します。

    $ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
    
  9. VM に接続します。

    変数の IP アドレスを使用して、SSH で VM に接続します。 たとえば、ユーザー名が bob の場合は、次のコマンドを使用します。

    ssh bob@$($ip.IpAddress)
    

    exit」と入力してサインアウトします。

VM を削除する

その他のコマンドを試すために、VM を削除しましょう。 次のステップを実行します。

  1. VM をシャットダウンします。

    次のコマンドを実行します。

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  2. VM を削除します。

    VM が停止したら、Remove-AzVM コマンドレットを実行して削除します。

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  3. リソース グループに含まれるすべてのリソースを一覧表示します。

    Get-AzResource コマンドレットを使用して、リソース グループ内のすべてのリソースを一覧表示します。 結果は Select-Object にパイプ処理され、特定のプロパティが返されます。

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    ディスク、仮想ネットワークなど、まだ存在するいくつかのリソースが表示されます。

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/virtualNetworks       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/publicIPAddresses     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkInterfaces     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 <rgn>[sandbox resource group name]</rgn>
    

    Remove-AzVM コマンドでは、VM のみが削除されます。 他のどのリソースもクリーンアップされません。 手動でクリーンアップするには、次の手順に従います。

  4. 仮想ネットワークを削除します。

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  5. パブリック IP アドレスを削除します。

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  6. ネットワーク セキュリティ グループを削除します。

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  7. ネットワーク インターフェイスを削除します。

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  8. マネージド OS ディスクを削除します。

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    Y」と入力し、続行を求められたら Enter キーを押します。

  9. すべてのリソースが削除されたことを確認します。

    リソース グループを調べて、すべてのリソースが削除されていることを確認します。

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

これらのコマンドを対話形式で実行した場合は、PowerShell スクリプトを記述することをお勧めします。 スクリプトを使用すると、将来 VM を作成または削除するためにロジックを再利用できます

次に、PowerShell スクリプトを使用してこれらのタスクを自動化する方法を見てみましょう。