Azure PowerShell を使用して対話形式で Azure リソースを作成する
PowerShell の対話モードでは、コマンドを入力してその場で実行できます。
顧客関係管理 (CRM) の例における目標は、3 つのテスト環境を、それぞれに仮想マシン (VM) を含めて作成することです。 別々の環境内に VM を確実に編成するために、リソース グループを使用します。
- 単体テスト
- 統合テスト
- 承認テスト
リソース グループの作成は 1 回しか必要とされないタスクであるため、PowerShell の対話形式で実行するのは妥当な選択です。
PowerShell でコマンドを実行すると、入力したコマンドとコマンドレットとの照合が行われ、指示したアクションがその場で実行されます。
例:Azure PowerShell を使用してリソース グループを作成する方法
では、リソース グループの作成という一般的なタスクを実行しましょう。 リソース グループは、関連性があるリソース群をまとめて管理する場合に便利です。新しい Azure ソリューションの使用を開始するとき、最初に実行するタスクが新しいリソース グループの作成であることはよくあります。
必要な作業のステップは以下の 3 つです。
ご利用の Azure サブスクリプションに接続します。
リソース グループを作成します。
リソース グループが正常に作成されたことを確認します。
これらのステップは、それぞれ 1 つの Azure PowerShell コマンドに対応しています。
Azure への接続
Azure PowerShell のローカル インストールを使用する場合は、Azure PowerShell コマンドを実行する前に認証が必要となります。 Connect-AzAccount
コマンドレットは、作業者に Azure 資格情報の入力を要求し、その後 Azure サブスクリプションに接続します。
対話形式で接続する場合、パラメーターを指定する必要はありません。
Connect-AzAccount
このコマンドは、作業者に Azure 資格情報の入力を要求し、その後 Azure サブスクリプションへの接続を確立します。
サブスクリプションを操作する
Azure を初めて使用する方の場合、お持ちのサブスクリプションは 1 つだけです。 一方、ある程度前から Azure を利用している方は複数のサブスクリプションをお使いの可能性があります。 Azure PowerShell では、どのサブスクリプションをコマンドの実行対象にするかを構成できます。
アクティブにすることができるサブスクリプションは一度に 1 つだけです。 現在どのサブスクリプションがアクティブになっているかは、Get-AzContext
コマンドレットで確認できます。 使用するサブスクリプションが異なる場合は、Set-AzContext
コマンドレットで切り替えることができます。
お持ちのサブスクリプションをすべて一覧表示するには、以下を実行します。
Get-AzSubscription
現在ログインしている対象のサブスクリプションを確認するには、以下を実行します。
Get-AzContext
アクティブなサブスクリプションを切り替えるには、以下を実行します。
Set-AzContext -Subscription '00000000-0000-0000-0000-000000000000'
サブスクリプション ID を知る必要がある場合は、
Get-AzSubscription
コマンドレットの出力で確認できます。
リソース グループを作成する
Azure 内にリソースを作成する際は、管理目的のために、リソース グループ内に配置します。
リソース グループを作成するには、New-AzResourceGroup
コマンドレットを使用します。 名前と場所の指定は必須であり、また、サブスクリプション内に重複がない名前を付ける必要があります。 場所は、リソース グループのメタデータを格納する場所の指定です。場所はコンプライアンス上重要な意味を持つことがあります。 使用可能な場所を確認するには、Get-AzLocation
コマンドレットを使用します。
Note
Azure サンドボックス内で作業する場合、リソース グループは自動的に作成されます。 独自のサブスクリプションで作業する場合は、以下のコマンドを使用します。
リソース グループを作成するための構文は以下のとおりです。
New-AzResourceGroup -Name <resource-group-name> -Location <location>
すべてのリソース グループの一覧表示
現在アクティブなサブスクリプション内にあるすべてのリソース グループを一覧表示するには、Get-AzResourceGroup
コマンドレットを使用します。
Get-AzResourceGroup
より簡潔に表示するには、以下のように、出力をパイプで Format-Table
コマンドレットに渡します。
Get-AzResourceGroup | Format-Table
また、以下のようにして出力をフィルター処理すると、特定のリソース グループのみを表示できます。
Get-AzResourceGroup -Name <resource-group-name>
Azure 仮想マシンを作成します。
仮想マシン (VM) の作成操作は、Azure PowerShell でよく行われる一般的なタスクです。
VM の作成は New-AzVM
コマンドレットを使用して実行されます。 このコマンドレットには数個のパラメーターがあり、VM の構成設定についての広範な指定ができます。 ほとんどのパラメーターには妥当な既定値が設けられているため、通常は、最も重要な以下の 5 項目を指定するだけで済みます。
- ResourceGroupName:新しい VM の配置先となるリソース グループ。
- Name:Azure での VM の名前。
- [場所]: VM のプロビジョニング対象となる地理的リージョン。
- Credential:VM 管理者アカウントのユーザー名とパスワードを含んだオブジェクト。
作業者にユーザー名とパスワードの入力を求め、資格情報オブジェクトとして格納するには、
Get-Credential
コマンドレットを使用します。 - [イメージ]。VM で使用するオペレーティング システム イメージ (通常は Linux ディストリビューションまたは Windows Server)。
次に例を示します。
$azVmParams = @{
ResourceGroupName = '<resource-group-name>'
Name = '<machine-name>'
Credential = '<credentials-object>'
Location = '<location>'
Image = '<image-name>'
}
New-AzVM @azVmParams
これらのパラメーターは、前の例で示したように、スプラッティングを含むハッシュ テーブルとして New-AzVM
コマンドレットに指定できます。 または、New-AzVM
コマンドレットにパラメーターを直接指定するか、他のコマンドレット (Set-AzVMOperatingSystem
、Set-AzVMSourceImage
、Add-AzVMNetworkInterface
、Set-AzVMOSDisk
など) を使用して仮想マシンを構成することもできます。
たとえば、New-AzVM
コマンドレットに対するパラメーターを直接指定するには、以下の構文を使用します。
New-AzVM -Name <vm-name> -ResourceGroupName <resource-group-name> -Credential (Get-Credential) ...
例: VM の情報を取得する
Get-AzVM
コマンドを使用して、サブスクリプション内の VM をリストすることができます。 このコマンドでは、Name パラメーターを指定して特定の VM を取得することもできます。
Get-AzVM
の結果を、以下のようにして変数に格納します。
$vm = Get-AzVM -Name <vm-name> -ResourceGroupName <resource-group-name>
$vm
変数の内容は、操作可能なオブジェクトです。 たとえば、このオブジェクトに変更を加えてから、その変更内容を Update-AzVM
コマンドで Azure にプッシュすることもできます。
$resourceGroupName = '<resource-group-name>'
$vm = Get-AzVM -Name <vm-name> -ResourceGroupName $resourceGroupName
$vm.HardwareProfile.vmSize = 'Standard_DS3_v2'
Update-AzVM -ResourceGroupName $resourceGroupName -VM $vm
PowerShell を対話モードで使用する方法は、1 回限りのタスクに適しています。 たとえば、プロジェクトの開始から稼働終了までの間にリソース グループの作成を 1 回しか行わない場合は、作成と管理を対話形式で実行できます。 1 回きりのタスクに関しては、多くの場合、スクリプトを記述するよりも対話モードを使用するほうが、手早く簡単に目的を達成できます。