Azure PowerShell を使用して仮想マシンを作成する
このチュートリアルでは、Azure PowerShell を使用した仮想マシンのセットアップに関連するすべての手順について説明します。 このチュートリアルでは、出力クエリ、Azure リソースの再利用、リソースのクリーンアップについても説明します。
このチュートリアルは、Azure Cloud Shell で提供される対話型エクスペリエンスを使用して完了することも、Azure PowerShell をローカルにインストール
チュートリアル テキスト Azure Cloud Shell に貼り付けるには、ctrl - shift- v (macOScmd-shift-v) を使用します。
サインイン
Azure PowerShell のローカル インストールを使用している場合は、他の手順を実行する前にサインインする必要があります。
Connect-AzAccount
ターミナルに表示される手順に従って、サインイン プロセスを完了します。
リソース グループを作成する
Azure では、すべてのリソースがリソース管理グループに割り当てられます。 リソース グループは、コレクションとして操作しやすくするリソースの論理的なグループ化を提供します。
このチュートリアルでは、作成されたすべてのリソースは、TutorialResources
という名前の 1 つのグループに移動します。
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
VM の管理者資格情報を作成する
新しい仮想マシンを作成する前に、Windows VM の管理者アカウントのユーザー名とパスワードを含む資格情報オブジェクトを作成する必要があります。
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
メッセージが表示されたら、ユーザー名とパスワードを入力します。 結果の資格情報オブジェクトは、次の手順でパラメーターとして渡されます。
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
仮想マシンを作成する
Azure の仮想マシンには、多数の依存関係があります。 Azure PowerShell では、指定したコマンド ライン引数に基づいてこれらのリソースが自動的に作成されます。 読みやすくするために、PowerShell スプラッティング を使用して、パラメーターを Azure PowerShell コマンドレットに渡しています。
Windows を実行する新しい仮想マシンを作成します。
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
VM が作成されると、使用されているパラメーター値と Azure リソースが作成されます。 PowerShell には、次に示すように進行状況バーが表示されます。
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
VM の準備ができたら、Azure Portal で、または $newVM1
変数を調べることで結果を表示できます。
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
中かっこ内に一覧表示されるプロパティ値は、入れ子になったオブジェクトです。 次の手順では、これらの入れ子になったオブジェクトの特定の値を表示する方法について説明します。
クエリを使用して VM 情報を取得する
先ほど作成した VM からさらに詳細な情報を取得しましょう。 この例では、VM の名前と作成した管理者アカウントを確認します。
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
他の Azure PowerShell コマンドを使用して、ネットワーク構成に関する特定の情報を取得できます。
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
この例では、PowerShell パイプラインを使用して、$newVM 1 オブジェクトを Get-AzNetworkInterface
コマンドレットに送信しています。 結果のネットワーク インターフェイス オブジェクトから、入れ子になった IpConfigurations オブジェクトを選択します。 IpConfigurations オブジェクトから、Name プロパティと PrivateIpAddress プロパティを選択します。
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
VM が実行されていることを確認するには、リモート デスクトップ経由で接続する必要があります。 そのためには、パブリック IP アドレスを知る必要があります。
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
この例では、Get-AzPublicIpAddress
を使用し、結果を $publicIp
変数に格納します。 この変数からプロパティを選択し、式を使用して入れ子になった Fqdn プロパティを取得します。
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
ローカル コンピューターから次のコマンドを実行して、リモート デスクトップ経由で VM に接続できます。
mstsc.exe /v $publicIp.IpAddress
オブジェクト プロパティのクエリの詳細については、「Azure リソースのクエリ」を参照してください。
既存のサブネットに新しい VM を作成する
2 番目の VM は、既存のサブネットを使用します。
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
新しい VM のパブリック IP アドレスは、$newVM2
オブジェクトの FullyQualifiedDomainName プロパティで返されるため、いくつかの手順をスキップして取得できます。 リモート デスクトップを使用して接続するには、次のコマンドを使用します。
mstsc.exe /v $newVM2.FullyQualifiedDomainName
クリーンアップ
チュートリアルが完了したら、作成されたリソースをクリーンアップします。
Remove-AzResource
コマンドを使用して個々のリソースを削除できますが、リソース グループ内のすべてのリソースを削除する最も安全な方法は、Remove-AzResourceGroup
コマンドを使用してグループを削除することです。
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
このコマンドは、チュートリアル中に作成されたリソースを削除し、正しい順序で割り当てを解除することが保証されます。
AsJob
パラメーターは、削除の実行中に PowerShell がブロックされないようにします。 削除が完了するまで待機するには、次のコマンドを使用します。
Wait-Job -Id $job.Id
クリーンアップが完了したら、チュートリアルは完了です。 学習したすべての概要と、次の手順に役立つリソースへのリンクを確認してください。
概要
万丈! 新しいリソースまたは既存のリソースを使用して VM を作成する方法、式やその他の Azure PowerShell コマンドを使用して、シェル変数に格納されるデータをキャプチャする方法、および Azure VM 用に作成されるリソースの一部を確認しました。
ここから移動する場所は、Azure PowerShell の使用方法によって異なります。 このチュートリアルで説明する機能についてさらに詳しく説明するさまざまな資料があります。
Azure PowerShell の詳細なドキュメント
Azure PowerShell のドキュメントの完全な 調べるのに時間がかかる場合があります。
このチュートリアルで使用するコマンドの詳細については、次の記事を参照してください。
- New-AzResourceGroup の
- Get-Credential の
- New-AzVM の
- Select-Object の
- Get-AzPublicIpAddress の
- Remove-AzResourceGroup の
- 待機ジョブ の
チュートリアルで示した機能について詳しく説明する記事もあります。
サンプル スクリプト
特定のタスクをすぐに開始する場合は、いくつかのサンプル スクリプトを参照してください。
- Azure App Service の
- SQL Database
- Cosmos DB
- サンプル リポジトリ
フィードバック
フィードバック、提案、または質問をしたい場合は、さまざまな方法で連絡を取ることができます。
-
Send-Feedback
は Azure PowerShell の組み込みコマンドであり、チームに自由形式のフィードバックを提供できます。 - Azure PowerShell リポジトリに機能要求またはバグ レポートを提出します。
- Azure PowerShell ドキュメント リポジトリに問題を提出して、質問をしたり、明確にしたりします。
Azure PowerShell の使用をお楽しみください。
このセクションに問題がある場合 このセクションを改善できるよう、フィードバックをお送りください。
Azure PowerShell