Ansible scp 错误 - 没有这样的文件或目录

Ansible scp error - No such file or directory

我是 运行 一个相当简单的 Ansible 脚本,用于将目录复制到组中的所有机器。

- name: patch python patches
  hosts: group1
  user: root
  tasks:
     - name: scp the python files to all servers
       local_action: command scp -rp /data/patches_additional_files/16_1_20_002/* {{ ansible_ssh_host }}:/opt/lib/

当我手动执行 scp 命令时,文件按计划传输:

command scp -rp /data/patches_additional_files/16_1_20_002/* localhost:/opt/lib/

当我执行 Ansible 剧本时,它引发了一个错误:

"/data/patches_additional_files/16_1_20_002/*": "No such file or directory"

查看 "whoami" 的输出并确保权限设置正确。例如

   tasks:
     - local_action: command whoami
       register: result
     - debug:
         var: result.stdout

scp 命令无法正常工作。变量ansible_ssh_host"reflects the host a task is delegated to"。参见 Delegation

     - name: scp the python files to all servers
       local_action: command scp -rp ... {{ ansible_ssh_host }}:/opt/lib/

看起来 ansible 不再喜欢星号 (*) 了。 我从我的 python 脚本循环遍历目录,并将每个目录添加到 scp 命令。

您尝试过使用复制模块吗?

tasks:
  - name: copy the python files to all servers
    copy:
      src: "{{ item }}"
      dest: /opt/lib/
    with_fileglob:
      - /data/patches_additional_files/16_1_20_002/*