Migrando repositórios do Nexus para Jfrog

Seguindo a cultura DevOps, a qual não se apega com ferramentas, a busca das melhores práticas para aprimorar o processo de desenvolvimento, alcance de velocidade, qualidade e integridade, torna comum migrar de uma ferramenta para outra.

Resumo

Este artigo tem o objetivo de explicar tecnicamente como fazer uma migração do Nexus para o Jfrog de forma simples.

Primeiro, precisamos preparar o nosso ambiente com os seguintes pré-requisitos.

Pré-requisitos

  • Privilégio de administrador na máquina que hospeda o Nexus Repository Manager.
  • Instalação do Docker na máquina que hospeda o Nexus Repository Manager.

Introdução

Um ponto importante é a instalação do docker devido à migração das imagens do contêiner.

Todas as configurações que você verá aqui foram realizadas no SO Ubuntu.

Observação:A ferramenta suporta a migração para uma instalação auto-hospedada do Artifactory do Nexus Repository Manager OSS e Nexus Repository Manager Pro.

A ferramenta é executada na máquina do Nexus Repository Manager e migra as seguintes entidades do Nexus Repository Manager para o Artifactory:

  • Repositories and Artifacts
  • Users, Roles and Privileges
  • LDAP Connections and Groups

Instalação Docker

Nessa etapa vamos demonstrar como efetuar a instalação do docker no servidor onde se encontra o Nexus. Conforme dito anteriormente, a instalação do Docker é um pré-requisito, devido o shellscript criar um container para efetuar a migração.

Todas as etapas abaixo seguiram a documentação oficial do Docker:

https://docs.docker.com/engine/install/ubuntu/

https://docs.docker.com/engine/install/linux-postinstall/

 

Siga os seguintes comandos:

 

sudo apt-get remove docker docker-engine docker.io containerd runc

 

sudo apt-get update

 

sudo apt-get install \

      apt-transport-https \

      ca-certificates \

      curl \

      gnupg \

      lsb-release

 

  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

 

  echo \

    “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \

    $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

sudo apt-get update

 

sudo apt-get install docker-ce docker-ce-cli containerd.io

 

sudo docker run hello-world

 

sudo docker ps -a

 

sudo groupadd docker

sudo usermod -aG docker $USER.

 

Permissão no server do Nexus

Nesta etapa, você precisa ver onde seu Nexus foi instalado.

 

Aqui no meu exemplo temos que dar permissão em opt / sonartype / nexus3 -R e depois editar:

 

 /opt/Nexus/etc/nexus.properties

Add (nexus.scripts.allowCreation=true)

 

Essas permissões são necessárias para liberar a migração do Nexus.

 

Você também deve ir na configuração do Nexus em Security>Realms e garantir que todos realms estejam habilitados:

Dicas antes de iniciar a migração

  • Procure saber quantos blobs e onde são criados;
  • Quantidade de vcpus que o servidor do Nexus possui;
  • Tamanho dos blobs;
  • Existe integração LDAP?;
  • Estão utilizando certificado no Nexus?;
  • Você deseja mover todos os repositórios ao mesmo tempo, ou parcialmente de forma incremental?

Essas informações irão ajudá-lo no momento da migração.

Migração

*** Antes de iniciar a migração, certifique-se de instalar o Docker e ter as permissões corretas ***

 

  1. Copiar o shell script disponível em: https://releases.jfrog.io/artifactory/run/nexus-migrator/0.6.0/jfrog-nexus-migrator-0.6.0.sh para o caminho onde o seu Nexus está instalado.
  2. Dê permissão para executar neste diretório.
  3. Execute o shell script (jfrog-nexus-migrator-0.6.0.sh).
  4. Depois de executado o script de shell aparecerão para você algumas opções que devem ser seguidas:
    • config, c – aqui você vai configurar com informações do Nexus
  •  
      • Server ID – Você pode usar o nome que desejar
      • JFrog platform URLURL Jfrog que vai receber a migração

 

                          Save and continue

                         

 

      • Enter the Jfrog username – Usuário com privilégios administrativos

 

      • Enter the Jfrog password – Insira a senha deste usuário

 

      • Is the Artifactory reverse proxy configured to accept a client certificate? (y/n) [n] – Em nosso exemplo, não estamos usando um certificado, então escolhemos n

 

      • Enter the Nexus Repository Data Directory – Diretório onde se encontram os blobs e a configuração do N

 

      • Enter the Nexus Repository URLNexus URL

 

      • Enter the Nexus Repository username – Usuário com privilégios administrativos

 

      • Enter the Nexus Repository password – Insira a senha deste usuário

 

      • Enter a default password in Artifactory for all the users to be migrated – Esta etapa definirá a senha configurada no Jfrog

 

      • Verifique se tudo deu certo no arquivo log

 

                           cat migration.log

                           

 

    • No /opt/sonatype-work/nexus3/migration/nexus-migrator você verá um yaml “migrationConfig.yaml” neste yaml você pode configurar quantos threads, de acordo com seu vcpus.

               

 

    • getConfig, gc – obterá todos os repositórios com base na configuração feita anteriormente com a opção c. Em seguida, irá criar no mesmo caminho / opt / sonatype-work / nexus3 / migration / nexus-migrator um arquivo repositories.yaml

               

 

                Você pode editar este yaml para escolher quais repositórios deseja mover.

 

    • migrateArtifact, ma – Irá migrar de acordo com configuração efetuada nos passos anteriores.

 

Conclusão

Seguindo esses passos, você vai conseguir, com sucesso, a migração do Nexus para o Jfrog. Isso sem perder nenhum histórico e com a possibilidade de escolher se gostaria de migrar todos ao mesmo tempo ou por repositórios.

 

Referências

https://www.jfrog.com/confluence/display/JFROG/Migrating+from+Sonatype+Nexus+Repository+Manager+to+Artifactory

 

https://docs.docker.com/engine/install/ubuntu/

https://docs.docker.com/engine/install/linux-postinstall/