作者 主題: [Ansible詢問] 如何從C執行ansible把a的檔案copy到B  (閱讀 7418 次)

0 會員 與 1 訪客 正在閱讀本文。

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
各位學長,小弟有個問題想請教,如何從C執行ansible把a的檔案copy到B,我是用以下的程式碼去執行,但沒辦法成功,我確認機器是正常,想請問各位學長有做過這樣的測試嗎?

代碼: [選擇]
- name: copy test
  hosts: DNS-Test
  sudo: True
  tasks:
   - name: copy test
     synchronize: mode=pull src=/etc/named.conf dest=/tmp/
     delegate_to: DNS-Test2

錯誤訊息

TASK [copy test] ***************************************************************
fatal: [10.88.3.112]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
        to retry, use: --limit @test.retry

PLAY RECAP *********************************************************************
10.88.3.112                : ok=1    changed=0    unreachable=1    failed=0


sakana

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 2590
  • 性別: 男
    • 檢視個人資料
    • sakananote
沒有試過這個 module

看你的錯誤訊息是 ssh 連線問題

看這個模組的介紹是實作部份 rsync
http://docs.ansible.com/ansible/synchronize_module.html

所以你要去 rsync 的 a and b 是否需要 ssh 連線
光就他的介紹我覺得是 control machine and manage node 的同步
我之前是使用比較麻煩的方式
先用 fetch module 複製到 control machine 然後在透過 copy module 複製過去

如果這個 module 可以達成, 也不錯
期待您的成功回報 :)
專心投入研究才是王道!!
http://sakananote2.blogspot.com

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
謝謝Sakana的回覆,小弟有最新結果,在分享給大家,謝謝.

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
小弟有試過synchronize這個module,但他會要求你輸入密碼,我上網查除了自己手動輸入密碼之外,就要建Key,不太符合我個人的需求,而且就算輸入密碼,還是會出現錯誤訊息,經過查詢,好像是Ansible 2.0的bug。
想在這邊再請教一個問題,各位學長怎麼把遠端機器的目錄copy到local,我試過fetch module,他只能copy檔案,沒辦法copy目錄,假如用synchronize也是會遇到我剛剛說的問題,想說大家還有沒有其他的方案?

sakana

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 2590
  • 性別: 男
    • 檢視個人資料
    • sakananote
先 tar 起來再解開?
專心投入研究才是王道!!
http://sakananote2.blogspot.com

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
這個方法也不錯,我現在是用shell module 用sshpass 去帶密碼然後執行scp,我在搜尋看看有沒有更好的方法。