演習 - スクリプトを使用して Azure PowerShell で Azure リソースを作成する
このユニットでは、引き続き、Linux 管理ツールを開発している会社の例を扱います。 目標は、Linux Virtual Machines (VM) を使用して、潜在的な顧客がソフトウェアをテストできるようにすることです。 リソース グループが既に設定されているので、次に VM を作成します。
会社では Linux の大規模なトレード ショーでブースを確保しました。 デモンストレーション領域を設定し、そこにはそれぞれ別々の Linux VM に接続された 3 台の端末を設置する計画です。 1 日の終わりに VM を削除して再作成する必要があります。そうすることで、VM は毎朝新しい状態で開始されます。 長い 1 日後に VM を手動で作成すると、エラーが発生しやすくなります。そのため、VM の作成プロセスを自動化する PowerShell スクリプトを記述する必要があります。
仮想マシンを作成するスクリプトを記述する
仮想マシンの作成を自動化するスクリプトを Azure Cloud Shell に記述するには、次の手順に従います。
Note
通常は、Connect-AzAccount
で資格情報を使用して Azure に対して認証しますが、Cloud Shell では既に認証されているため、この手順は不要です。
自分のホーム フォルダーに切り替えます。
Set-Location -Path $HOME
新しい PowerShell スクリプト ファイルを作成します。
New-Item -Name ConferenceDailyReset.ps1 -ItemType File
統合された Visual Studio Code (VS Code) エディターを開きます。
code ./ConferenceDailyReset.ps1
ヒント
vim、nano、および emacs のいずれかを使用する場合、統合された Cloud Shell エディターではこれらのエディターもサポートされています。
リソース グループ名のパラメーターを定義します。
次の行をスクリプトに追加します。
param ( [string]$ResourceGroupName )
VM 管理者の資格情報の入力を求めます。
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
3 回実行するループを作成します。
$vms = 'web','app','sql' foreach ($vm in $vms) { $vm }
ループで、各 VM の名前を返します。
Write-Output "Creating VM: $vm"
$vm
変数を使用して VM を作成します。$azVmParams = @{ ResourceGroupName = $ResourceGroupName Name = $vm Credential = $adminCredential Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 } New-AzVm @azVmParams
ファイルを保存します。
スクリプトを保存するには、エディターの右上隅にある省略記号 (
...
) コンテキスト メニューを使用するか、Ctrl + S キーボード ショートカットを使用します。
完成したスクリプト
完成したスクリプトは次の例のようになります。
param (
[string]$ResourceGroupName
)
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
$vms = 'web','app','sql'
foreach ($vm in $vms) {
Write-Output "Creating VM: $vm"
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
}
New-AzVm @azVmParams
}
前の例のコードのようにスクリプトが表示されたことを確認したら、エディターの右上隅にある省略記号 (...
) コンテキスト メニューまたは Ctrl +
Q キーボード ショートカットを使用してエディターを閉じます。
スクリプトを実行する
次のコマンドを使用してこのスクリプトを実行します。
./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
完了するまで待ちます。 このスクリプトの完了には数分かかります。
VM を確認します。 スクリプトが完了したら、リソース グループ内の VM を一覧表示して、スクリプトが正常に完了したことを確認します。
Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
それぞれに一意の名前がある、3 つの VM が表示されます。
3 つの VM の作成を自動化するスクリプトが正常に作成されました。各 VM は特定のリソース グループに含まれており、トレード ショーでの毎日のデモに対応できます。 スクリプトは短くて簡単ですが、Azure portal を使用して手動で実行すると、時間がかかり、エラーが発生しやすいプロセスが大幅に高速化されます。