如何在Ansible中执行交替角色?

时间:2018-07-31 14:58:48

标签: ansible

我需要以某种方式遍历变量列表,并为每次迭代一次执行以下两个角色,每次迭代将变量传递给角色。例如,给定变量列表100-101,我需要按role1:100,role2:100,role1:101,role2:101的顺序执行。变量100-100应该传递给角色内部的任务。

cd /usr/local/opt/proj/lib/
ln -s libproj.13.dylib libproj.12.dylib

我一直在寻找以下答案作为可能的解决方案,但不确定如何使其适应我的需求。可以在Ansible中完成上述方案吗?

Ansible: How to iterate over a role with an array?

1 个答案:

答案 0 :(得分:0)

遍历变量和角色名称的笛卡尔积:

vars:
  roles_to_include:
    - role1
    - role2
  values_to_pass:
    - 100
    - 101

tasks:
  - include_role:
      name: "{{ item.1 }}"
    vars:
      my_variable: "{{ item.0 }}"
    loop: "{{ values_to_pass | product(roles_to_include) | list }}"