【问题标题】:Copy folder content with Ansible使用 Ansible 复制文件夹内容
【发布时间】:2017-07-05 21:01:00
【问题描述】:

由于一些奇怪的原因,我在将文件夹myfiles(其中的几个文件)的内容复制到dist/myfiles 位置的简单任务中遇到了麻烦。任务如下所示:

name: Deploy config files like there is no tomorrow
copy:
  src: "{{ item }}"
  dest: "/home/{{ ansible_user_id }}/dist/{{ item }}"
with_items:
  - 'config'
  - 'myfiles/'

dist下存在myfiles文件夹,将config文件复制到dist文件夹下。

这在 Ansible 中是否可行,或者我应该分别复制每个文件?我做错了吗?

【问题讨论】:

  • 复制模块复制文件。它确实支持一些递归目录复制,但不是最好的。如果您需要目录,您应该尝试使用docs.ansible.com/ansible/synchronize_module.html。注意:它需要机器上的 rsync 才能工作,在某些发行版上默认不安装。

标签: ansible


【解决方案1】:

您的任务会正确复制 Debian 和 CentOS 目标上的 config 文件和 myfiles


如果由于某种原因您遇到问题,您可以查看Looping over Fileglobs

您需要将任务一分为二,第二个看起来像:

- name: Deploy multiple config files
  copy:
    src: "{{ item }}"
    dest: "/home/{{ ansible_user_id }}/dist/myfiles/{{ item | basename }}"
  with_fileglob:
    - /path/to/myfiles/*

对于递归副本,请查看this question on SeverFault


或者,您可以使用synchronize module,但在使用become 时要特别注意。见this question on SuperUser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 2021-07-09
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多