1. Managed Cloudの構成

公共サービスを追加する

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

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

Sitecoreには、Content Management、Continuous Delivery、Identity、Grafanaの4つのパブリックサービスが付属しています。また、サービスを追加することもできます。

パブリックサービスを追加するには:

  1. Azure Frontdoorを指す新しいサービス名をDNSゾーンに作成します。または、managedcloud.sitecore.comを使用する場合は、サービスリクエストを作成できます。

  2. 新しいホスト名をシークレットとしてAzure Key Vaultに追加します。シークレットの名前は、次のパターンにする必要があります。

    sitecore-{your service name}-host-name.

  3. Infrastructureリポジトリで、次の変更を加えたプルリクエストを作成します。

    • 新しいサービスでfrontdoor/backend-config.jsonファイルを拡張します。

    • 手順2で作成した新しいホスト名を持つAzure Keyvaultシークレットを取得します。

    • 新しいサービス バックエンド プールをrouting_ruleポイントするように、frontdoor/main.tfにAzure Frontdoorルーティング規則を追加します。 HTTPS-cdを例に挙げてみましょう。

    • Azure Frontdoorフロントエンド エンドポイントを追加して、frontdoor/main.tfのAzure Frontdoor側のホスト名を登録します。

      cm-frontend-endpointを例にとってみましょう。サービスをWAFで保護する場合は、cd-frontend-endpointを例に挙げてください。

  4. 変更を適用するには、プルリクエストを完了し、Frontdoorパイプラインを実行します。

  5. Infrastructureリポジトリで、次の変更を加えた2つ目のpull requestを作成します。

    • Azure FrontdoorカスタムHTTPS構成をfrontdoor/main.tfに追加します。 cm_https_configurationを例として表示します (そして、frontend_endpointsを正しいサービス エンドポイントに置き換えます)。

      メモ

      以前にトリガーされたパイプラインが完了するまで待ちます。

  6. アプリケーション リポジトリで、pull requestを作成し、次の項目を含めます。

    • 特定のアプリケーションと2つのサービスのデプロイメントを宣言します。デプロイと最初のサービスをSitecore名前空間に追加します。例として、/platform-artifacts/cm.yamlの下のCM宣言をご覧ください。

    • 2番目のサービスをNginx名前空間に追加して、NginxからSitecoreロールにトラフィックをルーティングし、サービス デプロイをサービス デプロイexternal-services-example.yaml準備します。

      ---
      kind: Service
      apiVersion: v1
      metadata:
        name: service-name-external
      spec:
        type: ExternalName
        externalName: service-name-example.{{ solution_id }}.svc.cluster.local
        ports:
        - port: 80
    • サービスのIngressを宣言し、Ingress構成用のKubernetesデプロイメントを準備しingress-config-example.yaml

      ---
      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        name: service-name-example-ingress
        annotations:
          kubernetes.io/ingress.class: "nginx"
          nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
          nginx.ingress.kubernetes.io/rewrite-target: /
      spec:
        rules:
        - host: "example.sitecore"
          http:
            paths:
            - path: /
              backend:
                serviceName: service-name-example
                servicePort: 80
    • これらのデプロイを実行するAnsibleロールを追加します。デプロイメントを実行するには、少なくとも2つのタスクが含まれている必要があります (デプロイメント・ファイルは、ロール内のtemplatesフォルダーの下にある必要があります)。

      ---
      - name: Install external services
        k8s:
          apply: true
          namespace: "nginx"
          state: present
          definition: "{{ lookup('template', 'external-services-example.yaml') }}"
          validate:
            fail_on_error: yes
      
      - name: Install ingress
        k8s:
          apply: true
          namespace: "nginx"
          state: present
          definition: "{{ lookup('template', 'ingress-config-example.yaml') }}"
          validate:
            fail_on_error: yes

      hostフィールドの値は、Infrastructureリポジトリ内の /frontdoor/backend-config.jsonファイル内のhost_headerプロパティと同じである必要があります。serviceNameプロパティの値は、Nginx名前空間で宣言されたサービス名と同じである必要があります。

  7. プルリクエストを完了します。

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