我有一个包含不同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}}"
可悲的是,这不会起作用。有人知道其他方法吗?
当我理解你的时候,你想要复制path/filenames.txt
中列出的文件。您可以使用以下任务执行此操作:
- name: Copy Files to /tmp
copy:
src: "{{ item }}"
dest: "{{ hqlname_sys2 }}"
loop: "{{ lookup('file', 'path/filenames.txt').split('\n') }}"
使用path/filenames.txt
将lookup file plugin的内容读入字符串,并使用'\n'
分隔符上的split函数对该字符串进行拆分,以便获得一个带有文件名的数组,该数组将传递给循环。