2016-08-05 5 views
1

私は次のような単純なタスクがあります。ansibleを実行している、しかし同じリモートマシン上の2つのフォルダを同期させる方法はありますか?

- name: Sync /etc/spark/conf to $SPARK_HOME/conf 
    synchronize: src=/etc/spark/conf dest={{spark_home}}/conf 
    delegate_to: "{{item}}" 
    with_items: "{{play_hosts}}" 
    tags: spark 

:私はグループ内の多くのホストを持っているので

はB.をフォルダに、フォルダA内のすべてのコピーを、私は次のYAMLタスク定義を使用します-playbookは私に次のエラーを与えた:

TASK [cloudera : Sync /etc/spark/conf to $SPARK_HOME/conf] ********************* 
failed: [52.53.220.119 -> 52.53.200.0] (item=52.53.200.0) => {"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/peng/.ssh/saphana.pem -S none -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/etc/spark/conf\" \"52.53.220.119:/opt/spark/spark-1.6.2-bin-hadoop2.4/conf\"", "failed": true, "item": "52.53.200.0", "msg": "Warning: Identity file /home/peng/.ssh/saphana.pem not accessible: No such file or directory.\nPermission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]\n", "rc": 255} 
failed: [52.53.200.193 -> 52.53.200.0] (item=52.53.200.0) => {"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/peng/.ssh/saphana.pem -S none -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/etc/spark/conf\" \"52.53.200.193:/opt/spark/spark-1.6.2-bin-hadoop2.4/conf\"", "failed": true, "item": "52.53.200.0", "msg": "Warning: Identity file /home/peng/.ssh/saphana.pem not accessible: No such file or directory.\nPermission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]\n", "rc": 255} 
ok: [52.53.200.0 -> 52.53.200.0] => (item=52.53.200.0) 
ok: [52.53.220.119 -> 52.53.220.119] => (item=52.53.220.119) 
failed: [52.53.200.193 -> 52.53.220.119] (item=52.53.220.119) => {"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/peng/.ssh/saphana.pem -S none -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/etc/spark/conf\" \"52.53.200.193:/opt/spark/spark-1.6.2-bin-hadoop2.4/conf\"", "failed": true, "item": "52.53.220.119", "msg": "Warning: Identity file /home/peng/.ssh/saphana.pem not accessible: No such file or directory.\nPermission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]\n", "rc": 255} 
failed: [52.53.200.0 -> 52.53.220.119] (item=52.53.220.119) => {"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/peng/.ssh/saphana.pem -S none -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/etc/spark/conf\" \"52.53.200.0:/opt/spark/spark-1.6.2-bin-hadoop2.4/conf\"", "failed": true, "item": "52.53.220.119", "msg": "Warning: Identity file /home/peng/.ssh/saphana.pem not accessible: No such file or directory.\nPermission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]\n", "rc": 255} 
ok: [52.53.200.193 -> 52.53.200.193] => (item=52.53.200.193) 
failed: [52.53.220.119 -> 52.53.200.193] (item=52.53.200.193) => {"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/peng/.ssh/saphana.pem -S none -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/etc/spark/conf\" \"52.53.220.119:/opt/spark/spark-1.6.2-bin-hadoop2.4/conf\"", "failed": true, "item": "52.53.200.193", "msg": "Warning: Identity file /home/peng/.ssh/saphana.pem not accessible: No such file or directory.\nPermission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0]\n", "rc": 12} 
failed: [52.53.200.0 -> 52.53.200.193] (item=52.53.200.193) => {"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/peng/.ssh/saphana.pem -S none -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/etc/spark/conf\" \"52.53.200.0:/opt/spark/spark-1.6.2-bin-hadoop2.4/conf\"", "failed": true, "item": "52.53.200.193", "msg": "Warning: Identity file /home/peng/.ssh/saphana.pem not accessible: No such file or directory.\nPermission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]\n", "rc": 255} 

どうやら、それは私の3つのすべてのホスト間でpermutativeのペアを作成し、すべてのペア(その9のrsyncが実行される)、どのように私は避けるん間で同期しようとしているansibleように見えますthローカルでのみrsyncを実行することができますか?

UPDATE:私はdelegate.host使用するように私のタスク定義を変更しました:

- name: Sync /etc/spark/conf to $SPARK_HOME/conf 
    synchronize: src=/etc/spark/conf dest={{spark_home}}/conf 
    delegate_to: delegate.host 
    tags: spark 

をしかし、それは明らかにansibleエンジンによって正しく解釈されていない、デバッグログは、それがで置換されていないことが明らかになりましたホストのIPアドレス:

ESTABLISH SSH CONNECTION FOR USER: None

SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/home/peng/.ansible/cp/ansible-ssh-%h-%p-%r delegate.host '/bin/sh -c '"'"'(umask 77 && mkdir -p " echo $HOME/.ansible/tmp/ansible-tmp-1470667606.38-157157938048153 " && echo ansible-tmp-1470667606.38-157157938048153=" echo $HOME/.ansible/tmp/ansible-tmp-1470667606.38-157157938048153 ") && sleep 0'"'"''

これは私がansible 2.1.0.0

+0

の賛成で削除されます。私はこの時点で、なぜ私の場合にはうまくいかなかったのか分かりませんが、 'anpport.cfg'の' scp_if_ssh = True'設定と結びついています。 – techraf

答えて

1

Sを使用しています、廃止予定の機能のように見えますolved:

- name: Sync /etc/spark/conf to $SPARK_HOME/conf 
    synchronize: src=/etc/spark/conf dest={{spark_home}} copy_links=true 
    delegate_to: "{{ inventory_hostname }}" 
    tags: spark 

delegate.hostは、おそらくあなたは本当のホスト名またはIPアドレスを持つ `delegate.host`を交換する必要があるように見え、新たな変数

+0

いいえ、 'delegate.host'は' put.your.host.name.here'に似たドキュメントの文字列です。 'scp_if_ssh'フラグがセットされていれば、正確に1つのターゲットホスト上で実行されていました。 – techraf

+0

私は、最初の場所の変数ではないので、参照してください。だからあなたが最初の答えを削除したのです。私はドキュメントがそれについてもっと明確にすべきだと思う – tribbloid

関連する問題