読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

Windows Azure PowerShellのNew-AzureQuickVMコマンドでCurrentStorageAccountName is not accessibleエラーが出た場合の対処

Windows Azure

少し前にChefのknife-azureで仮想マシンの作成を試しましたが、AzureではPowerShellやDOSプロンプトで使えるコマンドツールも提供されているので、仮想マシンを作成するだけなら、これらのツールだけでもできるんだよなぁ、と思いつつ、実際には触っていなかったので試してみました。

http://www.windowsazure.com/ja-jp/downloads/
f:id:kikutaro777:20140310111136j:plain

今回試したのはPowerShellのほうです。

Windows Azure PowerShellに関しては以下サイトを参考にさせて頂きました。

Windows Azure PowerShell Cmdletを試そう! -シグマコンサルティング株式会社-
Windows Azure PowerShell を使ってみる -蒼の王座-

で、New-AzureQuickVMコマンドで仮想VMを作ろうとしたら、自分の場合はCurrentStorageAccountName is not accessibleエラーになったので…対処した方法について備忘。

とりあえず、Windows Azure PowerShellのインストールもキャプチャ取ってたので一応貼っておきます。

Windows Azure PowerShellインストール

ダウンロードリンクに矢印入れた図

exeファイルがダウンロードされるので実行します。
f:id:kikutaro777:20140310112359j:plain

実際のインストールモジュールダウンロードはexeの実行で始まるようです。
f:id:kikutaro777:20140310113001j:plain

f:id:kikutaro777:20140310113007j:plain

インストール対象のWindows Azure PowerShellの詳細情報が表示されます。
f:id:kikutaro777:20140310113116j:plain

f:id:kikutaro777:20140310113203j:plain

f:id:kikutaro777:20140310113209j:plain

f:id:kikutaro777:20140310113215j:plain

f:id:kikutaro777:20140310113230j:plain

今回入れたWindows Azure PowerShellが「インストール済」になったこと確認。
試した環境ではすでにCommand Line Toolsは入れていたので「インストール済」となっていますが(^^;
f:id:kikutaro777:20140310113250j:plain

その後のモジュール設定や認証ファイルのインポートは最初にあげた参考サイトと全く同じでいけたので省略。

New-AzureQuickVMコマンド

CurrentStorageAccountName is not accessible

MSDNのページをみるとNew-AzureQuickVMコマンドで仮想マシンを簡単に作れるようです。

試しにLinuxマシンを以下コマンドで作ろうとしたら

New-AzureQuickVM -ImageName "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_10-amd64-server-20140202-en-us-30GB"
  -Linux -LinuxUser "hogehoge" -Password "hogehoge" -ServiceName PowerShellLinux

エラーになりました。
f:id:kikutaro777:20140310144851j:plain

「CurrentStorageAccountName is not accessible.」とのこと。

ググってみたところ英語情報はたくさんありました。その中から以下ページを参考に。

AZURE POWERSHELL – CURRENT STORAGE ACCOUNT ERROR WHEN MAKING A NEW VM

Get-AzureSubscriptionコマンドで確認すると

f:id:kikutaro777:20140310193920j:plain

上記のようになっており、下から3つ目にある「CurrentStorageAccountName」が空白になっているためエラーとなるようです。

で、せっかくWindows Azure PowerShellを入れているので、コマンドからここに設定しよう!と参考の海外サイトには書いてあるので、やってみました。(既に何らかストレージが設定されてる想定)

f:id:kikutaro777:20140310164747j:plain

上記コマンドで、Get-AzureStorageAccountコマンドで取得されるデータのLabel属性を名前にします。

Set-AzureSubscription -SubscriptionName "無料評価版" 
  -CurrentStorageAccountName (Get-AzureStorageAccount).Label -PassThru

f:id:kikutaro777:20140310164818j:plain

反映されていれば成功です。
f:id:kikutaro777:20140310171147j:plain

ちなみにPassThruって何だろ、と調べたら以下サイトがすごく丁寧に説明されていたので、ここでは省きます。

PowerShellの-PassThruパラメータについて

Only one of parameters.AffinityGroup, parameters.Location may be provided.

CurrentStorageAccountName is not accessibleのエラーは解決したので、いけるかなと思ったら続けて以下エラーが出たので

f:id:kikutaro777:20140310173104j:plain

アフィニティグループを作成して、末尾に「-AffinityGroup アフィニティ名」のオプションを加えました。

で、実行すると
f:id:kikutaro777:20140310195920j:plain

今度は成功!
f:id:kikutaro777:20140310195945j:plain

うーむ、これだけでLinuxマシン作れるのは手軽だなぁ。すごい時代になったもんだ(^^;今の会社では全然Linux使わないのだけど、バリバリ使ってた大学時代に欲しかったなぁ。ってか、ChefもLinuxだと楽だし、サーバサイドだけでも会社でLinuxメインにしたい…。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村