为不同的主机使用不同的文件
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
我正在使用 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