Estou tentando alternar programaticamente a energia para várias tomadas em um Eaton ePDU G3 usando ssh por meio do script de shell Jenkins CI. Isso é para acionar lidars apenas durante uma corrida de Jenkins. Não está claro como fazer isso.
relate perguntas
-
O OpenVPN pode conectar, o tráfego funciona, mas não estou na rede local
-
Como acessar remotamente o console do EC2 usando GUI
-
Exigir autenticação LDAP *e* autenticação ssh
-
Carregar chave “ec256.pem”: formato inválido é lançado ao tentar gerar chave pública a partir de chave privada
-
Por que chown 600 id_rsa corrige problemas de permissões?
Então descobri a sintaxe com base neste documento: https://www.eaton.com/content/dam/eaton/products/backup-power-ups-surge-it-power-distribution/power-distribution-for-it -equipment/eaton-metered-outlet-rack-pdu/eaton-pdu-g3-instruction-set-objects-manual.pdf
Para ligar a tomada nº 1:
Para desligar a tomada nº 1:
Agora, obter esses comandos com script representa outro problema, pois o login não fornece um shell bash, mas uma interface pdu proprietária.
Então
sshpass
eexpect
para o resgate.Aqui está um exemplo do que funcionou dentro de um Jenkinsfile:
Observe que:
sshpass
éusado para passar a senha já que uma chave privada ssh não é uma opçãoexpect
é usado para criar o script das interações https://linux.die.net/man/1/expectHostKeyAlgorithms=+ssh-dss
são necessários\\
são necessárias para funcionar corretamente em um Jenkinsfile