4

我正在运行结构来自动部署。这是痛苦的缓慢。

我的本地环境:

(somenv)bob@sh ~/code/somenv/somenv/fabfile $  > uname -a
Darwin sh.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May  1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64

我的工厂文件:

#!/usr/bin/env python

import logging
import paramiko as ssh
from fabric.api import env, run

env.hosts = [ 'examplesite']
env.use_ssh_config = True
#env.forward_agent = True
logging.basicConfig(level=logging.INFO)
ssh.util.log_to_file('/tmp/paramiko.log')

def uptime():
  run('uptime')

这是调试日志的一部分:

(somenv)bob@sh ~/code/somenv/somenv/fabfile $  > date;fab -f /Users/bob/code/somenv/somenv/fabfile/pefabfile.py uptime
Sun Aug 11 22:25:03 EDT 2013
[examplesite] Executing task 'uptime'
[examplesite] run: uptime
DEB [20130811-22:25:23.610] thr=1   paramiko.transport: starting thread (client mode): 0x13e4650L
INF [20130811-22:25:23.630] thr=1   paramiko.transport: Connected (version 2.0, client OpenSSH_5.9p1)
DEB [20130811-22:25:23.641] thr=1   paramiko.transport: kex algos:['ecdh-sha2-nistp256', 'ecdh-sha2-nistp384', 'ecdh-sha2-nistp521', 'diffie-hellman-grou

paramiko 甚至需要 20 秒才能启动线程。当然,Executing task 'uptime'不会花那么长时间。我可以通过ssh手动登录,输入uptime,5-6秒后退出。对于如何提取模式调试信息,我将不胜感激。我做了这里提到的更改,但没有区别。

4

3 回答 3

8

尝试:

env.disable_known_hosts = True

请参阅: https ://github.com/paramiko/paramiko/pull/192 & 使用 paramiko 进行慢速公钥认证

于 2013-09-16T13:42:38.000 回答
0

也许这是 DNS 解析和/或 IPv6 的问题。

您可以尝试几件事:

  • 将服务器名称替换为其 IP 地址env.hosts
  • 禁用 IPv6
  • 使用另一个 DNS 服务器(例如 OpenDNS)
于 2013-08-18T21:38:36.127 回答
0

对于查看此 2014 年后的任何人来说paramiko,这是检查已知主机时速度较慢的组件,它在 2014 年 3 月 (v1.13) 中引入了一个修复程序,该修复程序在 v1.9.0 中被允许作为要求Fabric,并向后移植到 v1.8.4 和v1.7.4。

所以,升级!

于 2016-10-11T17:00:10.047 回答