我正在尝试使用Ansible复制许多文件。 这是我的剧本:
- name: Copy the scenario test
copy:
src: files/{{ scenario_name }}
dest: /home/{{ user }}/scenario_creation
mode: '0644'
run_once: true
loop: "{{ scenario_name }}"
tags:
- user
- scenario
这是我的角色/scenario_test/defaults/main.yml
scenario_name: ['topup-scenario.json', 'test.json']
我执行剧本时说:
"msg": "Could not find or access 'files/[u'topup-scenario.json', u'test.json']'\nSearched in:\n\t/home/path/ansible/plays/files/[u'topup-scenario.json', u'test.json']\n\t/home/path/ansible/plays/files/[u'topup-scenario.json', u'test.json'] on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"
}
有什么帮助吗?
答案 0 :(得分:1)
更改:
src: files/
到
src: ./files/
答案 1 :(得分:0)
您需要将代码更改为此:
- name: Copy the scenario test
copy:
src: files/{{ item }}
dest: /home/{{ user }}/scenario_creation
mode: '0644'
run_once: true
loop: "{{ scenario_name }}"
tags:
- user
- scenario
除非您使用loop_var选项重新定义列表,否则循环将列表迭代为术语“项目”。因此,当您在src行中调用cenario_name时,实际上是在调用整个列表,而不是列表的迭代。