1
0
mirror of https://github.com/rancher/os.git synced 2025-06-21 20:47:04 +00:00
os/scripts/hosting/packet/test.expect
2018-11-22 16:28:50 +08:00

65 lines
1.5 KiB
Plaintext
Executable File

#!/usr/bin/expect -f
# set Variables
# /home/sven/.docker/machine/machines/sven-test/id_rsa
set sshkey [lrange $argv 0 0]
# 718feb0e-1517-4f92-a6fa-2ee089cf12e4@sos.ewr1.packet.net
set sshurl [lrange $argv 1 1]
set username [lrange $argv 2 2]
set password [lrange $argv 3 3]
set command ""
append command [lrange $argv 4 end]
set timeout -1
proc runcmd { username password cmd } {
send_user "<< username: $username"
send_user "<< password: $password"
send_user "<< cmd: $cmd"
set done 0;
while {$done == 0} {
expect {
"*?login:" {
send -- "$username\r"
}
"*?assword:" {
send -- "$password\r"
#send -- "\r"
}
"*?:~#" {
send -- "$cmd\r"
set done 1
}
"*?Reached target Shutdown." {
set done 1
}
}
}
}
spawn ssh -F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -i $sshkey $sshurl
match_max 100000
send -- "\r"
set running [ runcmd $username $password $command ]
expect {
"*? (yes/no)?" {
send -- "no\r"
expect "# "
}
"# " {
}
"*?Restarting system" {
}
"*?kexec_core: Starting new kernel" {
}
}
send_user "<< DONE expect"
send_user "<<"