Deploy on additional content managers

If your setup has more than one content management instance, you also need to copy the Coveo for Sitecore package and the Coveo data to the other CMs.

Make sure that you have already configured a content manager for a scaled environment (see Prepare the main Sitecore content manager for a scaled environment).

Step 1: Copy the package to an additional CM

The Coveo for Sitecore installation package contains several files that are added to the Sitecore website directory.

  1. Locate the installation package you used for the content manager (see Releases and downloads).

  2. Unzip the Coveo for Sitecore X.Y <BUILD_NUMBER>.zip.

  3. Open the package.zip file.

  4. In the package.zip compressed folder, copy the content of the files folder to <SITECORE_INSTANCE_ROOT>\Website\ on the additional CM.

The files folder mimics the folder structure found in the Sitecore website.

Step 2: Ensure access to the encryption keys

Coveo for Sitecore stores its encryption keys in the Properties table of a database. These encryption keys must be the same on all the Sitecore instances to be able to decrypt the encrypted configuration elements. The <Database> setting in the <SITECORE_INSTANCE_ROOT>\App_Config\Modules\Coveo.SearchProvider.config file determines the encryption keys storage database.

Note

The default storage location for the encryption keys is the web database.

Important
  • If your CMs and CDs are all set up to access the pub database, ensure that you patch the following settings accordingly:

    1. the <Database> element in the <SITECORE_INSTANCE_ROOT>\App_Config\Include\Coveo.SearchProvider.Custom.config file

    2. the <setting name="Coveo.Framework.DatabasePropertyName" element in the <SITECORE_INSTANCE_ROOT>\App_Config\Modules\Coveo\Coveo.Authentication.config file

  • If your CMs and CDs don’t all share a given database, make sure you have a database replication strategy in place.

Step 3: Disable indexing on additional CMs and CDs

Only the main content manager should index content. You must update configurations accordingly.

To disable indexing on all your additional CMs and CDs, you must patch delete the database parameter from your coveoSyncMaster and coveoOnPublishEndAsync index update strategies. This is easier to accomplish on Sitecore 9.2+ versions which support the indexing sub-role). However, the general idea remains the same on Sitecore 9.1 instances. For example, you can use a rule-based configuration.

  1. Ensure your main content manager, and only your main content manager, has the Indexing sub-role enabled.

  2. On you main CM, open file <SITECORE_INSTANCE_ROOT>\App_Config\Include\Coveo\Coveo.SearchProvider.Custom.config in a text editor.

  3. Add the following <indexConfigurations> element as a child of the <contentSearch> element.

    <indexConfigurations>
      <indexUpdateStrategies>
        <coveoSyncMaster role:require="ContentDelivery or !Indexing" name="CoveoSyncMaster" type="Sitecore.ContentSearch.Maintenance.Strategies.ManualStrategy, Sitecore.ContentSearch">
          <param desc="database">
            <patch:delete />
          </param>
        </coveoSyncMaster>
        <coveoOnPublishEndAsync role:require="ContentDelivery or !Indexing" name="CoveoOnPublishEndAsync" type="Sitecore.ContentSearch.Maintenance.Strategies.ManualStrategy, Sitecore.ContentSearch">
          <param desc="database">
            <patch:delete />
          </param>
          <CheckForThreshold>
            <patch:delete />
          </CheckForThreshold>
        </coveoOnPublishEndAsync>
      </indexUpdateStrategies>
    </indexConfigurations>
  4. Save your changes.

Step 4: Copy the configuration files

Since the index is shared between all the Sitecore instances, you need to configure all the additional Sitecore instances (CMs and CDs) to use the same base configuration as the CM1 Sitecore instance:

  1. In each additional Sitecore instance, delete the Coveo folders located in the <SITECORE_INSTANCE_ROOT>\App_Config\Include\ and <SITECORE_INSTANCE_ROOT>\App_Config\Modules\ folders.

  2. Copy the configuration files folder(s) of the CM1 instance to each additional Sitecore instance.

    • Copy the Coveo base configuration files folder located in the <SITECORE_INSTANCE_ROOT>\App_Config\Modules\ folder of your CM1 instance. Paste it into the <SITECORE_INSTANCE_ROOT>\App_Config\Modules\ folder of your other instances.

    • Copy the Coveo custom configuration files folder located in the <SITECORE_INSTANCE_ROOT>\App_Config\Include\ folder of your CM1 instance. Paste it into the <SITECORE_INSTANCE_ROOT>\App_Config\Include\ folder of your other instances.

What’s next?

Deploy Coveo for Sitecore on your content delivery servers (see Deployment on the content delivery servers).