Ожидайте автоматизации входа на удаленный компьютер второго уровня - PullRequest
1 голос
/ 16 ноября 2011

Мне нужно войти в систему на одном сервере разработки, чтобы поместить вещи на живой сервер. Итак, процессор таков

  • Вход на сервер разработки.
  • Скрипт Fire Deploy
  • Скрипт развертывания запрашивает 3 пароля.
  • За ним следует пароль ssh.

У меня нет другого доступа на сервере разработки и живого сервера. Поэтому я не могу использовать аутентификацию на основе ключей. а также я не могу ничего установить на сервер.

Возможно ли использовать ожидаемую или любую другую утилиту, с помощью которой я могу автоматизировать это?

Я пытался использовать как

spawn ssh deploy
expect_after eof { exit 0 }
expect "# "
send "deploy_to_server <branch_name>\r"
expect eof
expect "*password*"  { send "passworrd" }

Редактировать

   spawn ssh deploy
    send "deploy_to_server <branch_name>\r"
    expect eof
    expect "*password*"  { send "passworrd\n" }

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Вы пропустили терминатор строки при отправке:

expect "*password*"  { send "passworrd\n" }

Кроме того, кажется совершенно бессмысленным ожидать сначала eof, а затем, без перезапуска, ждать запроса пароля.

0 голосов
/ 16 ноября 2011

Зависит от того, как вы входите на сервер разработки и как работает сценарий развертывания. Если все основано на тексте, то это не проблема сделать это с помощью ожидаемого сценария.

...