Runbook Rename Node no IBM Connect:Direct (UNIX/AIX)


Objetivo:
Realizar a troca do nome lógico de um node IBM Connect:Direct em ambientes UNIX/AIX, garantindo a integridade das configurações e conformidade com boas práticas de administração.


0) Pré-requisitos e convenções

  • Execute o procedimento com o usuário proprietário da instalação (geralmente cduser).
  • Pare o Connect:Direct antes de iniciar o rename.
  • Ajuste as variáveis de ambiente conforme o layout local.

# caminhos padrão CDHOME=<caminho_base_da_instalacao> # Ex.: /home/cduser/cdunix BIN=$CDHOME/ndm/bin CFGBASE=$CDHOME/ndm/cfg # nomes dos nodes OLDNODE=<nome_atual_do_node> # Ex.: CDNODE11 NEWNODE=<novo_nome_do_node> # Ex.: CDNUCLEA # IP/porta local (se aplicável) LOCAL_IP=<ip_local> # Ex.: 10.10.10.5 LOCAL_PORT=<porta_tcp> # Ex.: 1364

1) Checagens de acesso e processos

# verificar permissões e estrutura ls -ld /home/cduser $BIN $CFGBASE # verificar se há processos ativos do Connect:Direct ps -ef | egrep 'ndm(proc|smgr|pmgr|umgr)' | grep -v grep

Dicas:

Se ocorrer Permission denied ao acessar /home/cduser:

  • sudo chmod o+x /home/cduser

Se não for possível logar como cduser (AIX):

lsuser -f cduser | grep login sudo chuser login=
  • true cduser

Caso precise apenas de acesso temporário:

sudo setfacl -m user:$USER:rx /home/cduser sudo setfacl -R -m user:
  • sudo setfacl -R -m user:$USER:rx $CDHOME

2) Parar o Connect:Direct (se ativo)

# usar script padrão se disponível [ -x $BIN/ndm_shutdown ] && $BIN/ndm_shutdown # verificar novamente ps -ef | egrep 'ndm(proc|smgr|pmgr|umgr)' | grep -v grep

Dica:
Se não houver script, apenas confirme que não existem processos ndmproc, ndmpmgr, ndmsmgr e ndmumgr.


3) Backup (compatível com AIX)

cd /home/cduser tar -cf backup_${OLDNODE}_$(date +%Y%m%d).tar cdunix/ gzip backup_${OLDNODE}_$(date +%Y%m%d).tar # gera .tar.gz # alternativa (AIX): compress backup_...tar

Dica:
Mensagens “SACL/Permission denied” podem ser ignoradas; o essencial é copiar ndm/cfg e work.


4) Criar diretórios do novo node

mkdir -p $CDHOME/work/$NEWNODE mkdir -p $CFGBASE/$NEWNODE # copiar arquivos principais cp -p $CFGBASE/$OLDNODE/initparm.cfg $CFGBASE/$NEWNODE/ cp -p $CFGBASE/$OLDNODE/netmap.cfg $CFGBASE/$NEWNODE/ cp -p $CFGBASE/$OLDNODE/userfile.cfg $CFGBASE/$NEWNODE/ # licença (se aplicável) [ -f $CFGBASE/$OLDNODE/license.key ] && cp -p $CFGBASE/$OLDNODE/license.key $CFGBASE/$NEWNODE/

Dica:
Mantenha sempre backups incrementais (.bak_YYYYMMDDHHMMSS) antes de editar.


5) Atualizar initparm.cfg

CFG=$CFGBASE/$NEWNODE cp -p "$CFG/initparm.cfg" "$CFG/initparm.cfg.bak_$(date +%Y%m%d%H%M%S)" # atualizar nome do node e recid ed -s "$CFG/initparm.cfg" <<ED g/^ndm\.node:name/s/=.*/=$NEWNODE:\\ / g/:recid[[:space:]]*=/s/=.*/=$NEWNODE:\\ / w q ED # ajustar caminho da licença se houver if [ -f "$CFG/license.key" ]; then ed -s "$CFG/initparm.cfg" <<ED g/^asset\.protection:keyfile/s||asset.protection:keyfile = $CFG/license.key|g w q ED fi # validar grep -E 'ndm\.node:name|:recid|asset\.protection:keyfile' "$CFG/initparm.cfg"

Dicas:

