「Windows Azure PowerShell を使うには」とブログに書くまでもないほど簡単になってしまった話
怠惰は美徳
Windows Azure PowerShell は実に便利です。
例えば「動いてる VM 全部シャットダウンしたい」時、管理ポータルで一台ずつポチポチしてると空しくなりますよね。コンピュータに使われている気がして。そこで、PowerShell です。
Get-AzureVM | ?{$_.Status -eq "ReadyRole"} | Stop-AzureVM -Force
これで「あとやっとけよ、お前ら」と機械をこき使うことができるわけです。
また、以前「エンドポイントに ACL を!」で書いたエンドポイントACLのように、PowerShell を使わねければ(今のところ)設定できない機能もあったりします。
証明書の設定が面倒だった
この Windows Azure PowerShell、便利なのは前述の通りなのですが、使い始めるまでがちょっと面倒でした。マイクロソフトアカウントでログオンするだけの Azure 管理ポータルと違って、サービス管理 API を呼び出すためにクライアント証明書による認証の準備が必要だったからです。
Windows Azure サービス管理 API では、サービスに対して行われた要求が安全であることを保証するために、SSL を介した管理証明書の相互認証が必要です。匿名の要求は許可されません。 https://msdn.microsoft.com/ja-jp/library/windowsazure/ee460782.aspx
このために、
- 鍵ペアを生成して、
- 公開鍵証明書を証明書ストアからエクスポートして
- それを Azure 管理ポータルへアップロードして
- Set-AzureSubscription で設定する
という作業をする必要がありました。
また、これを楽に行うために Get-AzurePublishSettingsFile とImport-AzurePublishSettingsFile というコマンドレットが用意されていたのですが、これは実行するたびに新たな証明書を生成するので、テキトーにあちこちのコンピュータで実行した結果、
管理ポータルが管理証明書だらけになる
という残念な現象が起きがちでした。こんなふうに:
こんな面倒とも、もうおさらばです。Windows Azure PowerShell が
Windows Azure Active Directory (WAAD) 認証に対応した
からです。実際にやってみましょう。
最新の Windows Azure PowerShell をインストール
まずは、Windows Azure Active Directory 認証に対応した最新の Windows Azure PowerShell (0.7.0) が必要です。WebPI でインストールしてください。Azure SDK 2.2 など必要なもの一式が同時に入りますから、インストールはそこそこ時間がかかりますがお待ちください。
インストールが完了するとこんな感じです。
※ 余談ですが、Windows Azure Storage Tools も一緒に入っていますね。これには便利な azcopy コマンドが含まれています。
バージョンを確認するには、次のコマンドを実行してください。Azure が 0.7.0 であれば OK です。
Get-Module | ft name,version
Windows Azure PowerShell初期設定
さて、今までならここで証明書の設定をするところですが、これからは簡単です。Windows Azure PowerShell を起動して、次のコマンドを打ち込んでください。
Add-AzureAccount
するとこんなのが出てきますので、Windows Azure管理ポータルへログオンする際に使っているアカウントでログオンしてください。マイクロソフトアカウントだけでなく、Windows Azure Active Directoryのアカウントや、フェデレーションしてる企業アカウントでもOKです。
こんなふうに出れば成功です。
じゃ、一つコマンド打ってみましょう。
Get-AzureVM
無事に実行できましたね。以前に比べると簡単に Windows Azure PowerShell を活用できるようになりました。
※ 補足: 「既定のディレクトリ」について
さて、WAAD で認証ができるようになったとはいっても、
WAAD にユーザーなんか作った覚えはない
という方が多いのではないでしょうか。実は、この機能を有効に活用していただくために、次のような変更が行われています。
その 1
- 現在のアカウント (管理ポータルにログオンするときに利用しているマイクロソフトアカウントなど) に WAAD のディレクトリ(テナント) がなければ、「既定のディレクトリ」という名前で新規作成。
管理ポータルをご確認ください。こんな「既定のディレクトリ」というやつができていると思います。
その 2
- 現在のアカウントを、WAAD のテナントに登録
- 既存のテナントがあればそちらに、無い場合は自動的に作成された「既定のディレクトリ」に登録
私の場合、下図のようにマイクロソフトアカウントが登録されています。
「勝手にディレクトリとユーザーなんか作りやがって課金はどうなる!」と思われるかもしれませんが、 WAAD は 500,000 オブジェクトまでは無料、標準状態ではそもそも 150,000 オブジェクト以上は作れないようになっているので、今回自動作成された「既定のディレクトリ」による課金が発生することはありません。
それでは、Windows Azure PowerShellをご活用ください。
関連情報
How to install and configure Windows Azure PowerShell
Windows Azure SDK for .NET 2.2 Release Notes
Manage Windows Azure accounts, subscriptions, and administrative roles
__END__
Comments
- Anonymous
March 21, 2014
アドベントカレンダー この記事は、「 Windows Azure アドベントカレンダー 」の3月21日分です。 Azure仮想マシンの静的IPアドレス設定機能について書こうかと思ったのですが、3月10日の - Anonymous
August 17, 2014
今度はイメージギャラリーにもありますよ HPC Pack 2012 R2の更新版、"Update 1"のプレビューが出ました。今回は、Azure IaaSでのクラスタ展開に関する改良点が多いようですが