2017-01-28 21 views
1

Я разработал несколько сценариев Fabric, которые автоматизируют развертывание моих веб-приложений в средах Jelastic. Эти сценарии отлично работали каждый раз, до сегодняшнего дня. Эта проблема просто озадачивает меня как ничто в моих сценариях, и моя среда не изменилась с момента последнего успешного исполнения; единственное примечательное изменение в том, что мой поставщик Jelastic (ServNet Mexico) теперь работает с версией 4.9 платформы Jelastic.Тканевые скрипты для автоматического развертывания веб-приложений больше не работают на Jelastic версии 4.9

Моя местная среда:

  • для Windows 10
  • Python 2.7
  • Ткань 1.13.1 (самая последняя версия, после того, как я модернизировал его сегодня, чтобы увидеть, если он будет делать никакой разницы)
  • Paramiko 2.1.1 (как установлено по ПГИ в качестве ткани зависимости)

Я имею точно такую ​​же проблему на две О.Т. ее машины, как с MacOS Sierra, так и с аналогичной настройкой Python и Fabric, но с более старыми версиями пакета Fabric (и его зависимостей), который работал очень хорошо несколько дней назад.

Внешний вид ткани, доступ к SSH через PuTTY (в Windows) и терминал (MacOS) работают нормально. Недавно изменилось то, что в начале удаленного сеанса отображается баннер аутентификации (который предупреждает об опасностях доступа SSH, как показано ниже). Я сомневаюсь, что это имеет какое-то отношение к моей проблеме.

Как рекомендовано by this troubleshooting page on the Fabric documentation, я включил флаг -show = debug для команды fab, а также протоколирование для Paramiko. Выход на моем окне командной строки выглядит следующим образом (я опускаю несколько строк, которые можно было бы считать частным и чувствительным, которые, насколько я могу судить, не предоставляют необходимую информацию для решаемой задачи):

Command line prompt>fab --show=debug my_task 
Using fabfile '<path_to_fabric_script>' 
Commands to run: my_task 
Parallel tasks now using pool size of 0 
<sensitive information omitted> 
Parallel tasks now using pool size of 10 
<sensitive information omitted> 
[<jelastic_node>] run: /bin/bash -l -c "cd /var/lib/jelastic/backup && rm -f <file_to_delete>" 
DEBUG:paramiko.transport:starting thread (client mode): 0x3cd61d0L 
DEBUG:paramiko.transport:Local version/idstring: SSH-2.0-paramiko_2.1.1 
DEBUG:paramiko.transport:Remote version/idstring: SSH-2.0-JSSHProxy 
INFO:paramiko.transport:Connected (version 2.0, client JSSHProxy) 
DEBUG:paramiko.transport:kex algos:[u'ecdh-sha2-nistp256', u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521', u'diffie-hellman-group14-sha1', u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa'] client encrypt:[u'aes128-ctr', u'aes192-ctr', u'aes256-ctr', u'[email protected]', u'arcfour256', u'arcfour128'] server encrypt:[u'aes128-ctr', u'aes192-ctr', u'aes256-ctr', u'[email protected]', u'arcfour256', u'arcfour128'] client mac:[u'hmac-sha1', u'hmac-sha1-96'] server mac:[u'hmac-sha1', u'hmac-sha1-96'] client compress:[u'none'] server compress:[u'none'] client lang:[u''] server lang:[u''] kex follows?False 
DEBUG:paramiko.transport:Kex agreed: diffie-hellman-group1-sha1 
DEBUG:paramiko.transport:Cipher agreed: aes128-ctr 
DEBUG:paramiko.transport:MAC agreed: hmac-sha1-96 
DEBUG:paramiko.transport:Compression agreed: none 
DEBUG:paramiko.transport:kex engine KexGroup1 specified hash_algo <built-in function openssl_sha1> 
DEBUG:paramiko.transport:Switch to new keys ... 
DEBUG:paramiko.transport:Adding ssh-rsa host key for [gate.jl.serv.net.mx]:3022: <key> 
DEBUG:paramiko.transport:Trying SSH agent key <key> 
DEBUG:paramiko.transport:userauth is OK 
INFO:paramiko.transport:Auth banner: 
    Welcome to Jelastic shell 

    This shell will assist you in managing Jelastic applications. 

    ============================== ATTENTION ============================== 
    Shell access is rather powerful and you can accidentally damage your application. 
    So please pay special attention to the actions you perform here. 
    ============================== ATTENTION ============================== 



INFO:paramiko.transport:Authentication (publickey) successful! 
DEBUG:paramiko.transport:[chan 0] Max packet in: 32768 bytes 
DEBUG:paramiko.transport:[chan 0] Max packet out: 32768 bytes 
DEBUG:paramiko.transport:Secsh channel 0 opened. 
DEBUG:paramiko.transport:[chan 0] Sesch channel 0 request ok 

И задача Fabric просто зависает в этот момент. Никаких дальнейших результатов, никаких сообщений о неудачах или неудачах, никаких тайм-аутов, никаких указаний о том, что может произойти. И команды команды Fabric сами не запускаются, так как предполагаемый эффект не создается на узле Jelastic, который нацелен на задачу Fabric (самая простая задача, которую я имею, - это просто удалить некоторые резервные файлы с помощью команды rm, другие задачи Я разработал более сложные, и они не будут работать.)

Я склонен думать, что этот вопрос связан либо с новой версией (4.9) Jelastic, либо с ее конкретным развертыванием в моей инфраструктуре поставщика Jelastic. К сожалению, мой провайдер не помог, когда я попросил их помочь в этом вопросе.

Буду признателен за то, что может произойти.

+0

Нам нужно исследовать этот случай ближе. Наши разработчики задействованы. – Jelastic

+0

Пожалуйста, дайте мне знать, если вы найдете что-либо на платформе Jelastic, которое может вызвать эту проблему. – Esteban

ответ

1

Вы можете попытаться соединиться с опцией --keepalive = 5..10

+0

Вы можете найти более подробную информацию об этом? Кто-нибудь проверил это? – RejeeshChandran

1

Это может быть проблема с paramico Lib, вы можете проверить вопрос here.

0

Такое поведение вызвано неправильной обработкой приветственного баннера ssh.Но у нас есть обходной путь: редактировать/и т.д./SSH/sshd_config и закомментируйте следующую строку:

Banner /etc/jmotd 

затем перезапустите Sshd демон:

service sshd restart 

Если вы столкнетесь с какими-либо трудностями, не стесняйтесь свяжитесь с нами по адресу [email protected]

С наилучшими пожеланиями, Команда Jelastic Поддержка

+0

Мне любопытно: когда вы говорите «такое поведение, вызванное неправильной обработкой приветственного баннера ssh», кто или что делает неправильную обработку, точно? Это Fabric/Paramiko или что-то в самой платформе Jelastic? Я еще не пробовал предлагаемое решение. Когда я это сделаю, я дам тебе знать. – Esteban

+0

Это проблема с Paramiko, вы можете google https://www.google.com.ua/search?q=paramiko+ssh+banner – Jelastic

+0

Я не могу применить обходной путь. Фактически существует файл 'sshd_config' (как на узлах Tomcat, так и на PostgreSQL в моих средах Jelastic), но при попытке открыть его либо в сеансе SSH, либо через панель мониторинга запрещается доступ. Также существует файл 'ssh_config' в том же каталоге, и его можно открыть, но он не имеет строки« Баннер », упомянутой в описании обходного пути. – Esteban