演習 - Azure PowerShell を使用して対話形式で Azure リソースを作成する
元のシナリオでは、顧客関係管理 (CRM) ソフトウェアをテストするために仮想マシン (VM) を作成する必要があります。 新しいビルドを使用できるようになったら、新しい VM を起動して、クリーン イメージからインストール エクスペリエンス全体をテストする必要があります。 テストが完了したら、VM を削除できます。
VM を作成するコマンドを試してみましょう。
Azure PowerShell を使用して Linux VM を作成する
Azure サンドボックスを使用しているので、リソース グループを作成する必要はありません。 代わりに、既存のサンドボックス リソース グループ
Azure PowerShell を使用して新しい Azure VM を作成する方法を次に示します。
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 アクセス用のポート
22
で OpenPorts パラメーターを追加します。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) を使用します。
資格情報を入力します。
メッセージが表示されたら、次のガイドラインに従ってユーザー名とパスワードを入力します。パスワードの長さは 12 - 123 文字で、小文字、大文字、数字、特殊文字 (正規表現の一致 [\W_]) の 4 つの複雑さの要件のうち 3 つを満たしている必要があります。 詳細については、Linux VM に関する FAQ を参照してください。
VM の作成を待ちます。
VM の作成プロセスが完了するまでに数分かかります。
VM に対してクエリを実行します。
完了したら、VM にクエリを実行し、VM オブジェクトを変数 (
$vm
) に割り当てます。$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
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} ...
VM のプロパティを検査します。
メンバー アクセス演算子 (
.
) を使用して、複雑なオブジェクトを検査できます。 たとえば、HardwareProfile セクションに関連付けられたVMSize
オブジェクトのプロパティを表示するには、次のコマンドを実行します。$vm.HardwareProfile
または、ディスクのいずれかに関する情報を取得するには、次のコマンドを実行します。
$vm.StorageProfile.OsDisk
使用可能な VM サイズを取得します。
VM オブジェクトを他のコマンドレットに渡して、使用可能なサイズを取得します。
$vm | Get-AzVMSize
パブリック IP アドレスを取得します。
VM に接続するためのパブリック IP アドレスを取得し、変数に格納します。
$ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
VM に接続します。
変数の IP アドレスを使用して、SSH で VM に接続します。 たとえば、ユーザー名が
bob
の場合は、次のコマンドを使用します。ssh bob@$($ip.IpAddress)
「exit」と入力してサインアウトします。
VM を削除する
その他のコマンドを試すために、VM を削除しましょう。 次のステップを実行します。
VM をシャットダウンします。
次のコマンドを実行します。
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
「Y」と入力し、続行を求められたら Enter キーを押します。
VM を削除します。
VM が停止したら、
Remove-AzVM
コマンドレットを実行して削除します。Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
「Y」と入力し、続行を求められたら Enter キーを押します。
リソース グループに含まれるすべてのリソースを一覧表示します。
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 のみが削除されます。 他のどのリソースもクリーンアップされません。 手動でクリーンアップするには、次の手順に従います。ネットワーク インターフェイスを削除します。
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterface
「Y」と入力し、続行を求められたら Enter キーを押します。
ネットワーク セキュリティ グループを削除します。
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup
「Y」と入力し、続行を求められたら Enter キーを押します。
パブリック IP アドレスを削除します。
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress
「Y」と入力し、続行を求められたら Enter キーを押します。
仮想ネットワークを削除します。
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork
「Y」と入力し、続行を求められたら Enter キーを押します。
マネージド OS ディスクを削除します。
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk
「Y」と入力し、続行を求められたら Enter キーを押します。
すべてのリソースが削除されたことを確認します。
リソース グループを調べて、すべてのリソースが削除されていることを確認します。
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
これらのコマンドを対話形式で実行した場合は、PowerShell スクリプトを記述することをお勧めします。 スクリプトを使用すると、将来 VM を作成または削除するためにロジックを再利用できます
次に、PowerShell スクリプトを使用してこれらのタスクを自動化する方法を見てみましょう。