Eu configurei o Rancid no meu sistema Ubuntu 14.04 para alguns dispositivos que funcionam bem, exceto para todos os dispositivos do tipo 'foundry' (Brocade). A cada hora, uma tarefa cron executa execução rançosa como o usuário rançoso. Eu testei ambos os flogin como os scripts de login binário clogin .
flogina
Isso é o que eu vejo em todos os registros:
<switch>: End of run not found 0 || 0
<switch> flogin error: Error: TIMEOUT reached
<switch>: missed cmd(s): show version,show flash,show module,write term,show running-config,show chassis
<switch>: End of run not found
Meu arquivo .clogin parece estar bem:
[email protected]:~$ cat /home/rancid/.cloginrc
add autoenable * 1
add method * ssh
add user * rancid
add password * Jg278edd.fisd%1y
SSH para os interruptores, o modo normal funciona bem. Mas rodar o script flogin manualmente me dá isto:
[email protected]:/var/lib/rancid/bin$ ./flogin -c 'show version' <switch>
s0.nikhef.nl
spawn ssh -c 3des -x -l rancid s0.nikhef.nl
[email protected]'s password:
[email protected]>
Error: TIMEOUT reached
Demora cerca de 10 segundos para entrar e depois disso parece que não executa o comando que eu especifico após o sinalizador -c. E após outros 10 a 20 segundos, ele sai depois de atingir o valor TIMEOUT de Rancid.
clogina
Este script funciona muito bem ... (mas não vai para o modo exec, ele ignora autoenable 1) ..
[email protected]:/var/lib/rancid/bin$ ./clogin -c 'show version' <switch>
<switch>
spawn ssh -c 3des -x -l rancid <switch>
rancid@<switch>'s password:
SSH@<switch>>
SSH@<switch>>terminal length 0
Invalid input -> terminal length 0
Type ? for a list
SSH@<switch>>terminal width 132
Invalid input -> terminal width 132
Type ? for a list
SSH@<switch>>show version
SW: Version 04.2.00b Copyright (c) 1996-2010 Brocade Communications Systems,
...
SSH@<switch>>exitConnection to <switch> closed by remote host.
Connection to <switch> closed.
Então eu imaginei, por que não substituir o código do flogin pelo código do clogin e tudo ficar bem, certo? Teste manual confirmou isso, mas fazer um ranço-run não conseguiu as configurações, mas apenas mostra isso nos logs:
<switch>: End of run not found 0 || 0
<switch>: missed cmd(s): show chassis,show running-config,write term,show flash,show version,show module
<switch>: End of run not found
O que resta para depurar?