Skip to main content

故障排除

卡住?有问题吗?以下是在提交错误报告之前要尝试的步骤。

  • 确保您使用的是最新版本。 如果您不是最新版本,您的问题可能已经解决了!升级总是最好的第一步。

  • 尝试旧版本。 如果你已经 on 最新的Fabric,尝试回滚一些次要版本(例如,如果在1.7,尝试Fabric 1.5或1.6),看看问题是否消失。这将有助于开发人员在提交日志中首次出现问题时缩小范围。

  • 尝试切换您的Paramiko。 Fabric很大程度上依赖于Paramiko库的SSH功能,因此,请尝试将上述两个步骤应用于Paramiko安装。

    注解

    Fabric版本有时具有不同的Paramiko依赖关系 - 所以要尝试旧的Paramikos,您可能需要降级Fabric。

  • 确保面料是真的问题。 如果您的问题是在远程命令的行为或输出中,请尝试重新创建它而不涉及Fabric:

    • 使用 --show=debug 运行结构,并查找有关该命令的 run:sudo: 行。尝试运行该精确命令,包括任何 /bin/bash 包装,远程,看看会发生什么。这可能会发现与bash或sudo包装器相关的问题。

    • 使用 ssh 执行命令(正常版本和通过 --show=debug 查看的“解包”版本)。:

      $ ssh -t mytarget "my command"
      

      -t 标志匹配Fabric的远程启用PTY的默认行为。这有助于识别在非shell生成的PTY中运行时表现不佳的应用程序。

  • 启用Paramiko级调试日志记录。 如果你的问题是在较低级别的Paramiko库,它可以帮助我们看到调试输出Paramiko打印。在您的fabfile的顶层,添加以下:

    import logging
    logging.basicConfig(level=logging.DEBUG)
    

    这应该开始打印Paramiko的调试语句到您的标准错误流。 (如果你喜欢,随意添加更多日志kwargs到 basicConfig()filename='/path/to/a/file'。)

    然后将此信息提交给帮助您在IRC或您的错误报告中的任何人。