为不同的主机使用不同的文件

Using different files for different hosts

我正在使用 Ansible(与 Ansible Tower)并想创建一个运行测试的任务。

我有一个用于(SoapUI 测试)的属性文件,其格式为键=值。该值将根据测试运行所在的主机而变化。

虽然可以为每个主机指定不同的变量,但似乎没有办法为不同的主机指定不同的文件。

据我所知,最好的方法似乎是创建一个模板 (http://docs.ansible.com/ansible/template_module.html) 而不是属性文件,并使用主机变量填充模板值。有替代或更好的方法吗?

您可以简单地将文件路径设置为一个变量。

因此,如果您的任务是将文件复制到如下所示的框中:

- 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