将文件夹复制到远程时,Ansible 有 50% 的时间失败

Ansible fails 50% of the time when copying folder to remote

我想将一个文件夹从本地 src 复制到 destination 。

剧本失败 1/2 次而没有更改代码中的任何内容。

这里是错误:

TASK [Copy Source Files] *******************************************
fatal: [124....]: FAILED! => {"changed": false, ...        
        "details": "bad symbolic permission for mode: True", 
        "failed": true, "gid": 0, "group": "root", 
        "mode": "0755", 
        "msg": "mode must be in octal or symbolic form", 
        "owner": "root", 
        "path": "/home/ubuntu/src", "size": 4096, "state": "directory", "uid": 0}
    to retry, use: --limit @/Users/Perso/ansible_tests/playbook.retry

PLAY RECAP *********************************************************

这里是剧本的相应任务:

- name: "Copy Source Files"
  copy:
    src: ./src
    dest: /home/ubuntu/
    directory_mode: yes
    owner: root
    group: root
    force: true

我在某处看到这 is/was 一个已知问题。

有什么想法吗? 谢谢!

您的错误消息清楚地表明您在 directory_mode 参数中有错误。根据 documentation directory_mode 用于为新创建的目录设置模式。所以 yes 在这里没有意义,你应该使用正确的形式来设置权限,即 0755u=rwx,g=rx,o=rx

是的,我也试过用特定模式复制文件。当我以八进制数字 0777 给出模式时,它对我有用。

  - name: copy the checkout.py file
    copy:
    src: /home/checkout.py
    dest: /home
    mode: 0777