1. Managed Cloudの構成

チュートリアル: SXAモジュールの追加

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

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

Sitecore Experience Accelerator (SXA) は、Webサイトの作成を高速化し、さまざまなサイトでコンポーネント、レイアウト、テンプレートを再利用するために開発されたSitecoreモジュールです。SXAモジュールを追加するには、特定のDockerイメージを作成してAzure Container Registry (ACR) にプッシュし、SearchStax SolrコンテナとMssqlコンテナを実行する前にアプリケーション リポジトリで変更する必要があります。

このチュートリアルでは、次の方法について説明します。

  • Dockerイメージを準備する

  • 画像をACRにプッシュする

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

  • Searchstax-solr-init-sxa-spe-containerを実行します。

    • ディザスタリカバリなし。

    • ディザスタリカバリで。

  • Mssql-init-sxa-speコンテナーを実行します。

    • ディザスタリカバリなし。

    • ディザスタリカバリで。

Dockerイメージを準備する

カスタムSXAモジュールの作成方法については、「 Sitecoreモジュールの追加 」トピックを参照してください。

SXAで作業できるようにするには、次のイメージを作成する必要があります。

  • cm-sxa-spe

  • cd-sxa-spe

  • Mssql-init-sxa-spe

  • Searchstax-solr-init-sxa-spe

    メモ

    sxaのsolr-initイメージをビルドする場合は、基本イメージがSearchstaxで使用するように設計されていることを確認してください。Sitecoreイメージ リポジトリでは、これらのイメージには -searchstaxで終わるタグがあります (例: sitecore-xp1-solr-init-searchstax)。

イメージをAzure Container Registryにプッシュする

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

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

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

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

  • アプリケーション リポジトリconfig/docker-imagesに移動し、次のようにdocker-images.jsonを編集します。

    • cmイメージをcm-sxa-speに置き換えます。

    • cdイメージをcd-sxa-speに置き換えます。

    • Mssql-init-sxa-speプロパティを追加します。

    • Searchstax-solr-init-sxa-speプロパティを追加します。

      Add the Searchstax-solr-init-sxa-spe property to the Application repository.

災害復旧なしでSearchstax-solr-init-sxa-speコンテナを実行する

Searchstax-solr-init-sxa-speコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\ に移動し、Searchstax-solr-init-sxa-speジョブ ファイルをsearchstax-solr-init-sxa-spe.yamlという名前で追加します。例えば:

    ---
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: searchstax-solr-init-sxa-spe
    spec:
      template:
        spec:
          nodeSelector:
            kubernetes.io/os: windows
          imagePullSecrets:
            - name: sitecore-docker-registry
          initContainers:
          - name: wait-solr
            image: "{{ docker_images.external.windowsservercore }}"
            command: ["pwsh"]
            args: ["-Command", "do { Start-Sleep -Seconds 3 } until ((tnc $env:SERVER -port $env:PORT).TcpTestSucceeded)"]
            env:
            - name: SERVER
              value: "{{ solr_fqdn }}"
            - name: PORT
              value: "{{ solr_port }}"
          containers:
          - name: solr-init
            image: "{{ docker_images.sitecore.solr_init_sxa_spe }}"
            env:
              - name: SEARCH_STAX_APIKEY
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr-searchstax
                    key: sitecore-searchstax-apikey.txt
              - name: SEARCH_STAX_ACCOUNT_NAME
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr-searchstax
                    key: sitecore-searchstax-account-name.txt
              - name: SEARCH_STAX_DEPLOYMENT_UID
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr-searchstax
                    key: sitecore-searchstax-deployment-uid.txt
              - name: SITECORE_SOLR_CONNECTION_STRING
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr
                    key: sitecore-solr-connection-string.txt
              - name: SOLR_CORE_PREFIX_NAME
                value: sitecore
              - name: SOLR_COLLECTIONS_TO_DEPLOY
                value: sxa
          restartPolicy: Never
      backoffLimit: 5
  2. Searchstax-solr-init-sxa-speジョブを実行するAnsibleタスクを追加するには、roles\sitecore-{topology}\tasks\init.yamlに移動し、ファイルの最後に次のスクリプトを追加します。

    - name: Execute sxa-spe solr-init job
      k8s:
        apply: true
        namespace: "{{ solution_id }}"
        state: present
        definition: "{{ lookup('template', 'searchstax-solr-init-sxa-spe.yaml') }}"
    
    - name: 'Wait - SXA-SPE Solr-init job'
      k8s_info:
        kind: Job
        name: searchstax-solr-init-sxa-spe
        namespace: "{{ solution_id }}"
      register: sxa_spe_solr_init_result
      until: (sxa_spe_solr_init_result.resources[0].status.conditions[0].type | default('')) == 'Complete'
      retries: 60
      delay: 60
    
    - name: Get all SXA-SPE Solr completed pods
      k8s_info:
        kind: Pod
        namespace: "{{ solution_id }}"
        label_selectors:
          - job-name = searchstax-solr-init-sxa-spe
      no_log: true
      register: solr_sxa_spe_pod_list
    
    - name: Remove SXA-SPE Solr job's pods
      k8s:
        kind: Pod
        name: "{{ item.metadata.name }}"
        namespace: "{{ solution_id }}"
        state: absent
      no_log: true
      with_items: "{{ solr_sxa_spe_pod_list.resources }}"
  3. アプリケーション パイプラインを実行します。

