从包含具有Ansible的特定文件名的文件中复制某些文件

问题描述 投票:0回答:1

我有一个包含不同filnames的文件。该文件中的文件名是什么,每次运行playbook时都会更改。

虽然我发现只能复制目录中的所有文件或复制静态定义的某些文件。

filenames.txt:

file1
file4

包含文件的目录:

file1
file2
file3
file4
file5

我的计划是在我的vars表中创建一个变量,我在其中保存文件,然后在我的角色中使用它。 copy-files: path/filenames.txt

复制文件的角色:

---
- name: Copy Files 
  copy:
    src: "{{ item }}"
    dest: "{{path2}}" 
  with_fileglob:
   - "/pathtofiles/{{copy-files}}"

可悲的是,这不会起作用。有人知道其他方法吗?

ansible
1个回答
2
投票

当我理解你的时候,你想要复制path/filenames.txt中列出的文件。您可以使用以下任务执行此操作:

- name: Copy Files to /tmp
  copy:
    src: "{{ item }}"
    dest: "{{ hqlname_sys2 }}"
  loop: "{{ lookup('file', 'path/filenames.txt').split('\n') }}"

使用path/filenames.txtlookup file plugin的内容读入字符串,并使用'\n'分隔符上的split函数对该字符串进行拆分,以便获得一个带有文件名的数组,该数组将传递给循环。

© www.soinside.com 2019 - 2024. All rights reserved.