fabric
を使用して、私のアプリケーションをラックスペースサーバーにリモート展開します。自宅のコンピュータで同じOS(Ubuntu Server 10.04)を使用している仮想マシンでスクリプトを試したところ、すべてうまくいくようです。ファブリックを使用できません。put - サーバー構成は必要ですか?
奇妙なことに、すべてのput
ファブリックコマンドが実サーバで失敗します。その他のコマンド(run
、cd
、sudo
など)は正常に動作しているようです。
これは、この特定のサーバーをターゲットとする場合、これは私が実行コマンドで行われます
fab test --host remote-server
remote-server
は私の.ssh/config
の別名です。マイfabfile:
@task
def test():
sudo("echo testing")
put("/tmp/file.txt", "/tmp/")
tmp/test_file.txt
が、私は私のテスト
これは出力
[remote-server] Executing task 'test'
[remote-server] sudo: echo testing
[remote-server] out: testing
Traceback (most recent call last):
File "/home/user/env/lib/python2.6/site-packages/fabric/main.py", line 712, in main
*args, **kwargs
File "/home/user/env/lib/python2.6/site-packages/fabric/tasks.py", line 298, in execute
multiprocessing
File "/home/user/env/lib/python2.6/site-packages/fabric/tasks.py", line 197, in _execute
return task.run(*args, **kwargs)
File "/home/user/env/lib/python2.6/site-packages/fabric/tasks.py", line 112, in run
return self.wrapped(*args, **kwargs)
File "/home/user/project/fabfile/__init__.py", line 33, in test
put("/tmp/file.txt", "/tmp/")
File "/home/user/env/lib/python2.6/site-packages/fabric/network.py", line 457, in host_prompting_wrapper
return func(*args, **kwargs)
File "/home/user/env/lib/python2.6/site-packages/fabric/operations.py", line 338, in put
ftp = SFTP(env.host_string)
File "/home/user/env/lib/python2.6/site-packages/fabric/sftp.py", line 20, in __init__
self.ftp = connections[host_string].open_sftp()
File "/home/user/env/lib/python2.6/site-packages/ssh/client.py", line 399, in open_sftp
return self._transport.open_sftp_client()
File "/home/user/env/lib/python2.6/site-packages/ssh/transport.py", line 844, in open_sftp_client
return SFTPClient.from_transport(self)
File "/home/user/env/lib/python2.6/site-packages/ssh/sftp_client.py", line 105, in from_transport
chan.invoke_subsystem('sftp')
File "/home/user/env/lib/python2.6/site-packages/ssh/channel.py", line 240, in invoke_subsystem
self._wait_for_event()
File "/home/user/env/lib/python2.6/site-packages/ssh/channel.py", line 1114, in _wait_for_event
raise e
ssh.SSHException: Channel closed.
Disconnecting from [email protected] done.
であるために使用しているだけのテキストファイルです、私はリモートサーバー上で設定するために必要なものはありますput
を使用してファイルを送信できますか?
ファブリックはSSHを使用します。 'put'では' scp'や 'sftp'を使うかもしれません。最初に手動でファイルをアップロードするには 'scp'を使い、環境がうまく動作することを確認してください。 – Drake
'scp'が動作し、' sftp'は動作しません。私はサーバ上で 'sftp'を有効にする方法を探します。ありがとう! これはサーバーにsftpしようとすると出力されます。 'サブシステム要求はチャネル0で失敗しました。 パケットを読み取れませんでした:ピアによって接続がリセットされました。 ' –
@Drake:ファブリックを使用する方法はありますかSFTP? – lpapp