災害復旧を使用してSearchstax-solr-init-sxa-speコンテナを実行します

Searchstax-solr-init-sxa-speコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\ に移動し、Searchstax-solr-init-sxa-speジョブ ファイルをsearchstax-solr-init-sxa-spe.yamlという名前で追加します。例えば:

    ---
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: searchstax-solr-init-sxa-spe
    spec:
      template:
        spec:
          nodeSelector:
            kubernetes.io/os: windows
          imagePullSecrets:
            - name: sitecore-docker-registry
          initContainers:
          - name: wait-solr
            image: "{{ docker_images.external.windowsservercore }}"
            command: ["pwsh"]
            args: ["-Command", "do { Start-Sleep -Seconds 3 } until ((tnc $env:SERVER -port $env:PORT).TcpTestSucceeded)"]
            env:
            - name: SERVER
              value: "{{ solr_fqdn }}"
            - name: PORT
              value: "{{ solr_port }}"
          containers:
          - name: solr-init
            image: "{{ docker_images.sitecore.solr_init_sxa_spe }}"
            env:
              - name: SEARCH_STAX_APIKEY
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr-searchstax
                    key: sitecore-searchstax-apikey.txt
              - name: SEARCH_STAX_ACCOUNT_NAME
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr-searchstax
                    key: sitecore-searchstax-account-name.txt
              - name: SEARCH_STAX_DEPLOYMENT_UID
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr-searchstax
                    key: sitecore-searchstax-deployment-uid.txt
              - name: SITECORE_SOLR_CONNECTION_STRING
                valueFrom:
                  secretKeyRef:
                    name: sitecore-solr
                    key: sitecore-solr-connection-string.txt
              - name: SOLR_CORE_PREFIX_NAME
                value: sitecore
              - name: SOLR_COLLECTIONS_TO_DEPLOY
                value: sxa
          restartPolicy: Never
      backoffLimit: 5
  2. カスタムinit.yamlファイル( custom-init.yamlなど)を作成し、/roles/sitecore-{topology}/tasksフォルダの下に配置します。

  3. Searchstax-solr-init-sxa-speジョブを追加するには、次のストリップをファイルに追加します。

    - name: Execute sxa-spe solr-init job
      k8s:
        apply: true
        namespace: "{{ solution_id }}"
        state: present
        definition: "{{ lookup('template', 'searchstax-solr-init-sxa-spe.yaml') }}"
    
    - name: 'Wait - SXA-SPE Solr-init job'
      k8s_info:
        kind: Job
        name: searchstax-solr-init-sxa-spe
        namespace: "{{ solution_id }}"
      register: sxa_spe_solr_init_result
      until: (sxa_spe_solr_init_result.resources[0].status.conditions[0].type | default('')) == 'Complete'
      retries: 60
      delay: 60
    
    - name: Get all SXA-SPE Solr completed pods
      k8s_info:
        kind: Pod
        namespace: "{{ solution_id }}"
        label_selectors:
          - job-name = searchstax-solr-init-sxa-spe
      no_log: true
      register: solr_sxa_spe_pod_list
    
    - name: Remove SXA-SPE Solr job's pods
      k8s:
        kind: Pod
        name: "{{ item.metadata.name }}"
        namespace: "{{ solution_id }}"
        state: absent
      no_log: true
      with_items: "{{ solr_sxa_spe_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ロールをコメントアウトします。

