我在剧本中有一个任务,如下所示:
target 'mobilesdkIntegrationTests' do
// write here any predefined pods if any, like
testing_pods
end
现在,我有一些变量,每次运行时在文件中定义的变量中有些是常见的,有些则有所不同。
例如,文件- name: Create configuration.json for every analytics from the template.
template:
src: ./src-zip/{{ item.key }}/configuration_sample.j2
dest: ./src-zip/{{ item.key }}/configuration.json
with_dict: "{{ apps }}"
可以运行一次。
再进行一次跑步,我有var_alerts-manager.yml
。
现在我想对不同的运行使用不同的文件。换句话说,模板将在一次运行中使用var_abc.yml
中定义的变量,而在另一次运行中使用var_alerts-manager.yml
中定义的变量,依此类推。
这怎么能做到呢?我应该将这些文件保存在哪里,以便任务每次运行只能包含该特定文件?
答案 0 :(得分:2)
这是角色机制演变的场景:
在剧本目录中创建一个my_role
角色。
将任务和模板移到该角色。
将变量存储在该角色的vars
目录中。
执行以下角色:
- name: Create configuration.json for every analytics from the template.
include_role:
name: my_role
vars_from: "{{ item.key }}" # or whatever key your naming is defined in
loop: "{{ apps|dict2items }}"
为清楚起见,您可能希望将模板任务中的item
替换为其他变量,请参阅loop_control
。