Conjunto de scripts Bash para apoiar migração, preparação e validação de servidores Linux entre um host de origem e um host de destino. Esse projeto nasceu da nessecidade em realizar um "snapshot" de um servidor virtual para clonarmos em um servidor físico.
O fluxo foi pensado para três etapas:
- Coletar o inventário do servidor de origem.
- Preparar o servidor de destino com base nesse inventário.
- Validar se os itens críticos do destino ficaram alinhados com a origem.
- [01-collectSource.sh]: coleta informações do servidor de origem e gera arquivos auxiliares.
- [02-prepareTarget.sh]: usa o inventário para preparar o servidor de destino.
- [03-validateTarget.sh]: valida serviços, NFS, usuários, grupos e portas críticas no destino.
Esses scripts ajudam a acelerar atividades comuns de migração ou reconstrução de servidores, como:
- levantamento de usuários, grupos e serviços
- coleta de pacotes, mounts NFS, ACLs e configurações de autenticação
- recriação de estrutura básica no servidor de destino
- apoio à validação pós-preparação
Eles não substituem análise técnica do ambiente. A proposta é reduzir trabalho manual e organizar a comparação entre origem e destino.
Execute os scripts com um usuário que tenha permissões compatíveis com as ações realizadas. Em vários cenários, será necessário root.
Ferramentas/comandos esperados no ambiente:
bashgetentawksedfindtarsystemctlmountrpmipgetfaclesetfaclpara ACLsfirewall-cmdeiptables-savequando aplicávelssounetstatpara validações de portasyumem ambientes baseados em RHEL/CentOS com esse gerenciador
chmod +x 01-collectSource.sh
./01-collectSource.shOu informando outro diretório:
./01-collectSource.sh /opt/meuInventarioO script gera um diretório de inventário com arquivos como:
passwd.txtegroup.txtpackages.txtsystemd_unit_files.txtesystemd_units.txtservicesEnabled.txtfstabOriginal.txt,fstabCleaned.txtemountsNFS.txtlayout_opt.txt,layout_home.txt,layout_app.txtacl_opt.txt,acl_home.txt,acl_app.txtauthConfigs.tar.gzyumRepos.tar.gzipAddr.txt,ipRoute.txt,ipRule.txtfirewalldZones.txt,firewalldServices.txt,firewalldPorts.txtiptablesRules.txt
Também gera scripts auxiliares:
recreatesGroups.shrecreatesUsers.shrecreateServices.sh
Copie o diretório gerado na origem para o host de destino usando o método de sua preferência, por exemplo scp, rsync ou ferramenta corporativa equivalente.
chmod +x 02-prepareTarget.sh
./02-prepareTarget.shOu apontando para um diretório específico:
./02-prepareTarget.sh /opt/meuInventarioO script pode:
- recriar grupos e usuários com base nos scripts gerados
- recriar layout de diretórios em
/opt,/homee/app - aplicar ACLs, quando disponíveis
- sugerir e aplicar entradas NFS do
fstab - executar a recriação de serviços habilitados, mediante confirmação
- extrair configurações de autenticação para análise, mediante confirmação
- aplicar repositórios YUM, mediante confirmação
- organizar arquivos de rede para comparação no destino
chmod +x 03-validateTarget.sh
./03-validateTarget.shOu com diretório customizado:
./03-validateTarget.sh /opt/meuInventarioO script valida:
- serviços críticos definidos em lista
- mounts NFS esperados
- usuários e grupos críticos
- portas TCP críticas em escuta
O arquivo [03-validateTarget.sh](/Users/tex/Documents/New project/03-validateTarget.sh) possui listas editáveis para refletir seu ambiente:
criticalServicescriticalPortscriticalUserscriticalGroups
Antes de validar, ajuste esses itens com base na realidade do servidor que está sendo migrado.
- O script de preparação pode alterar
/etc/fstab, aplicar ACLs, recriar contas e habilitar/reiniciar serviços. - A extração de configurações de autenticação deve ser tratada com cautela, porque mudanças incorretas podem impactar login e integração com AD/LDAP/SSSD.
- O script não instala pacotes automaticamente. Ele orienta como comparar origem x destino para instalação controlada.
- Nem toda diferença entre origem e destino representa erro. Alguns itens podem variar por arquitetura, papel do servidor ou política operacional.
No servidor de origem:
./01-collectSource.sh inventoryCopie o diretório inventory para o destino.
No servidor de destino:
./02-prepareTarget.sh inventory
./03-validateTarget.sh inventory- migração de servidor legado para novo host
- preparação de ambiente de homologação semelhante à produção
- reconstrução controlada de servidor após incidente
- checklist operacional de comparação entre origem e destino
- O foco é Linux com ferramentas comuns em distribuições baseadas em RHEL/CentOS.
- Serviços customizados podem exigir ajustes manuais de nome, porta, usuário, grupo ou unit file.
- O script de serviços depende de nomenclatura compatível com
systemd. - ACLs, firewall, rede e autenticação podem variar bastante entre ambientes e podem exigir validação manual complementar.
- execute primeiro em ambiente de laboratório ou homologação
- revise o conteúdo do inventário antes de aplicar no destino
- mantenha backup de arquivos críticos, especialmente
/etc/fstabe configurações de autenticação - valide serviços, mounts e portas após cada mudança
- ajuste as listas de validação para o contexto real do servidor
Se desejar publicar o projeto, você pode adicionar aqui a licença escolhida, como MIT, Apache-2.0 ou uso interno corporativo.