ARTIFACTORY: Migration Basics

Shani Attias
2022-01-03 10:17

Artifactory migration is the process of copying your complete Artifactory setup from one environment into another environment.

Migration should take place only if you need to move your setup to a new location
***Migration should not be used as a replacement for an upgrade. 

Artifactory Component Overview

Artifactory is composed of 3 main components:

  • Application server (Apache Tomcat Server) – The server responsible to handle all Artifactory Activities like REST API requests, Maintenance Activities, Replication, etc.
  • Database  – The Database contains all the information about Artifactory from users, groups, permission to repositories, and information about each artifact like artifact name and full path.
  • Filestore – keep the artifact (file). Artifacts saved in the Filestore are organized by their sha1 checksum. There is no information about the artifact within the filestore (i.e like the artifact name, path, creation date, etc..). This information is saved in the database only.

 

System Migration Process

Full system migration includes migration of each of the above components to a new location.

 

Application Server migration is done by a fresh new installation of the Artifactory server on a new location.

DB (Data) migration should be done by performing a full System Export & Import with “Exclude Content”. In this case, only data that is saved in the DB is migrated. The artifacts themselves will not be migrated.

Filestore migration is done by copying the entire data folder to the new location

 

*** There is an option to migrate the DB and filestore together by performing a full System Export & Import. However, if you have a large instance and require minimal downtime, the recommended migration options are described here

 

In the described methods, we need a new DB and manually copy the filestore to the new instance as this includes all the binaries.

The reason we are using a new DB for this process is to prevent conflicts with existing data.

We will also do a full system Export & Import (exporting with “Exclude Content” as we have already migrated the binaries). This will populate the DB with the binaries references and will also import Artifactory and Access configurations.

Artifactory configurations refer to Artifactory Skelton configurations such as repositories, replications, Authentication providers (LDAP, SAML…), etc. 

Access configuration refers to Users, Groups, Permissions, and Access Tokens.
If you only need to import Access data, you may refer to this Knowledge Base.

 

Migration FAQ:

 

Can we follow the migration steps in order to migrate from version 6.x to 7.x?

While it is possible to migrate Artifactory 6.x to Artifactory 7.x, the best practice would be to first upgrade the existing 6.x instance to version 7.x and only then follow the migration steps.
The reason behind this is that version 7.x has introduced several major changes and breaking changes which the upgrade process can handle but it might fail the migration.

As part of the migration we are planning to switch to S3 bucket, how should we copy the binaries?

We can either migrate the filestore to S3 bucket in the existing instance and then continue with the migration process, or we can copy binaries to the S3 bucket after the new instance is set up;

Migrating the binaries to S3 bucket in the new Artifactory instance, requires copying the binaries manually to the bucket and is out of JFrog scope. However, there are several external tools that can help with that, such as AWS CLI .