使用不同主机的不同输入执行任务

时间:2017-10-04 14:23:52

标签: python configuration ansible yaml jinja2

假设我有这样的任务:

- name: install python modules
  pip:
    name: "{{ item }}"
  with_items:
    - requests

我想在播放的所有主机上执行该操作,但根据主机不同with_items。那可能吗。我无法在网络上找到任何相关内容。

我的目标是配置4个相似但略有不同的盒子。所有任务都相同,但输入略有不同。我不想要有4个连续剧。我想要1个并行游戏。

2 个答案:

答案 0 :(得分:0)

听起来非常基本:在以下任一主机中为每个主机分别定义包含包名列表的变量:

答案 1 :(得分:0)

我的路线略有不同,因为我试图保持动态:

我有一个add_host任务,它迭代一个列表:

- add_host:
    name: "{{ item }}"
    ansible_ssh_user: "{{ item }}"
    var: "{{ var[item] }}"
  with_items: "{{ myList }}"

这样我可以有一个单独的vars文件,我将主机的配置定义为变量:

var:
  host1:
    - xxx
    - yyy
  host2:
    - zzz
    - vvv