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

完了

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

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

この演習は省略してもかまいません。 この演習を完了する場合は、開始する前に Azure サブスクリプションを作成する必要があります。 Azure アカウントを持っていない場合、または現時点で作成したくない場合は、指示を読んで、提示されている情報を理解することができます。

この演習の手順を完了するには、リソース グループを使用する必要があります。 既に作成したリソース グループを使用することも、この演習専用の新しいリソース グループを作成することもできます。 新しいリソース グループを作成する場合は、演習を完了するときに作成したリソースを簡単にクリーンアップできます。 既存のリソース グループがない場合、またはこの演習専用の新しいリソース グループを作成する場合は、「 Azure portal と Azure Resource Manager を使用してリソース グループを管理し、Azure portal を使用してリソース グループを作成する」の手順に従うか、「Azure CLI を使用して Azure リソース グループを管理して Azure CLI を使用して リソース グループを作成する」の手順に従うことができます。

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

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

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

    • VM のリソース グループを指定します。
    • 組織の命名標準に従って VM に名前を付けます。
    • 使用可能な Azure リージョンの一覧から、近くの場所を選択します。
    • Ubuntu Linux イメージ Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest を使用します。
    • Get-Credential コマンドレットを使用して、VM 管理者の資格情報を設定します。
    • SSH アクセス用のポート 22 パラメーターを追加します。
    • SSH サインイン用のパブリック IP アドレス名を作成します。
    $azVmParams = @{
        ResourceGroupName   = 'myResourceGroupName'
        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
    

    前の例の myResourceGroupName を 、既存のリソース グループの名前、またはこの演習用に作成したリソース グループの名前に置き換えます。

    ヒント

    [コピー] ボタンを使用して、コマンドをクリップボードにコピーできます。 貼り付けるには、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 myResourceGroupName
    
  5. VM に関する情報を表示します。

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

    $vm
    

    出力例:

    ResourceGroupName : myResourceGroupName
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/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 のプロパティを検査します。

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

    $vm.HardwareProfile
    

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

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

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

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

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

    $ip = Get-AzPublicIpAddress -ResourceGroupName myResourceGroupName -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       myResourceGroupName
    testvm-eus-01           Microsoft.Network/virtualNetworks       myResourceGroupName
    testvm-eus-01           Microsoft.Network/publicIPAddresses     myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkSecurityGroups myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkInterfaces     myResourceGroupName
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 myResourceGroupName
    

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

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

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

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

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

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

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

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

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

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

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

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

    「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 スクリプトを使用してこれらのタスクを自動化する方法を見てみましょう。