Resumo técnico
Script Bash para alterar IP dedicado de conta cPanel de ponta a ponta, cobrindo atualização de zonas DNS (/var/named), virtual hosts no Apache (httpd.conf), registro principal da conta (/var/cpanel/users/<user>) e arquivos de userdata por domínio (incluindo variantes SSL).
Escopo executado
- Reimplementação em Bash do utilitário legado
chgacctip(Perl) mantendo compatibilidade funcional. - Troca coordenada do IP em múltiplas camadas de configuração do servidor.
- Atualização de serial SOA nas zonas DNS após alteração de registros A.
- Controle de lock para evitar edição concorrente de
httpd.conf. - Suporte a execução com ou sem rebuild/restart de serviços (
y|n). - Tratamento de edge cases: mesma origem/destino de IP e domínios sem ocorrência do IP antigo.
Fluxo técnico de alteração
- Valida usuário cPanel e IP de destino.
- Descobre IP atual da conta em
/var/cpanel/users/<user>. - Processa zonas DNS em
/var/namede, quando presente,chrootde named. - Substitui IP em blocos de
VirtualHostassociados nohttpd.conf. - Atualiza
IP=no arquivo de usuário cPanel. - Atualiza
ip:nos arquivos de userdata por domínio e versões_SSL. - Se
y, executa rotina de rebuild/reload (named, cache userdata, userdomains, rebuild httpd, restart Apache).
Execução prática
# troca sem rebuild de serviços
./cp-chgacctip.sh dominio123 192.168.1.100
# troca com rebuild/restart completo
./cp-chgacctip.sh dominio123 192.168.1.100 y
# caso de IP já igual (valida e segue checando componentes)
./cp-chgacctip.sh dominio123 51.79.52.232
Arquivos e componentes afetados
/var/named/*.db(e opcionalmente/var/named/chroot/var/named/*.db)/usr/local/apache/conf/httpd.conf/var/cpanel/users/<username>/var/cpanel/userdata/<username>/*e*_SSL
Operação segura e rollback
# backup recomendado antes da troca
cp -a /var/named/*.db /backup/named/
cp /usr/local/apache/conf/httpd.conf /backup/httpd.conf.bak
cp -a /var/cpanel/users/username /backup/
cp -a /var/cpanel/userdata/username /backup/
Troubleshooting operacional
# validar se usuário existe
ls /var/cpanel/users/username
# lock preso em httpd.conf
rm -f /usr/local/apache/conf/httpd.conf.lock
# rebuilds manuais
rndc reload
/scripts/rebuildhttpdconf
/etc/init.d/httpd graceful
Stack e ferramentas
- Shell Script / Bash
- cPanel/WHM
- BIND9 / named
- Apache / httpd
- sed
- grep
Tags operacionais
- cPanel
- Bash
- DNS
- Apache
Resultado operacional
- Redução do risco de inconsistência entre DNS, Apache e metadata cPanel durante troca de IP.
- Processo reproduzível para operação de migração e remediação de rede.
- Menor tempo de execução manual em mudanças de infraestrutura com contas dedicadas.