一部のファイルをリモートマシンにコピーしようとしています。Lubuntuでansible2.3.1.0を使用しており、リモートマシンはCentOS7.2です。ここでの唯一の落とし穴は、ファイルを別のユーザーとしてリモートマシンにコピーする必要があることです。これがrsyncコマンドのプレイブックです
- name: Copy files to remote machine as user abc
shell: rsync -az ~/git/api_test/ --exclude='ansible/' [email protected]:/home/abc/api/
ただし、このコマンドは次の時点で永久に待機します。
<scspa.rtp.openenglab.abc.com> ESTABLISH SSH CONNECTION FOR USER:root
<scspa.rtp.openenglab.abc.com> SSH: EXEC sshpass -d12 ssh -vvv -C
-o ControlMaster=auto -o ControlPersist=60s -o User=root -o
ConnectTimeout=10 -o ControlPath=/home/user/.ansible/cp/2df8c9c6b2 tt
scspa.rtp.openenglab.abc.com '/bin/sh -c
'"'"'/usr/bin/python /root/.ansible/tmp/ansible-tmp-1516965479.47-
49767854925756/command.py; rm -rf "/root/.ansible/tmp/ansible-tmp-
1516965479.47-49767854925756/" > /dev/null 2>&1 && sleep 0'"'"''
シェルコマンドは、ターミナルを介してトリガーすると完全に正常に機能し、すぐに実行されます。
私は次のようにansibleの同期モジュールで同じことを試しました:
- name: Copy files to remote machine as user abc
synchronize:
src: ~/git/api_test/
dest: rsync://[email protected]:/home/abc/api/
mode: push
rsync_opts:
- "--exclude=ansible/"
次のメッセージが表示されます
"msg": "rsync: failed to connect to scspa.rtp.openenglab.abc.com (10.10.123.22): Connection refused (111)\nrsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2]\n",
"rc": 10
私は現在ansibleのコピーモジュールを使用していますが、ファイルをコピーする/すでにコピーされているかどうかを確認するのに時間がかかりますが、これは機能します。
私が欠けているものを理解しようとしています
あなたの質問から、ローカルファイルをリモートマシンにコピーしたいと思います。
ただし、shell
タスクはローカルホストではなく、リモートホストで実行されます。
そして、プレイブックのログはまさにそれを示唆しています:
<scspa.rtp.openenglab.abc.com> ESTABLISH SSH CONNECTION FOR USER:root
タスクをローカルコントローラーに委任することをお勧めします。
- name: Copy files to remote machine as user abc
shell: rsync -az ~/git/api_test/ --exclude='ansible/' [email protected]:/home/abc/api/
delegate_to: localhost
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加