Как проверить на tabIndex в Чай / Фермент

Решение

Вам нужно перетасовать элементы группы и сначала выбрать три. Выражение Jinja2 для этого:

(groups['ciscos'] | shuffle)[0:3]

Реализация, которая должна работать, но имеет проблемы

Вы должны просто фильтровать группу в объявлении hosts :

- hosts: "{{ (groups['ciscos'] | shuffle)[0:3] }}"
  gather_facts: no
  tasks:
    - debug:

Однако результаты неточны - хотя игра показывает как работает против трех случайно выбранных хостов, задачи иногда выполняются на 1, 2, 3 или 0:

PLAY [[u'stagin2', u'stagin4', u'stagin5']] *******************************************************************************

TASK [debug] **************************************************************************************************************
ok: [stagin2] => {
    "msg": "Hello world!"
}
ok: [stagin5] => {
    "msg": "Hello world!"
}

Обходной путь (реализация, которая работает)

Используйте модуль add_host для создания отфильтрованной группы:

- hosts: localhost
  connection: local
  gather_facts: no
  tasks:
    - add_host:
        name: "{{ item }}"
        groups: limited_selection
      loop:  "{{ (groups['ciscos'] | shuffle)[0:3] }}"

- hosts: limited_selection
  gather_facts: no
  tasks:
    - debug:
0
задан crowhill 18 January 2019 в 19:10
поделиться