Windows Azure の仮想マシンを PowerShell で起動してみる
Windows Azure の仮想マシンを起動するのに、通常は下図のサービスポータルを使用します。
しかし、最近仮想マシンを起動するのに毎回サービスポータルから起動することが、段々面倒になってきました。コマンドラインで Azure を操作できると非常に楽だと思い、Windows Azure へ接続するための PowerShell スクリプトを書いてみることにしました。
今回はPowerShell ISE を使って書いてみましょう。私のPowerShell スキルはまだまだ初心者レベルなので、ISE を使わないと書けないのです。PowerShell ISE の簡単な使い方はここに書いてあります。まだ使ったことない方は参照してみてください。あと、今回の機能を試すには、Windows Azure PowerShell をインストールしておく必要があります。
まずは、下記のスクリプトを実行することで、Windows Azure Active Directory ベースの認証可能にします。Get-AzurePublishSettingsFile や Import-AzurePublishSettingsFile は必要なくなりました。Windows Azure Active Directory にユーザーが追加されます。( こうなると、Windows Azure Active Directory に興味がわいてきますね。 )
Add-AzureAccount
上記スクリプトを実行すると、下記の画面が表示されるので、メールアドレスを入力し、続行をクリックします。
パスワードを入力し、サインインをクリックします。
PowerShell ISE の画面に戻るので、下記のスクリプトを実行します。
# xxxxxxxxx には、実際の仮想マシン名、サービス名を指定してください。
# 仮想マシンの起動 Start-AzureVM -Name xxxxxxxxx -ServiceName xxxxxxxxx # 結果を変数に格納 $azurevminfo = (Get-AzureVM -Name xxxxxxxxx -ServiceName xxxxxxxxx) # 仮想マシンの状態が、開始中の間は、下記の処理を継続 while ( $azurevminfo.PowerState -eq "Starting") { # 30秒スリープ。もっといい方法を後で考える Start-Sleep -s 30 # 結果を変数に格納 $azurevminfo = (Get-AzureVM -Name xxxxxxxxx -ServiceName xxxxxxxxx) } # 仮想マシンに接続するための、RDPファイルを取得し、ローカルに格納 Get-AzureRemoteDesktopFile -LocalPath C:\azure.rdp -Name xxxxxxxxx -ServiceName xxxxxxxxx # リモートデスクトップを起動 Start-Process -FilePath mstsc C:\azure.rdp
上記の処理が完了すると、リモートデスクトップの画面が表示されます。パスワードを入力し、OK ボタンをクリックすることで、仮想マシンに接続することができます。
こんな簡単なスクリプトを書いただけで、 Windows Azure に接続できるとはスゴイです。あまりも接続が簡単なので、ソースも手抜きになってしまいましたww もう少し考えて、使えるスクリプトにしないといけないですね。