我正在使用Ansible(使用Ansible Tower)并希望创建一个运行测试的任务。
我有(SoapUI测试)的属性文件,其格式为key = value。该值将根据运行测试的主机而更改。
虽然有一种方法可以为每个主机指定不同的变量,但似乎没有办法为不同的主机指定不同的文件。
似乎(据我所知)最好的方法是创建模板(http://docs.ansible.com/ansible/template_module.html)而不是属性文件,并使用主机变量填充模板值。有替代方法还是更好方法?
答案 0 :(得分:3)
您只需将文件路径设置为变量即可。
因此,如果您有一个将文件复制到以下框中的任务:
- name: Copy properties file to box
copy:
src: path/to/file
dest: path/to/dest
您只需将其更改为:
- name: Copy properties file to box
copy:
src: "{{ properties_file }}"
dest: path/to/dest
然后您只需为相应的环境组或主机设置properties_file
变量,如下所示:
group_vars的/ dev:
properties_file: path/to/dev/file
group_vars / PROD:
properties_file: path/to/prod/file