O :\ no final da linha é parte do formato original.

Se ed não estiver disponível:
sed "s/^ndm\.node:name.*/ndm.node:name=$NEWNODE:\\/" -e "s/^:recid.*/:recid=$NEWNODE:\\/" "$CFG/initparm.cfg" > "$CFG/initparm.tmp" && mv "$CFG/initparm.tmp" "$CFG/initparm.cfg"

6) Atualizar netmap.cfg (bloco do node local)

cp -p "$CFG/netmap.cfg" "$CFG/netmap.cfg.bak_$(date +%Y%m%d%H%M%S)" awk -v old="$OLDNODE" ' BEGIN{skip=0} $0 ~ "^[[:space:]]*" old "[[:space:]]*:" {skip=1; next} skip && /^[A-Za-z0-9_.-][A-Za-z0-9_.-[:space:]]*:/ {skip=0} skip {next} {print} ' "$CFG/netmap.cfg" > "$CFG/netmap.tmp" cat >> "$CFG/netmap.tmp" <<EOF $NEWNODE : comm = TCP host = $LOCAL_IP port = $LOCAL_PORT cpnode = (TRUE) EOF mv "$CFG/netmap.tmp" "$CFG/netmap.cfg"

Dicas:

Não altere outros nodes no arquivo.

Para Secure Plus, sincronize via spadmin.shSync with NetmapAdd All / Delete All → ajuste .Local Base Record.

7) Atualizar userfile.cfg

cp -p "$CFG/userfile.cfg" "$CFG/userfile.cfg.bak_$(date +%Y%m%d%H%M%S)" # substituir todas as ocorrências do node antigo ed -s "$CFG/userfile.cfg" <<ED g/\b$OLDNODE\b/s//$NEWNODE/g w q ED # validar grep -n "$OLDNODE" "$CFG/userfile.cfg" || echo "OK: userfile sem referências antigas"

8) Subir o Connect:Direct

cd $BIN # sequência padrão de startup nohup ./ndmsmgr >/dev/null 2>&1 & sleep 1 nohup ./ndmpmgr >/dev/null 2>&1 & sleep 1 nohup ./ndmumgr >/dev/null 2>&1 & sleep 1 nohup ./ndmproc >/dev/null 2>&1 & sleep 1 # verificar se subiu ps -ef | egrep 'ndm(proc|smgr|pmgr|umgr)' | grep -v grep

Dicas:

Se existir ndm_startup:

[ -x $BIN/ndm_startup ] && $BIN/ndm_startup

Logs padrão: $CDHOME/ndm/logs ou $CDHOME/ndm/trace.

9) Testes funcionais

9.1 Loopback

[ -f $BIN/sample.cd ] && sub file=$BIN/sample.cd

9.2 Transferência entre nodes

Na origem:

sub file=$BIN/<processo_teste>.cdp

No destino:

ls -ltr $CDHOME/work/<arquivo_teste> date

Dica:
Em ambientes com HAProxy, verifique se o balanceamento está funcionando conforme esperado.


10) Pós-troca e validações finais

Não remova $CFGBASE/$OLDNODE até a estabilidade completa.

Atualize scripts de inicialização e .profile se apontarem para o node antigo.
Monitore logs por 24 horas após a troca.

⚙️ Troubleshooting rápido

SintomaAção sugerida
Permission denied ao acessar /home/cdusersudo chmod o+x /home/cduser
Não é possível logar como cdusersudo chuser login=true cduser
Sem ndm_startup/ndm_shutdowniniciar manualmente os binários
ed indisponívelusar sed com backups
Secure Plus habilitadosincronizar spadmin.sh com netmap.cfg

Checklist de Validação

ItemVerificação
initparm.cfg atualizado com $NEWNODE
Bloco local de netmap.cfg atualizado
userfile.cfg sem referências antigas
Processos ndmproc, ndmpmgr, ndmsmgr, ndmumgr ativos
Teste de transferência concluído
Backup antigo preservado

Observações finais

Este procedimento é aplicável a qualquer instalação UNIX/AIX de Connect:Direct.

Para ambientes clusterizados (HA/CDPLEX), repita o rename em ambos os nodes e sincronize o netmap.cfg.
Sempre valide via CLI (ndmcli) antes de reiniciar integrações externas.

Postar um comentário

1 Comentários