Ansible2.5 的 synchronize 模块存在无法进行远程复制的 bug

简而言之

    • Ansibleでplaybook実行時syncronyzeモジュール(rsync的な)を使用したら謎のエラーに遭遇

 

    • リモートホストにコピー(同期)できない

 

    • 調査したらどうやらAnsible2.3以降のバグらしい

 

    • もはやダウングレードするのが一番の回避策っぽいので2.5から2.2へダウングレード

 

    • エラーは改善した

 

    Pythonは3を使ってvirtualenv上の環境で発生しました。

错误内容 (

TASK [rsync to remote] ****************************************************************************************************************************************
task path: /home/appuser/.ansible/deploy/include-tasks/app/deploy-remote-app.yml:13
Using module file /home/appuser/.pyenv/versions/3.6.5/envs/ansible-3.6.5/lib/python3.6/site-packages/ansible/modules/files/synchronize.py
<10.33.47.xxx> ESTABLISH LOCAL CONNECTION FOR USER: appuser
<10.33.47.xxx> EXEC /bin/sh -c 'echo ~None && sleep 0'
<10.33.47.xxx> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo ~None/.ansible/tmp/ansible-tmp-1528288448.485335-70755570096073 `" && echo ansible-tmp-1528288448.485335-70755570096073="` echo ~None/.ansible/tmp/ansible-tmp-1528288448.485335-70755570096073 `" ) && sleep 0'
<10.33.47.154> PUT /home/appuser/.ansible/tmp/ansible-local-7005wefvo28f/tmp7x45s940 TO ~None/.ansible/tmp/ansible-tmp-1528288448.485335-70755570096073/synchronize.py
fatal: [10.33.47.154]: FAILED! => {
    "msg": "failed to transfer file to ~None/.ansible/tmp/ansible-tmp-1528288448.485335-70755570096073/synchronize.py: [Errno 2] No such file or directory: b'~None/.ansible/tmp/ansible-tmp-1528288448.485335-70755570096073/synchronize.py'"
}
        to retry, use: --limit @/home/appuser/.ansible/deploy/include-tasks/app/deploy-remote-app.retry

在这里搜索
https://github.com/ansible/ansible/issues/21562

听说结构正在讨论中。大家都很困惑呢。
他们说在2.2版本中不会再重现。
虽然感觉不太满意,但是用那种方法来应对吧。

$ pyenv activate ansible-3.6.5
$ ansible --version
ansible 2.5.3
$ pip3 uninstall ansible
$ pip3 install ansible\==2.2.0
$ ansible --version
ansible 2.2.0.0

我已经成功复制了(;-ω-`) フゥ…

广告
将在 10 秒后关闭
bannerAds