Recebemos solicitações de assistência para a conversão de sistemas que rodam o RHEL 7 para o CentOS 7. Existem várias razões pelas quais as organizações desejam fazer essa transição, que vão desde o desejo de padronizar seus parques de servidores até mudanças no licenciamento, planos de migração futuros ou outros fatores.
O CentOS é uma versão gratuita e desenvolvida pela comunidade do RHEL, o que o torna uma excelente alternativa ao RHEL licenciado para quem não precisa de suporte oficial. Embora a troca de repositórios possa parecer uma tarefa simples, trata-se, na verdade, de um processo um tanto complexo. Por esse motivo, criamos um script para realizar a conversão automaticamente.
Este artigo oferece uma análise detalhada do script de conversão e do processo de migração do RHEL 7 para o CentOS 7. É importante observar, no entanto, que o CentOS 7 chegará ao fim de sua vida útil em junho de 2024; portanto, o suporte do fornecedor será encerrado nessa data. Como isso coincide com o fim da vida útil (EOL) do RHEL 7, as organizações precisarão adquirir suporte estendido para continuar a utilizar essa distribuição com segurança.
Agora, vamos às etapas da migração…
O que esse script faz?
Antes de executar este script, vale a pena entender o que ele faz. Este script foi escrito em Python e realiza as seguintes nove operações:
1. Verifique se a conversão já foi concluída
Este script foi projetado para ser idempotente, o que significa que pode ser executado várias vezes sem qualquer risco. O status de cada etapa é armazenado em um arquivo especial; assim, o script nunca executará novamente uma etapa já concluída. Se todas as etapas tiverem sido concluídas, o script exibirá a mensagem “O sistema já foi migrado para o CentOS 7” e será encerrado.
2. Verifique se o script está sendo executado com privilégios de root
A maioria dos comandos executados pelo script requer privilégios de root; por isso, isso é verificado logo no início.
3. Verifique se o sistema atual é o RHEL 7
O script verifica se o sistema instalado é o RHEL 7. Como cada sistema operacional possui suas próprias características específicas, tentar executar o script em um sistema não compatível pode resultar em resultados inesperados.
4. Remova os pacotes específicos do RHEL
Esta etapa remove pacotes específicos do RHEL, como logotipos e arquivos de configuração que contêm informações sobre a versão e os repositórios. Esses são os pacotes principais responsáveis pela “identidade visual” da distribuição.
5. Instalar pacotes específicos do CentOS
Após a remoção dos pacotes específicos do RHEL, eles são substituídos pelos pacotes correspondentes do CentOS. Daqui em diante, os repositórios do CentOS serão utilizados para instalar e atualizar pacotes. Se você estiver configurando o firewall do CentOS 7 nesta etapa, certifique-se de verificar se as configurações adequadas do firewall foram aplicadas.
6. Atualizar os pacotes de distribuição
É realizada uma atualização regular de todos os pacotes do sistema para as versões mais recentes disponíveis nos repositórios do CentOS.
7. Sincronizar pacotes de distribuição
A etapa adicional de manter os pacotes sincronizados com as versões mais recentes disponíveis nos repositórios do CentOS é necessária nos casos em que um pacote no CentOS possui uma versão inferior à do pacote equivalente no RHEL. Embora esse cenário seja raro, ele ainda precisa ser abordado, pois pode ocorrer.
8. Executar algumas operações específicas do EFI e do Secure Boot
Esta etapa é fundamental para a conversão de sistemas que rodam no modo UEFI (e não no BIOS). Muitas soluções e artigos não fornecem informações sobre as etapas necessárias para lidar com esses sistemas, mas ignorar isso pode resultar em um sistema operacional que não inicializa após a conversão. O RHEL e o CentOS utilizam caminhos diferentes para os carregadores de inicialização Shim e Grub2 – /boot/efi/EFI/redhat e /boot/efi/EFI/centos, respectivamente.
Essa discrepância gera dois problemas. Primeiro, após a conversão, o carregador de inicialização Grub2 tentará localizar sua configuração no novo caminho, mesmo que ela ainda esteja no diretório /boot/efi/EFI/redhat. O segundo problema diz respeito às entradas de inicialização no firmware UEFI. Uma entrada do RHEL continuará apontando para o gerenciador de inicialização em /boot/efi/EFI/redhat, que não está mais acessível por meio desse caminho.
A maioria dos firmwares UEFI implementa um modo de contingência, no qual o carregador de inicialização ainda pode ser detectado e iniciado. No entanto, a implementação desse modo é opcional e nem todo hardware oferece suporte a ele. Consequentemente, o sistema não conseguirá inicializar após a migração. Ambos os problemas são resolvidos automaticamente nesta etapa.
Além disso, nesta etapa, o script garante que os carregadores de inicialização Shim e Grub2, bem como o kernel, sejam instalados a partir do repositório do CentOS. Se algum desses pacotes ainda estiver presente do RHEL, o sistema não conseguirá inicializar no modo Secure Boot. Esses pacotes serão detectados e reinstalados a partir dos repositórios do CentOS.
9. Definir o registro padrão do GRUB
Geralmente, os sistemas RHEL têm vários kernels mais recentes instalados. Portanto, na etapa final, o script define o kernel do CentOS como o kernel padrão para a próxima inicialização. Essa etapa também é necessária para sistemas que estão sendo executados no modo Secure Boot.
RHEL 7 para CentOS 7: Processo passo a passo
1. Faça um backup do sistema
Antes de iniciar o processo de migração, recomendamos que você faça um backup completo do seu sistema RHEL 7.
2. Baixe o script
O script em Python para migrar do RHEL 7 para o CentOS 7 está disponível no GitHub:
https://github.com/cloudlinux/rhel2centos
Você pode executar este comando para baixar o script no seu computador.
$ curl -O https://raw.githubusercontent.com/cloudlinux/rhel2centos/main/migrate_7.py
3. Execute o script
Assim que o arquivo for baixado, execute o script usando o comando do Python.
$ sudo python migrate_7.py
Resultado:
O sistema foi migrado para o CentOS 7.
4. Verifique a migração
Para verificar se a migração foi bem-sucedida, execute o comando a seguir para conferir o arquivo de lançamento.
$ cat /etc/redhat-release
Resultado:
CentOS Linux versão 7.9.2009 (Core)
Verifique se o sistema inicializa com o kernel do CentOS por padrão.
$ sudo grubby –info DEFAULT | grep CentOS
Resultado:
title=CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)
Observação: os números das versões podem variar à medida que novas atualizações forem lançadas.
RHEL 7 x CentOS
O RHEL 7 é uma distribuição comercial desenvolvida pela Red Hat, uma importante empresa de software empresarial, enquanto o CentOS 7 é uma distribuição desenvolvida pela comunidade a partir do código-fonte do Red Hat Enterprise Linux (RHEL).
Enquanto o RHEL 7 foi projetado especificamente para atender às necessidades de ambientes corporativos que exigem a segurança, a estabilidade e o suporte robustos da Red Hat, o CentOS 7 é popular entre usuários individuais e organizações menores que buscam uma alternativa gratuita e de código aberto ao RHEL.
Tanto o RHEL 7 quanto o CentOS 7 são considerados sistemas com bons níveis de segurança. No entanto, com suporte de nível empresarial e acesso a ferramentas de segurança proprietárias, o RHEL 7 apresenta uma vantagem modesta sobre o CentOS. Por isso, o RHEL 7 se destaca como uma opção superior para empresas que precisam de altos níveis de segurança. Contudo, para quem conta com um ambiente seguro do CentOS 7, atualizações regulares e ajustes de configuração podem torná-lo uma opção confiável.
Por outro lado, ao comparar o CentOS com o CentOS Stream, os usuários podem perceber que o CentOS Stream oferece uma versão atualizada de forma mais contínua, o que pode ser um fator a ser considerado na hora de escolher entre os dois. Seja qual for a versão escolhida, o RHEL 7 e o CentOS 7 são sistemas operacionais extremamente seguros e confiáveis, capazes de atender às necessidades da maioria dos usuários.
Também é importante observar que o suporte de manutenção para o RHEL 7 terminará em 30 de junho de 2024 e que o CentOS 7 também chegará ao fim de sua vida útil nessa data. Como resta pouco mais de um ano, recomenda-se que usuários e administradores comecem a planejar sua migração.
Se você estiver em dúvida sobre a migração para distribuições alternativas, você pode optar pelo suporte estendido da suporte EOL da TuxCare para o CentOS 7, que oferece suporte estendido ao ciclo de vida por quatro anos.
Conclusão
Resumindo, a migração do RHEL 7 para o CentOS 7 pode ser uma tarefa desafiadora. No entanto, ela pode ser realizada com facilidade e sem causar impactos negativos no sistema, desde que seja feita com planejamento e execução cuidadosos.
Esperamos que este guia ajude você a converter seu sistema RHEL 7 para o CentOS 7!

