11

リモート サーバーで Fabric タスクを実行すると、次のスタック トレースが表示されます。

[x.x.x.x] run: git fetch && git reset --hard origin/develop
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/var/lib/jenkins/jobs/deploy/workspace/.pyenv/lib/python2.6/site-packages/ssh/agent.py", line 115, in run
    self._communicate()
  File "/var/lib/jenkins/jobs/deploy/workspace/.pyenv/lib/python2.6/site-packages/ssh/agent.py", line 125, in _communicate
    events = select([self._agent._conn, self.__inr], [], [], 0.5)
TypeError: argument must be an int, or have a fileno() method.

Fabric タスクがgit fetchを実行しようとしており、 ssh/agent.pyで例外が発生しているという事実は、SSH 認証に問題があると思わせます。

同じユーザーがFabric の外部でgit fetchを実行でき、タスクは私のラップトップで正常に実行されます。

何が起きてる?この問題を解決するにはどうすればよいですか?

4

3 に答える 3

17

Fabricの課題追跡システムで発生した問題には、ホストでssh-agentが実行されていないことが原因でエラーが発生する可能性があることが記載されています

ssh-agentを起動し、ユーザーのキーを追加することで問題を解決しました。

$> eval `ssh-agent`
$> ssh-add ~/.ssh/id_rsa

成功!

于 2012-06-08T13:29:36.927 に答える
0

Fabric を Python/Django で使用しているときに、 内で手動でタスクを実行しようとしたときに、このエラーに遭遇しました./manage.py shell_plus

私のshell_plusがipythonの代わりにbpythonを使用するように設定されているという事実が原因でエラーが発生したことが(私にとっては)判明しました。

代わりに実行./manage.py shell_plus --ipythonすると、すべてが完全に機能しました。

これはおそらくあなたの問題に対する直接的な回答ではないことは承知していますが、私と同じようにこの問題に遭遇した他の人のために、ここにメモを残しておくことをお勧めします.

于 2016-12-14T23:51:13.937 に答える