Windows Azureを利用している各位、Cerebrata社と呼ばれる会社をご存じだろうか?Windows Azure Platformがリリースされた初期から Windows Azure 向けのツールをリリースし続けている。私も T Pro (IT 担当者) のための Windows Azure Platform 運用管理ガイド 1.0の 「第 10 章: 便利なツール」で同社のツールを紹介させて頂いたが、今回は同社の Azure Management Cmdlets について掘り下げたい。
Azure Management Cmdlets とは?
詳細は英語サイトである http://www.cerebrata.com/Products/AzureManagementCmdlets/Default.aspx を参照して欲しいが、公式版Cmdletsに対して大幅に機能追加したツールである。ロールインスタンス数の変更、ストレージサービスのバックアップ、ログの転送等の細かな操作が可能だ。
上記サイトから 32bit版 と 64bit版がダウンロード可能であるため、利用している環境に合わせたインストーラを用いてて環境をセットアップして頂きたい。
同ツールは有償ツールであるが、試用期間が存在するため、是非一度利用していただきたい。
インストール後の処理
デフォルトでPowerShellは.NET 4.0をサポートしていないため、設定ファイルの編集とコマンドの実行が必要になる。
- PowerShell.exe.config の配置
C:\Windows\System32\WindowsPowerShell\v1.0 (64bit版のインストーラを利用した場合は C:\Windows\SysWOW64\WindowsPowerShell\v1.0 )に、以下の内容を記述した PowerShell.exe.config を配置する。
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> <supportedRuntime version="v2.0.50727"/> </startup>
- setup.cmdの実行
利用しているマシンが64bitマシンの場合、管理者権限でコマンドプロンプトを起動し、以下の例に従ってsetup.cmdを実行する。
C:\Program Files\Cerebrata\Azure Management Cmdlets>setup.cmd --------------------------------------------------------------------------- Installing Cerebrata Azure Management Cmdlets PSSnapIn --------------------------------------------------------------------------- Microsoft(R) .NET Framework Installation utility Version 4.0.30319.1 Copyright (c) Microsoft Corporation. All rights reserved. トランザクションのインストールを実行中です。 インストール段階を開始しています。 C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll アセンブリの進行状態については、ログ ファイルの内容を参照してください。 ファイルは C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog にあります。 アセンブリ 'C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll' をインストールしています。 該当するパラメーター: logtoconsole = i = assemblypath = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll logfile = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog インストール段階が正常に完了しました。コミット段階を開始しています。 C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll アセンブリの進行状態については、ログ ファイルの内容を参照してください。 ファイルは C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog にあります。 アセンブリ 'C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll' をコミットしています。 該当するパラメーター: logtoconsole = i = assemblypath = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll logfile = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog コミット段階が正常に終了しました。 トランザクション インストールが完了しました。
ロールのインスタンス数を変更する
以下のコマンドを実行することで、ロールのインスタンス数を変更できる。
PS C:\> Add-PSSnapin AzureManagementCmdletsSnapIn PS C:\> $subscriptionId = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; //サブスクリプションIDを記述 PS C:\> $certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate; PS C:\> $certificate.Import("c:\\NormalianRemote.cer"); //リモードデスクトップ側で登録済みのクライアント証明書。cer形式でインポートすること PS C:\> $serviceName = "normalianService"; //ホスティッドサービスの名前 PS C:\> $roleName = "MvcApplication1"; PS C:\> $instanceCount = 4; //変更したいインスタンス数 PS C:\> $slot = "Production"; //Production or Staging PS C:\> Set-RoleInstanceCount -ServiceName $serviceName -Slot $slot -RoleName $roleName -InstanceCount $instanceCount -SubscriptionId $subscriptionId -Certificate $certificate -WaitToComplete; Trying to update instance count for "MvcApplication1" role. Please wait. Role instance count for "MvcApplication1" role updated successfully.
インスタンス数の変化については、以下の画像例を参考にしてほしい。
公式では用意されていないAPIを用意するとは、流石Cerebrata社。。。