1. Managed Cloudの設定

ウォークスルー

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Publishing Service(SPS)モジュールは、オプトイン方式のPublishing Serviceとの統合を提供し、大規模なSitecore環境での高性能公開をサポートします。クラウドベースのソリューションでコンテナとしてSPSを展開するには、モジュールとサービスの両方をSitecoreソリューションの上に展開する必要があります。

このウォークスルーでは、既に導入されたマネージドクラウドコンテナ環境の上にSPSモジュールを展開する方法を説明します。以下の方法を説明します:

  • Dockerイメージを準備してください
  • イメージをAzureコンテナレジストリ(ACR)にプッシュしてください。
  • Kubernetes仕様ファイルをダウンロードしてください
  • 基本のSPS Kubernetes設定ファイルをコピーしてください
  • SPS構成オーバーレイを定義します
  • アプリケーションリポジトリ内のイメージを変更する
  • mssql_init_spsコンテナを動かす:
    • 災害復旧なしで。
    • 災害復旧で。
  • SPSコンポーネントを有効にする
  • アプリケーションの変更を適用してください

Dockerイメージを準備してください

Dockerイメージの準備:

  • Sitecore CM、CD、MSSQL-INIT のカスタムイメージを準備し、SPSアセットイメージからすべてのリソース(ファイル、データベースなど)を含める必要があります。アセットイメージは以下の通りです:
    • sxp/modules/sitecore-sps-integration-xm1-assets
    • sxp/modules/sitecore-sps-integration-xp1-assets

展開するトポロジーには必ずアセットイメージを使用しなければなりません。アセットイメージの適用方法の詳細については、以下をご覧ください: Add Sitecore modulesおよびSitecoreモジュールのリファレンスを参照してください。

対応するカスタムイメージの構築方法については、Sitecore Publishing Service Container Deployment Guideドキュメントを参照してください。

イメージをAzureコンテナレジストリ(ACR)にプッシュしてください。

画像をACRにプッシュするには:

  • PowerShellでdocker pushコマンドを実行します。すべてのSPSカスタムイメージ(CM、CD、MSSQL-INIT)を事前にプロビジョニングされたACRにプッシュしなければなりません: {infrastructure_id}acr。

Kubernetes仕様ファイルをダウンロードしてください

GitHubのSitecoreコンテナ展開リポジトリで、以下のファイルを見つけてダウンロードしてください:

  • SitecorePublishingServiceContainerDeployment.10.1.0.{latest available build number}.zip

このファイルにはSitecore Publishing Service Kubernetes Sitecore XP 10.1.0の設定ファイルが含まれています。パッケージをローカルで解凍してください。

基本のSPS Kubernetes設定ファイルをコピーしてください

基本のSPS Kubernetesファイルをコピーするには:

  1. アプリケーションリポジトリフォルダに移動し、spsフォルダを作成してください: roles\sitecore-{topology}\bases\components\sps

  2. 以下のspsの基本設定ファイルをフォルダにコピーしてください:

    • \k8s\ltsc2019\sps\patch-sps.yaml
    • \k8s\ltsc2019\sps\sps.yaml
    • \k8s\ltsc2019\overrides\{topology}\patch-cm.sps.yaml
  3. 先ほど作成したspsフォルダ内に、以下の内容のkustomization.yamlファイルを作成します。

    apiVersion: kustomize.config.k8s.io/v1alpha1 kind: Component

    resources:

    • sps.yaml

    patchesStrategicMerge:

    • patch-sps.yaml
    • patch-cm.sps.yaml

SPS構成オーバーレイを定義します

SPSモジュール構成をManaged Cloud Containers環境と統合するには、SPSの基本構成の上にオーバーレイ層を定義する必要があります。この抽象化により、将来のリリース向けにSPSモジュールアップグレード時のSPSベース構成のアップグレードプロセスが簡素化されます。

オーバーレイを定義し実行するために:

  1. 以下の内容でroles\sitecore-{topology}\overlays\components\sps\kustomization.yamlファイルを作成してください:


    apiVersion: kustomize.config.k8s.io/v1beta1

    kind: Kustomization

    resources:

    - sitecore-roles.yaml

    patchesStrategicMerge:

    - sps.yaml

  2. 以下の内容でroles\sitecore-{topology}\overlays\components\sps\sps.yamlファイルを作成してください:


    apiVersion: apps/v1 kind: Deployment metadata: name: sps spec: progressDeadlineSeconds: 3600 template: spec: containers:

    • name: sitecore-sps image: "{{ docker_images.sitecore.sps }}"
  3. オーバーレイを実行するには、roles\sitecore-{topology}\tasks\main.yamlに移動してRun Kustomization for {topology} タスクの隣に追加してください。

    以下の例はXP位相を説明します。XMの場合、sitecore-xpをsitecore-xmに置き換える必要があります。

    • name: Copy Sitecore roles configuration into SPS overlay template: src: roles/sitecore-xp/templates/sitecore-roles.yaml dest: roles/sitecore-xp/overlays/components/sps/sitecore-roles.yaml

    • name: Run Kustomization for SPS integration shell: | kustomize build roles/sitecore-xp/overlays/components/sps > roles/sitecore-xp/templates/sitecore-roles.yaml

アプリケーションリポジトリ内のイメージを変更する

これでSPS固有のイメージと2つの新しいプロパティをアプリケーションリポジトリに追加できます。

アプリケーションリポジトリ内のイメージを変更するには:

  • アプリケーションリポジトリの config/docker-images に移動し、 docker-images.json ファイルを編集して以下の変更を行います。
    • cm画像をcm-spsに置き換えてください。
    • CDイメージをCD-SPに置き換えてください。
    • mssql_init_spsプロパティを追加してください。
    • spsプロパティを追加し、あなたのSitecoreバージョンに対応するSPSサービスの公開画像を指し示します。