ディザスター リカバリーなしでMssql-init-sxa-speコンテナーを実行する

Mssql-init-sxa-speコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\ に移動し、mssql-init-sxa-speジョブ ファイルをmssql-init-sxa-spe.yamlという名前で追加します。例えば:

    apiVersion: batch/v1
    kind: Job
    metadata:
     name: sxa-spe-mssql-init
    spec:
      template:
        spec:
          nodeSelector:
            kubernetes.io/os: windows
          imagePullSecrets:
            - name: sitecore-docker-registry
          containers:
          - name: mssql-init
            image: "{{ docker_images.sitecore.mssql_init_sxa_spe }}"
            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: spe,sxa
          restartPolicy: Never
      backoffLimit: 5
  2. mssql-init-sxa-speジョブを実行するAnsibleタスクを追加するには、roles\sitecore-{topology}\tasks\init.yamlに移動し、ファイルの最後に次のスクリプトを追加します。

    - name: Execute sxa-spe mssql-init jobs
      k8s:
        apply: true
        namespace: "{{ solution_id }}"
        state: present
        definition: "{{ lookup('template', 'mssql-init-sxa-spe.yaml') }}"
    
    - name: 'Wait - SXA-SPE Mssql-init job'
      k8s_info:
        kind: Job
        name: sxa-spe-mssql-init
        namespace: "{{ solution_id }}"
      register: sxa_spe_mssql_init_result
      until: (sxa_spe_mssql_init_result.resources[0].status.conditions[0].type | default('')) == 'Complete'
      retries: 60
      delay: 60
    
    - name: Get all SXA-SPE Mssql completed pods
      k8s_info:
        kind: Pod
        namespace: "{{ solution_id }}"
        label_selectors:
          - job-name = sxa-spe-mssql-init
      no_log: true
      register: sxa_spe_mssql_pod_list
    
    - name: Remove SXA-SPE Mssql job's pods
      k8s:
        kind: Pod
        name: "{{ item.metadata.name }}"
        namespace: "{{ solution_id }}"
        state: absent
      no_log: true
      with_items: "{{ sxa_spe_mssql_pod_list.resources }}"
  3. アプリケーション パイプラインを実行します。

ディザスター リカバリーを使用してMssql-init-sxa-speコンテナーを実行する

Mssql-init-sxa-speコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\ に移動し、mssql-init-sxa-speジョブ ファイルをmssql-init-sxa-spe.yamlという名前で追加します。例えば:

    apiVersion: batch/v1
    kind: Job
    metadata:
     name: sxa-spe-mssql-init
    spec:
      template:
        spec:
          nodeSelector:
            kubernetes.io/os: windows
          imagePullSecrets:
            - name: sitecore-docker-registry
          containers:
          - name: mssql-init
            image: "{{ docker_images.sitecore.mssql_init_sxa_spe }}"
            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: spe,sxa
          restartPolicy: Never
      backoffLimit: 5
  2. カスタムinit.yamlファイル( custom-init.yamlなど)を作成し、/roles/sitecore-{topology}/tasksフォルダーの下に配置します。

  3. mssql-init-sxa-speジョブをファイルに追加するには、次のコードを追加します。

    - name: Execute sxa-spe mssql-init jobs
      k8s:
        apply: true
        namespace: "{{ solution_id }}"
        state: present
        definition: "{{ lookup('template', 'mssql-init-sxa-spe.yaml') }}"
    
    - name: 'Wait - SXA-SPE Mssql-init job'
      k8s_info:
        kind: Job
        name: sxa-spe-mssql-init
        namespace: "{{ solution_id }}"
      register: sxa_spe_mssql_init_result
      until: (sxa_spe_mssql_init_result.resources[0].status.conditions[0].type | default('')) == 'Complete'
      retries: 60
      delay: 60
    
    - name: Get all SXA-SPE Mssql completed pods
      k8s_info:
        kind: Pod
        namespace: "{{ solution_id }}"
        label_selectors:
          - job-name = sxa-spe-mssql-init
      no_log: true
      register: sxa_spe_mssql_pod_list
    
    - name: Remove SXA-SPE Mssql job's pods
      k8s:
        kind: Pod
        name: "{{ item.metadata.name }}"
        namespace: "{{ solution_id }}"
        state: absent
      no_log: true
      with_items: "{{ sxa_spe_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ロールをコメントアウトします。

この記事を改善するための提案がある場合は、 お知らせください!