2016-11-03 7 views
0

ファブリックファイルを使用してデプロイメントタスクを作成します。 ftpデータまたはsshデータだけがいくつかあります。sshキーを使用してrsync用のファブリックファイルを作成します。

このコードは

def sync_app(): 
local("rsync -rtlv --delete dist/ server:%s" % code_dir) 

に動作します。しかし、このコードですべてのユーザーが同じSSHの設定ファイルを持っている必要があります。だから私はプロジェクトのデータが欲しい。この瞬間、私はベストプラクティスを知らないが、もし私がマニュアルでコードにデータを書いたらエラーが出る。何が間違っていたのですか?

def sync_app(): 
local("rsync -rtlv --delete dist/ 'ssh -i /Users/username/.ssh/id_rsa_dploy -p 9600' [email protected]:%s" % code_dir) 
+0

あなたは(多分それ船を作成ssh' 'に' -F'引数を使用して、一時的な設定ファイルを指すようにできあなたのプロジェクトでは、それを/ tmp/...にコピーします)、それはユーザーのものとは別です。 –

答えて

0

あなたのエラーを投稿し、私はあなたの問題は-eフラグの使用の欠如によって引き起こされているとお考えください。

def sync_app(): 
local("rsync -rtlv " 
     "-e 'ssh -i /Users/username/.ssh/id_rsa_dploy -p 9600' " 
     "--delete dist/ [email protected]:%s" % code_dir) 

https://linux.die.net/man/1/rsync:SSHを使用-e上のrsyncを使用している場合

-e, --rsh=COMMAND 
    This option allows you to choose an alternative remote shell program to use for communication between the local and remote copies of rsync. Typically, rsync is configured to use ssh by default, but you may prefer to use rsh on a local network. 
関連する問題