mssql_init_spsコンテナを災害復旧なしで実行してください

mssql-init-spsコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\に移動し、以下の内容のmssql-init-sps.yamlジョブファイルを追加します。

    apiVersion: batch/v1 kind: Job metadata: name: sps-mssql-init spec: template: spec: nodeSelector: kubernetes.io/os: windows imagePullSecrets:

    • name: sitecore-docker-registry containers:
    • name: mssql-init-sps image: "{{ docker_images.sitecore.mssql_init_sps }}" env:
    • name: sitecore_admin_password valueFrom: secretKeyRef: name: sitecore-admin key: sitecore-adminpassword.txt
    • name: SQL_ADMIN_PASSWORD valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databasepassword.txt
    • name: SQL_ADMIN_LOGIN valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseusername.txt
    • name: SQL_SERVER valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseservername.txt
    • name: SQL_ELASTIC_POOL_NAME valueFrom: secretKeyRef: name: sitecore-database key: sitecore-database-elastic-pool-name.txt
    • name: DATABASES_TO_DEPLOY value: sps restartPolicy: Never backoffLimit: 5
  2. mssql-init-spsジョブを実行するためのAnsibleタスクを追加します。roles\sitecore-{topology}\tasks\init.yamlに移動し、ファイルの最後に以下のスクリプトを追加します。

    • name: Execute SPS mssql-init jobs k8s: apply: true namespace: "{{ solution_id }}" state: present definition: "{{ lookup('template', 'mssql-init-sps.yaml') }}"

    • name: 'Wait - SPS Mssql-init job' k8s_info: kind: Job name: sps-mssql-init namespace: "{{ solution_id }}" register: sps_mssql_init_result un-til: (sps_mssql_init_result.resources0.status.conditions0.type | default('')) == 'Complete' retries: 60 delay: 60

    • name: Get all SPS Mssql completed pods k8s_info: kind: Pod namespace: "{{ solution_id }}" label_selectors:

    • job-name = sps-mssql-init no_log: true register: sps_mssql_pod_list

    • name: Remove SPS Mssql job's pods k8s: kind: Pod name: "{{ item.metadata.name }}" namespace: "{{ solution_id }}" state: absent no_log: true with_items: "{{ sps_mssql_pod_list.resources }}"

  3. アプリケーションパイプラインを実行してください。

mssql_init_spsコンテナを災害復旧で実行します

mssql-init-spsコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\に移動し、以下の内容のmssql-init-sps.yamlジョブファイルを追加します。

    apiVersion: batch/v1 kind: Job metadata: name: sps-mssql-init spec: template: spec: nodeSelector: kubernetes.io/os: windows imagePullSecrets:

    • name: sitecore-docker-registry containers:
    • name: mssql-init-sps image: "{{ docker_images.sitecore.mssql_init_sps }}" env:
    • name: sitecore_admin_password valueFrom: secretKeyRef: name: sitecore-admin key: sitecore-adminpassword.txt
    • name: SQL_ADMIN_PASSWORD valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databasepassword.txt
    • name: SQL_ADMIN_LOGIN valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseusername.txt
    • name: SQL_SERVER valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseservername.txt
    • name: SQL_ELASTIC_POOL_NAME valueFrom: secretKeyRef: name: sitecore-database key: sitecore-database-elastic-pool-name.txt
    • name: DATABASES_TO_DEPLOY value: sps restartPolicy: Never backoffLimit: 5
  2. 例えば、custom-init.yaml、のカスタムinit.yamlファイルを作成し、それを /roles/sitecore-{topology}/tasksフォルダに入れます。

  3. mssql-init-spsジョブをファイルに追加するには、以下のコードを追加してください:

    • name: Execute SPS mssql-init jobs k8s: apply: true namespace: "{{ solution_id }}" state: present definition: "{{ lookup('template', 'mssql-init-sps.yaml') }}"

    • name: 'Wait - SPS Mssql-init job' k8s_info: kind: Job name: sps-mssql-init namespace: "{{ solution_id }}" register: sps_mssql_init_result un-til: (sps_mssql_init_result.resources0.status.conditions0.type | default('')) == 'Complete' retries: 60 delay: 60

    • name: Get all SPS Mssql completed pods k8s_info: kind: Pod namespace: "{{ solution_id }}" label_selectors:

    • job-name = sps-mssql-init no_log: true register: sps_mssql_pod_list

    • name: Remove SPS Mssql job's pods k8s: kind: Pod name: "{{ item.metadata.name }}" namespace: "{{ solution_id }}" state: absent no_log: true with_items: "{{ sps_mssql_pod_list.resources }}"

  4. カスタムinit.yamlファイルを呼び出すには、/roles/sitecore-{topology}/tasks/main.yamlにアクセスし、ファイルの最後に以下のロールを追加してください:

    • name: Execute custom init jobs include_tasks: custom-init.yaml
    In the main.yaml file, call the init.yaml file.
  5. アプリケーションパイプラインを実行してください。

  6. カスタムジョブが正常に作成された場合は、Execute custom init jobs役にコメントを書き留めてください。

SPSコンポーネントを有効にする

SPSコンポーネントを有効にするには:

  • アプリケーションリポジトリで roles\sitecore-{topology}\overlays\platform\kustomization.yaml ファイルに移動し、 components 要素を使ってSPSモジュールのconfig scriptsフォルダを指してSPSを有効にします。

components:

  • ../../bases/components/sps

アプリケーションの変更を適用してください

アプリケーションの変更を環境に適用するには:

  • アプリケーションリポジトリへのプルリクエストを作成・完了します。
この記事を改善するための提案がある場合は、 お知らせください!