Skip to main content

Replication Prerequisites (Legacy)

Note

Only available in Sonatype Nexus Repository Pro. Interested in a free trial? Start here.

Warning

In release 3.48.0, we introduced Content Replication, which removes Replicator and makes replication easier to set up and deploy. This documentation remains available for current implementations only. We do not recommend implementing this version of replication as we will be completely removing it once the new replication design is available.

Note

Replication is not appropriate for disaster recovery. If you need a disaster recovery solution, please see our resilient deployment options and backup and restore procedures.

Prerequisites for Using Replication

In order to use repository replication, you must meet the following prerequisites:

  • Repository replication is only available for Nexus Repository Pro customers; you must have a valid Nexus Repository Pro license to proceed.

  • Ensure you are on the latest Nexus Repository Pro version.

  • Ensure both source and target are on the same Nexus Repository Pro version.

  • Source and target repositories must be in one of the supported formats:

    • Docker

    • Maven hosted

    • npm

    • NuGet

    • PyPI

    • Raw

  • Source and target repositories must already be set up before you can create a replication connection.

  • Source and target repository blob stores cannot be part of a blob store group.

  • Source repository must be able to send HTTP requests to the target Nexus Repository instance during the initial configuration process.

  • Repository replication is not compatible with the legacy High Availability Clustering (HA-C) feature.

  • The source and target repositories must be locally mounted on the machine where the Replicator (the replication CLI jar) runs for file replication.

  • Replicator requires a *nix, or Windows 10 Linux subsystem.

  • The Replicator must be able to see and communicate with all repository instances. The Replicator directory in the Nexus Repository bundle is portable; this means you can deploy the Replicator on the source instance, target instance, or even in a separate location as long as it is able to see and communicate with all repositories.

  • Ensure the target repository is a newly created hosted repository in one of the supported formats. As a best practice, do not use a target repository that has previously uploaded binaries. This ensures you can maximize the manageability of the storage requirement of replicated content. Note also that the target repository will be read-only to all other requests outside of replication as long as it is used as a target repository.

Prerequisite Steps for Nexus Repository Instances

  1. Download and install the latest Nexus Repository Pro version in two separate environments following regular installation instructions.

    1. Both Nexus Repository instances must have a hosted repository configured: one will be your source repository, and the other will be your target repository.

    2. The target repository should not be one to which you are deploying components. Once the repository is configured as a target, it can no longer receive content from any source besides replication.

      Note

      Always use repository replication with two or more instances.

  2. Ensure that a valid Nexus Repository Pro license file is installed in these instances.

  3. Give a user the Replication Administrator role in each instance.

  4. If you are running the new Replicator on these same instances, install rsync (for file system blob store replication) or AWS CLI (for S3 blob store replication) in your environments. For instructions on installing AWS CLI, see theAWS documentation.

Additional Prerequisites for Separate Replicator Instances (Optional)

Ensure you have Java 8 installed.

Nexus Repository Configuration

Follow these steps to enable repository replication in each source and target instance:

Enable the Capability in Source and Target Instances

  1. Sign in to Nexus Repository as an administrator.

  2. Navigate toAdministration→ System→ Capabilities.

  3. Select Create capability.

  4. SelectReplicationfrom the list.

  5. Select the Create capability button to enable it.

  6. Verify that you now have access to a new Replication page under AdministrationRepositoryReplication.

  7. If you have existing components from before you configured replication, create and run the newReplication - Backfill blob store attributes with component metadatatask in the source instance.

Note

Running this task initiates a required process that adds necessary metadata to any existing blobs in your Nexus Repository instance. This task may take some time to complete, and you should not attempt to create replication connections until this has completed. You can confirm completion by looking at the task status.

Replication Administrator Role

The pre-configured Replication Administrator role has all six privileges that relate to replication:

Four privileges control access to replication endpoints:

  • nx-replication-readgives the ability to view existing replication endpoints

  • nx-replication-create gives the ability to view existing replication endpoints and to create new ones

  • nx-replication-updategives the ability to view existing replication endpoints and to update existing ones

  • nx-replication-deletegives the ability to view existing replication endpoints and to delete existing ones

In addition, the following existing privileges are also required to list the available repositories and update repository configuration:

  • nx-repository-admin-*-*-edit

  • nx-repository-view-*-*-*

On the source repository, any user with nx-replication-read, nx-replication-create, nx-replication-update, and nx-repository-view-*-*-* can configure a replication from a source repository; however, they must use a login for a user on the target repository that has the nx-repository-view-*-*-*, nx-repository-admin-*-*-edit, and nx-replication-update permissions.

In the target instance, assign the Replication Administrator role to a local user that can be used to authenticate in the Target Information configuration of a replication connection.

Configure a Replication Connection

At this point, you can continue to configuring a replication connection.