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 ***
- 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.
- Dê permissão para executar neste diretório.
- Execute o shell script (jfrog-nexus-migrator-0.6.0.sh).
- 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 URL – URL 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 URL – Nexus 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