Sitecore Publishing Service を使ってみる パート1 インストールと構成

samatsu 9/15/2016 2714 N/A Sitecore Tools

Sitecore 8.2 から、パブリッシュを高速化するためのオプション機能として、Publishing Serviceがリリースされました。今回は、Publishihng Serviceのインストールと構成をしてみます。次のパート2で、実際に使ってみます。

今回は、スタンドアロン環境にSitecore 8.2がインストールされた環境にPublishing Serviceもインストールして使ってみます。

検証環境は次の通りです

  • Windows Server 2012 R2 単一環境
  • Sitecore 8.2
  • Sitecore Publishing Service 1.1 Initial Release
  • .NET Core 1.0.1 (Windows Hosting)

Publishing Serviceのモジュール本体やインストールガイドは次のURLからダウンロードできます。

Sitecore Publishing Service 1.1 Initial Release
https://dev.sitecore.net/Downloads/Sitecore_Publishing_Service/11/Sitecore_Publishing_Service_11_Initial_Release.aspx

1.必要なファイルをダウンロード

Publishing Serviceは .NET Coreで実装されています。今回は、IIS上にASP.NET Coreで実装されたサイトをホストするように、Publishing Service を構成します。まずは、.NET Coreをインストールします。.NET Coreのダウンロードページにアクセスして、Windows(Server Hosting)用の .NET Core Installer をダウンロードします。記事作成時点でファイル名は DotNetCore.1.0.1-WindowsHosting.exe でした。

Publishing ServiceもSitecoreのサイトからダウンロードします。Sitecore Publishing Service 1.1 Initial Release のページにアクセスして、Downloads セクションから、Sitecore Publishing Service Host(記事作成時点でSitecore Publishing Service Host 1.1.0.zip)とSitecore Publishing Serviceパッケージ(記事作成時点でSitecore Publishing Service 1.8.0.zip)をダウンロードします。

本記事では、シンプルな環境にインストールして動作を確認するだけでなすので、実際に環境を実装するときは、同じページのInstallation Guide もダウンロードしてソフトウェア要件や、セットアップ手順を必ず確認するようにしてください。

2. .NET Coreのインストール

ダウンロードしたインストーラを起動するだけでOKです。インストーラーを起動するとした下図のようなウィザードが起動します。使用許諾に同意して、 [Install] をクリックします。

特に問題なく、インストールは完了するはずです。[Close]をクリックしてインストールを終了します。

IISRESETでIISを再起動して.NET Coreのインストール完了です。

3. Sitecore Publishing Service のインストールと構成

3.1 インストール

IIS上にPublishing Serviceで使用するサイトをセットアップします。インストールガイドでは、マニュアル(手動)でセットアップする手順とスクリプトを使用する手順の2つが紹介されています。スクリプトが実施している内容を理解するためにも今回は手動でセットアップしていくことにします。

ダウンロードしたSitecore Publishing Service Host 1.1.0.zip を展開して C:\inetpub\wwwroot\sitecorepublishing に配置します。

IISマネージャーを起動して先ほど配置したフォルダをルートとするサイトを追加します。Installation Guideの例に従って sitecore.publishing というサイト名を作成しました。今回検証している環境は複数のIISのサイトがセットアップされていたので、ホスト名のテキストボックスにも sitecore.publishing と入力してホスト名を使用するバインドの設定を行っています。

CMサーバーから http://sitecore.publishing/ でアクセスできる必要があります。必要に応じてCMサーバーのhostsファイルに次のようなエントリを追加してください。
127.0.0.1    sitecore.publishing

作成されたアプリケーションプール(今回はsitecore.publishing)を右クリック -> 基本設定 をクリックします。.NET CLR バージョンを 'マネージコードなし' にします。

ガイドの記載がありますが、アプリケーションプールの実行ユーザーは、物理パスでしてしたフォルダ配下のファイルに対する に 読み取り、書き込み、実行 権限が必要です。

3.2 構成

Sitecore Publishing サービスの構成ファイルの変更とDBのスキーマ情報のアップグレードを行います。まず、パブリッシュで使用するSitecoreインスタンスの Core, Master, Web データベースへの接続情報を構成ファイルに追加します。 sitecorepublishing\config\global フォルダ配下にxmlファイルを作成します。今回は、下図のように sc.connectionstrings.xml ファイルを作成しました。

ファイルにmaster,web,coreデータベースへの接続文字列を追加します。資格情報やDB名などの接続文字列は環境に合わせて適宜変更してください。接続文字列はMARS(MultiActiveResultSets)を有効化する設定を必ず含めてください。

<Settings>
  <Sitecore>
    <Publishing>
      <ConnectionStrings>
        <Master>user id=[username];password=[password];Data Source=(local);Database=v82u0Sitecore_Master;MultipleActiveResultSets=True;</Master>
        <Web>user id=[username];password=[password];Data Source=(local);Database=v82u0Sitecore_Web;MultipleActiveResultSets=True;</Web>
        <Core>user id=[username];password=[password];Data Source=(local);Database=v82u0Sitecore_Core;MultipleActiveResultSets=True;</Core>
      </ConnectionStrings>
    </Publishing>
  </Sitecore>
</Settings>

データベースへの接続情報を登録したので、スキーマツールを使用してスキーマ情報をアップグレードします。

コマンドプロンプトを起動し、sitecorepublishingフォルダーに移動して次のコマンドを実行します。

schematool.exe upgrade 

コマンドが正常終了すれば、下図と似たようなメッセージが表示されます。

core,master,webデータベースを見ると __PublishingSchema テーブルが存在することを確認できます。

FireFoxなどのブラウザーを起動して、次の http://sitecore.publishing/api/publishing/operations/status ニア癖視して、下図のように {"status":0}というメッセージが表示されたら正常にセットアップできています。IEで確認するとjsonファイルがダウンロードされますが、中身が同様のjsonデータになっています。

4. パッケージのインストールと構成

CMサーバー(CM、CDサーバーが分離した環境の場合はCDサーバーにも)にパッケージをインストールします。CM環境にアクセスして、パッケージインストールウィザードを起動し、ダウンロードしたパッケージファイル(今回はSitecore Publishing Service 1.8.0.zip)をインストールしてください。

特に問題なくインストールが完了するはずです。インストール後、App_Config\Includeフォルダにある、 Sitecore.Publishing.Service.configを編集します。

PublishingServiceUrlRoot setting要素をセットアップしたPublishing Servicveのサイトに置き換えます。今回は次のようになります。

<setting name="PublishingServiceUrlRoot">http://sitecore.publishing/</setting>

今回はconfigファイルを直接編集しましたが、実際の運用ではIncludeフォルダにパッチファイルを作成して設定を変更するようにして下さい!

サイトコアの管理者以外で、Full Publish を行えるようにするには(現時点の日本語訳:完全なパブリッシュ)、セキュリティロールを同ファイルの次の<allowedFullPUblishRoles>に追加する必要があります。

<publishing.service>
  <api>
    <services>
      <allowedFullPublishRoles>
        <!--This is a list of the roles that are able to perform a Full Re-publish-->
        <!--<role>sitecore\Sitecore Client Publishing</role>-->
      </allowedFullPublishRoles>
    </services>
  </api>
</publishing.service>

こちらの設定も configファイルに直接ロールを追加するのではなくInclude フォルダのパッチの機能をつかって許可するセキュリティロールを指定するようにしてください。

以上でとりあえず設定完了です。使用例は次のパート2を参照してください。

詳細なチューニング方法などはインストールガイドを見るようにしてください。