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

ET1*_*T13 5 ansible

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

我有一个(SoapUI 测试)的属性文件,其形式为 key=value。该值将根据运行测试的主机而变化。

尽管有一种方法可以为每个主机指定不同的变量,但似乎没有一种方法可以为不同的主机指定不同的文件。

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

yda*_*coR 5

您只需将文件路径设置为变量即可。

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

- name: Copy properties file to box
  copy:
    src: path/to/file
    dest: path/to/dest
Run Code Online (Sandbox Code Playgroud)

您可以简单地将其更改为:

- name: Copy properties file to box
  copy:
    src: "{{ properties_file }}"
    dest: path/to/dest
Run Code Online (Sandbox Code Playgroud)

然后您只需properties_file为适当的环境组或主机设置变量,如下所示:

group_vars/dev:

properties_file: path/to/dev/file
Run Code Online (Sandbox Code Playgroud)

组变量/产品:

properties_file: path/to/prod/file
Run Code Online (Sandbox Code Playgroud)