Microsoft Azure へのデプロイ
Movable Type Advanced 6 は 2022/5/16 で EOL(End of Life)を迎えます。Deploy Kit のサポートについても終了いたします。また、Deploy Kit は Movable Type Advanced 7 ではご利用になれません。
はじめに
本ガイドは、別途配布されている Microsoft Azure 用の Deploy Kit を利用して、Microsoft Azure へインストールするための手順書となります。Deploy Kit の入手については、弊社営業担当者までご連絡下さい。
Azure Deploy Kit は、Microsoft Azure クラウドサービス (PaaS) に、Movable Type Advanced (MTA) をインストールするためのキットで、以下の環境に対応しています。 なお、SLA 99.9% に対応するためには、複数のインスタンスを起動させてロードバランスされた環境を用意する必要があります。 現時点では「共有ドライブ」機能が利用できないため、MTA とは別に公開サーバーを構築する必要があります。
Azure Deploy Kit は、クラウドサービスにインストールを行うためのリファレンスプログラムとなります。あらかじめご了承の上、システム要件にあわせ、カスタマイズしてお使いください。
システム要件
Microsoft Azure
- ゲストOS
- OS Family: 4 (Windows Server 2012 R2 相当)
- OS Family: 3 (Windows Server 2012 相当)
- OS Family: 2 (Windows Server 2008 R2 相当)
- データベース
- SQL Azure / SQL データベース
- ストレージ
- BLOB ストレージ
クライアントPC
- OS
- Windows 7 以降
- ソフトウェア
- Microsoft Azure PowerShell
- Microsoft Windows SDK for Windows 7 and .NET Framework4
- Windows Software Development Kit (SDK) for Windows 8.1
導入マニュアル
本マニュアルでは、以下の環境で構築することを前提に、手順を解説します。該当する箇所を読み替えてご利用ください。
想定環境
環境
- クラウドサービス
- mtdevcs01 (OS Family 4)
- データベース
- mtdevdb01 (Japanese_Unicode_CI_AS)
- BLOB ストレージ
- mtdevst01
- サブリージョン
- East Asia
その他要件
- ベーシック認証を有効にする
- Movable Type のスクリプトは FastCGI で運用する
- Movable Type のスクリプトは SSL で保護する
導入手順
以下の手順に従って、導入を行ってください。
- クライアント環境の準備
- Microsoft Azure PowerShell の基本設定
- Azure 管理ポータルでの操作
- BLOB ストレージへのアップロード
- サービス証明書の作成
- SSL 自己署名証明書の作成
- 証明書のアップロード
- RDP 用パスワードの暗号化
- ServiceDefinition.csdef の修正
- ServiceConfiguration.Cloud.cscfg の修正
- パッケージの作成
- パッケージのアップロード
クライアント環境の準備
- https://github.com/WindowsAzure/azure-sdk-tools/releases から、[Microsoft Azure PoewerShell] をインストールします。インストールの際は、[Web Platform Installer] を選択します。
- [Web Platfrom Install] が起動します。起動後、[Options] リンクをクリックします。
- [Select your preferred language for software installations] 欄で [Japanese] を選択して、[OK] ボタンをクリックします。
- [Install] ボタンをクリックすると、ダイアログウィンドウが表示されます。
- [I Accept] ボタンをクリックすると、[Microsoft Azure PoewerShell] のインストールがスタートします。
- [Microsft Windows Management Framework 3.0] のインストールが終わった時点で、再起動の確認ダイアログが表示されます。[Yes] ボタンをクリックして再起動してください。
- 再起動した後に、インストールの続きが実行されます。インストールが完了した後に、[Exit] ボタンをクリックします。
- http://www.microsoft.com/en-us/download/details.aspx?id=8279 から、[Microsoft Windows SDK for Windows 7 and .NET Framework4] をインストールします。
- 以下を PATH に追加します。ディレクトリは異なる場合がありますので、環境に応じて設定を行ってください。
- C:\Program Files\Microsoft SDKs\Microsoft Azure\.NET SDK\v2.2\bin
- C:\Program Files\Microsoft SDKs\Microsoft Azure\AzCopy
- C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
- Windows Update を実行し、最新の状態にします。
Microsoft Azure PowerShell の基本設定
- [Microsoft Azure PowerShell] を起動します。
- [Add-AzureAccount] を実行します。
- Azure 管理ポータルにサインインするアカウントの電子メールアドレスを入力し、[続行] ボタンをクリックします。
- [サインイン] 画面が表示されます。パスワードを入力した後に、[サインイン] ボタンをクリックします。
- サブスクリプションは複数登録できます。登録したサブスクリプションの一覧の表示 と、サブスクリプションの指定はそれぞれ、[Get-AzureSubscription]、 [Select-AzureSubscription] で実行できます。
PS C:\> Add-AzureAccount
PS C:\> Add-AzureAccount VERBOSE: Account "xxxx@xxxx.xxx" has been added. VERBOSE: Subscription "xxxxxxxx" is selected as the default subscription. VERBOSE: To view all the subscriptions, please use Get-AzureSubscription. VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
PS C:\> Get-AzureSubscription SubscriptionName : xxxxxxxx SubscriptionId : xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ServiceEndpoint : https://management.core.windows.net/ ActiveDirectoryEndpoint : https://login.windows.net/ ActiveDirectoryTenantId : xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx IsDefault : True Certificate : CurrentStorageAccountName : CurrentCloudStorageAccount : ActiveDirectoryUserId : xxxx@xxxx.xxx SubscriptionName : xxxxxxxx SubscriptionId : xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ServiceEndpoint : https://management.core.windows.net/ ActiveDirectoryEndpoint : https://login.windows.net/ ActiveDirectoryTenantId : xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx IsDefault : False Certificate : CurrentStorageAccountName : CurrentCloudStorageAccount : ActiveDirectoryUserId : xxxx@xxxx.xxx PS C:\> Select-AzureSubscription -SubscriptionName "xxxxxxxx"
Azure 管理ポータルでの操作
Azure 管理ポータルへのサインイン- https://manage.windowsazure.com/ にアクセスします。
管理ポータルにサインインしていない場合は、サインイン画面に遷移するので、アカウント情報を入力してサインインします。 - サインインが成功すると、管理ポータル画面に遷移します。
- 左下の [新規] リンクをクリックします。
- [データ サービス] を選択します。
- 次に [SQL データベース] を選択します。
- [カスタム作成] を選択すると、モーダルウィンドウが表示されます。必要な情報を入力します。
- 名前
- データベース名(例: mtdevdb01) を入力
- エディション
- [WEB] を選択
- データベースサイズの制限 (最大サイズ)
- 1GB (要件に応じて 1GB/5GB のどちらかを選択)
- 照合順序
- [Japanese_Unicode_CI_AS] を選択
- サーバー
- 利用可能なサーバーを選択
新規に作成する場合は [新しい SQL データベース サーバー] を選択 - 入力した後に、右下の矢印をクリックします。
- 次にデータベース サーバーを設定します。
- ログイン名
- データベース サーバーにアクセスする管理者アカウント名を入力
- パスワード
- 管理者アカウントのパスワードを入力
- 地域
- [東アジア] を選択
- Microsoft Azure サービスにサーバーへのアクセスを許可します
- 有効
- 入力した後に、右下のチェックをクリックします。
- データベースが作成されます。
- 左下の [新規] リンクをクリックします。
- [データ サービス] を選択します。
- 次に [ストレージ] を選択します。
- [簡易作成] を選択し、必要な情報を入力します。
- URL
- ストレージの URL (例: mtdevst01) を入力
- 地域/アフィニティ・グループ
- [東アジア] または任意のグループを選択
- 地理的レプリケーションの有効化
- 有効
- 入力した後に、[ストレージアカウントの作成] をクリックします。
- BLOB ストレージが作成されます。
- BLOB ストレージのアクセス キーの取得
- 左メニューから [ストレージ] を選択し、一覧を表示します。
- アクセス キーを取得したいストレージを選択した後に、下メニューの [アクセス キーの管理] をクリックします。
- モーダルウィンドウが表示されます。以下の情報を記録しておいてください。
- ストレージアカウント名
- プライマリアクセス キー
- セカンダリアクセス キー
- 取得した後に、右下のチェックをクリックします。
- 左下の [新規] リンクをクリックします。
- [コンピューティング] を選択します。
- 次に [クラウド サービス] を選択します。
- [カスタム作成] を選択すると、モーダルウィンドウが表示されます。必要な情報を入力します。
- URL
- クラウド サービスの URL (例: mtdevcs01) を入力
- 地域/アフィニティ・グループ
- [東アジア] または任意のグループを選択
- クラウド サービス パッケージをデプロイします
- 無効
- 入力した後に、右下のチェックをクリックします。
- クラウド サービスが作成されます。
BLOB ストレージへのアップロード
- Movable Type Advanced の zip ファイルを、ローカル PC の任意のディレクトリ (例: C:\tmp\MTA-6.0.2) に解凍します。
- 不必要なプラグインやスクリプトを、解凍先から削除します。
- コマンドプロンプトを起動します。
- 以下のコマンドを実行します。
- 以下のコマンドを実行します。
AzCopy [アップロード元] [アップロード先] /destKey:[プライマリアクセス キー] /S /Y /XO 例: C:\tmp>AzCopy C:\tmp\MTA-6.0.2\ https://mtdevst01.blob.core.windows.net/mta/ ^ /destKey:RxwfwsDMkHWyjfLfQVon5zbnekWEDIA0BIpb2EwSSKlw5F9qNk9DpG4qfIREGtXMz0AAfASBN0GmxDJtzQyqRw== /S /Y /XO
C:\tmp>AzCopy C:\tmp\tools\ https://mtdev.blob.core.windows.net/tools/ ^ /destKey:c8lEO+2rwLr9VGiu6ncxJOS+VHJ8eun518JkOGoaJiQviEOopdFaDsUP/tzdQW+rGC2ly9LV6usdFNvcNCM/oQ== /S /Y
rsync や robocopy でいう delete オプションがありません。ストレージ上のファイルを削除する際は、CloudXploere や Azure Storage Explorer をお使いください。
サービス証明書の作成
サービス証明書は、クラウドサービスで利用される証明書で、Azure Deploy Kit では RDP 接続に利用します。 サービス証明書は以下の手順で作成します。
- コマンドプロンプトを起動します。
- 以下のコマンドを実行します。
- 以下のコマンドを実行します。
makecert.exe -a sha1 -b [開始日時 MM/DD/YYYY] -len 2048 -n "CN=[識別名]" -pe -r -sky exchange -ss My "[ファイル名].cer" -sv "[ファイル名].pvk" 例: C:\tmp>makecert.exe -a sha1 -b 11/01/2013 -len 2048 -n "CN=AzureRDPCert" -pe -r -sky exchange -ss My "AzureRDPCert-mtdevcs01.cer" -sv "AzureRDPCert-mtdevcs01.pvk"
pvk2pfx.exe -pvk "[ファイル名].pvk" -pi "[パスワード]" -spc "[ファイル名].cer" -pfx "[ファイル 名].pfx" 例: C:\tmp>pvk2pfx.exe -pvk "AzureRDPCert-mtdevcs01.pvk" -pi "Mel0dyNels0n" -spc "AzureRDPCert-mtdevcs01.cer" -pfx "AzureRDPCert-mtdevcs01.pfx"
SSL 自己署名証明書の作成
- コマンドプロンプトを起動します。
- 以下のコマンドを実行します。
- 以下のコマンドを実行します。
makecert.exe -a sha1 -b [開始日時 MM/DD/YYYY] -len 2048 -n "CN=[識別名]" -pe -r -sky exchange -ss My "[ファイル名].cer" -sv "[ファイル名].pvk" 例: C:\tmp>makecert.exe -a sha1 -b 11/01/2013 -len 2048 -n "CN=SSLCert" -pe -r -sky exchange -ss My "SSLCert-mtdevcs01.cer" -sv "SSLCert-mtdevcs01.pvk"
pvk2pfx.exe -pvk "[ファイル名].pvk" -pi "[パスワード]" -spc "[ファイル名].cer" -pfx "[ファイル 名].pfx" 例: C:\tmp>pvk2pfx.exe -pvk "SSLCert-mtdevcs01.pvk" -pi "Mel0dyNels0n" -spc "SSLCert-mtdevcs01.cer" -pfx "SSLCert-mtdevcs01.pfx"
証明書のアップロード
- Azure 管理ポータルにサインインします。
- 左メニューから [クラウド サービス] を選択し、一覧を表示します。
- 証明書をアップロードしたいクラウド サービスを選択します。選択すると、クイック スタート画面が表示されます。
- [証明書] リンクをクリックします。
- 下メニューから [アップロード] をクリックします。
- モーダルウィンドウが表示されます。以下の情報を記録しておいてください。
- ファイル
- アップロードする証明書ファイル (拡張子 .pfx) を指定
- パスワード
- パスワードを入力
- 入力した後に、右下のチェックをクリックします。
- 証明書がアップロードされました。
- 証明書の一覧で、サムプリントの値を記録しておいてください。
RDP 用パスワードの暗号化
- コマンドプロンプトを起動します。
- 以下のコマンドを実行します。
csencrypt.exe Encrypt-Password -CopyToClipboard -Thumbprint [サービス証明書のサムプリント値] 例: C:\tmp>csencrypt.exe Encrypt-Password -CopyToClipboard -Thumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
作成された暗号化パスワードは、クリップボードにコピーされます。出力されたパスワードには不要な改行文字が含まれています。改行文字を削除した暗号化パスワードを記録しておいてください。
ServiceDefinition.csdef の修正
ServiceDefinition.csdef をエディタで開き、ご利用の環境に合わせて、適宜修正を行います。
ServiceDefinition- name
- 任意の英数でサービス名を指定します
- name="PERL_MSI"
- Deploy Kit に同梱されている Perl とは別のバージョンの Perl をインストールする場合に、インストーラーのファイル名を指定します。通常はそのままで構いません。ここで指定したファイルは、tools BOLB ストレージにアップロードされている必要があります。
ServiceConfiguration.Cloud.cscfg の修正
ServiceConfiguration.Cloud.cscfg をエディタで開き、ご利用の環境に合わせて、適宜修正を行います。
- serviceName
- ServiceDefinition.csdef で設定した name 属性の値と同じ値を設定します。
- osFamily
- クラウドサービスに適用するゲスト OS の種別を指定します。
通常、osFamily は "4" とします。 - osVersion
- ゲスト OS のリリースバージョンを指定します。自動更新させるため、"*" とします。
- MovableType.Role
- Movable Type のインストールモードについて、通常は [cms] を指定します。異なる値を指定することで、独自のインストールモードを用意できます。
- MovableType.AppsURI
- Movable Type をアップロードした BLOB ストレージの URI を指定します。
- MovableType.DataURI
- スケジュールタスクで実行するバックアップ先の BLOB ストレージの URI を指定します。
- MovableType.ToolURI
- Movable Type 以外のソフトウェアをアップロードした BLOB ストレージの URI を指定します。
- MovableType.AppsKey
- Movable Type をアップロードした BLOB ストレージのプライマリアクセスキーを指定します。
- MovableType.DataKey
- スケジュールタスクで実行するバックアップ先の BLOB ストレージのプライマリ アクセス キーを指定します。
- MovableType.ToolKey
- MovableType.ToolURI で指定したBLOB ストレージのプライマリ アクセス キーを指定します。
- MovableType.AppPath
- Movable Type のインストール先ディレクトリ名を指定します。通常はそのままご利用ください。
- MovableType.DataPath
- Movable Type が利用するデータディレクトリを指定します。通常はそのままご利用ください。
- MovableType.SubDirectories
- Movable Type のデータディレクトリに作成するサブディレクトリをカンマ区切りで指定します。通常はそのままご利用ください。
- MovableType.Domain
- Movable Type がインストールされるドメインを指定します。
- MovableType.AdminName
- システム管理者名を指定します。スタートアップ時に upgrade ツールを実行する際に利用します。
- MovableType.NotifyTo.Deploy
- デプロイ完了時に通知するメールの送信先を指定します。
- Perl.Modules
- スタートアップ時に追加インストールする Perl モジュールを、カンマ区切りで指定します。
- MovableType.ODBCDriver
- Movable Type で利用するデータベースサーバーに接続するためのドライバーを指定します。通常はそのままご利用ください。
- MovableType.Database
- Movable Type で利用するデータベース名を指定します。
- MovableType.DBHost
- Movable Type で利用するデータベースサーバーを指定します。
- MovableType.DBUser
- Movable Type で利用するデータベースにアクセスするためのユーザー名を指定します。
- MovableType.DBPassword
- Movable Type で利用するデータベースにアクセスするためのパスワードを指定します。
- MovableType.EmailAddressMain
- Movable Type から送信するメールの送信元 (メールアドレス) を指定します。
- MovableType.MailTransfer
- Movable Type から送信するメールの送信手段を指定します。通常はそのままご利用ください。
- MovableType.SMTPAuth
- Movable Type から送信するメールを処理するメールサーバーの認証情報 (暗号方式) を指定します。
- MovableType.SMTPServer
- Movable Type から送信するメールを処理するメールサーバーの接続情報 (サーバー名) を指定します。
- MovableType.SMTPPort
- Movable Type から送信するメールを処理するメールサーバーの接続情報 (通信ポート) を指定します。
- MovableType.SMTPUser
- Movable Type から送信するメールを処理するメールサーバーの認証情報 (ユーザー名) を指定します。
- MovableType.SMTPPassword
- Movable Type から送信するメールを処理するメールサーバーの認証情報 (パスワード) を指定します。
- MovableType.DefaultLanguage
- Movable Type の管理画面の言語の初期値を指定します。通常はそのままご利用ください。
- MovableType.AdditionalDirectives
- mt-config.cgi に追加する環境変数を [環境変数名] [値] の形式で指定します。複数指定する場合は、カンマ区切りで指定します。環境変数の値として、カンマを含む場合は指定できません。
- MovableType.CGI
- 通常の CGI で動作するスクリプトを、カンマ区切りで指定します。
- MovableType.FastCGI
- FastCGI で動作するスクリプトを、カンマ区切りで指定します。
- Microsoft.IIS.BasicAuthCredentials
- ベーシック認証を設定する場合、[ユーザー名]:[パスワード] の形式で指定します。複数の場合は、カンマ区切りで指定します。
- Microsoft.IIS.ForceSSL
- Movable Type へのアクセスにおいて、強制的に SSL を有効にする場合は [1] を指定してください。初期値は [0] です。
- Microsoft.IIS.IPSecurity
- 特定の IP アドレスからのアクセスのみ許可する場合は、許可する IP アドレスをカンマ区切りで指定します。
- Microsoft.Tasks.Backup.Schedule
- スケジュールタスク (バックアップ) の実行タイミングについて、[Daily] か [Minute] で指定します。初期値は [Daily] です。
- Microsoft.Tasks.Backup.StartTime
- スケジュールタスク (バックアップ) の開始時刻を、[HH:mm:ss] の形式で指定します。UTC であることに注意してください。
- Microsoft.Tasks.Backup.TimePeriod
- スケジュールタスク (バックアップ) の実施間隔を指定します。実行タイミングが Daily の場合は無効です。
- Microsoft.Tasks.RPT.StartTime
- スケジュールタスク (run-periodic-tasks) の開始時刻を、hh:mm:ss の形式で指定します。UTC であることに注意してください。
- Microsoft.Tasks.RPT.TimePeriod
- スケジュールタスク (run-periodic-tasks) の実施間隔を指定します。
- Microsoft.Tasks.AzcopyLogs.StartTime
- スケジュールタスク (AzCopy Log) の開始時刻を、[HH:mm:ss] の形式で指定します。UTC であることに注意してください。
- Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword
- RDP 接続時に利用する暗号化パスワードです。
- Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration
- RDP 接続用アカウントの有効期限を、ISO 8601 (例: 2011-12-17T23:59:59.0000000-00:00) 形式で指定します。
- Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername
- RDP 接続時に利用するユーザー名を指定します。
- Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled
- RDP 接続を有効にする場合、[true] を指定します。
- Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled
- RDP 接続を有効にする場合、[true] を指定します。
パッケージの作成
- [Microsoft Azure PowerShell] を起動します。
- ServiceDefinition.csdef があるディレクトリに移動します。そのディレクトリには、MovableTypeOnAzure ディレクトリと ServiceConfiguration.cloud.cscfg があることを確認しておいてください。
- [Save-AzureServiceProjectPackage] を実行します。正常にパッケージが作成されると、cloud_package.cspkg というファイルが作成されています。
パッケージのアップロード
- Azure 管理ポータルにサインインします。
- 左メニューから [クラウド サービス] を選択すると、指定したサブスクリプションで利用可能なクラウドサービスの一覧が表示されます。
- パッケージをアップロードしたいサービスを選択します。
- [インスタンス] タブをクリックします。
- 次に [運用] もしくは [ステージング] タブをクリックします。新規にアップロードする場合は [運用] を選択します。
- 下メニューから [アップロード] ボタンをクリックすると、モーダルウィンドウが表示されます。必要な情報を入力します。
- デプロイ ラベル
- バージョン管理などに利用できます。ユニークな名称を入力
- パッケージ
- 作成したパッケージを指定
- 構成
- Service.Configuration.cloud.cscfg を指定
- 1 つ以上のロールに単一のインスタンスが含まれている場合でもデプロイします
- 有効
- デプロイの開始
- 有効
- 入力した後に、右下のチェックをクリックします。あとは、管理ポータルで状況を確認します。Running 状態になれば、RDP 接続できます。