【问题标题】:Bulk Copy Using Wildcard in Ansible在 Ansible 中使用通配符进行批量复制
【发布时间】:2018-05-30 22:26:26
【问题描述】:

请注意,我正在尝试使用 ansible 将批量文件从我的源服务器复制到目标服务器。在尝试错误时。请帮帮我。

---
- name: Going to copy bulk files
hosts: test
vars_prompt:
- name: copy
prompt: Enter the Bulk File to Copy
private: no
tasks:
- name: Copy bulk files
shell: cp /tmp/guru/{{ copy }}* /ansible/sri

【问题讨论】:

  • 抛出哪个错误?
  • 有一点可以肯定:您不能通过执行cp 命令“将批量文件从我的源服务器复制到目标服务器”。
  • "msg": "非零返回码", "rc": 1, "start": "2017-12-17 16:12:08.309199", "stderr": "cp:无法统计'/tmp/guru/a*':没有这样的文件或目录”,“stderr_lines”:[“cp:无法统计'/tmp/guru/a*':没有这样的文件或目录”],“stdout” : "", "stdout_lines": [] }

标签: ansible


【解决方案1】:

shell module在目标服务器上执行一个shell命令,解释了错误信息cp: cannot stat ‘/tmp/guru/a*’: No such file or directorycp的源文件在目标服务器上不存在。 p>

Ansible 提供了一个lot of modules,它比执行 shell 命令更适合使用。

在您的情况下,copy module 是您需要的:它将文件从源服务器复制到目标服务器。您可以将其与with_fileglob loop 结合使用:

tasks:
  - name: Copy bulk files
    copy:
      src: "{{ item }}"
      dest: /ansible/sri
    with_fileglob: "/tmp/guru/{{ copy }}*"

【讨论】:

  • 我得到 {"msg": "'copy' is undefined"}
  • 在原始问题中,copy 变量位于vars_prompt 部分。您需要通过使用或不使用变量来适应您的用例,并以适合您需要的方式定义它(group_varvars_prompt、extra var、...)
猜你喜欢
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
相关资源
最近更新 更多