可靠的。如何从组中选择N台主机

Ansible. How to choose N hosts from group

假设一个群组有10台主机。
如何 运行 10 台主机上的剧本。N 是从 1 到 10 的任意值。
示例:

- hosts: groups['group_name'][1:3] it works.

但是如果我使用变量而不是 3 它就不起作用,就像这样

- hosts: groups['group_name'][1:N]  

它可以是随机的 N 个,第一个 N 个,最后一个 N 个等等。

谢谢。

这项工作在 ansible 2.1 中绝对没问题:

---
- hosts: all
  gather_facts: no
  tasks:
    - group_by: key=limited_selection
      when: play_hosts.index(inventory_hostname) < max_index | int

- hosts: limited_selection
  gather_facts: no
  tasks:
    - debug: msg="I'm in the limited selection group!"

像这样执行:ansible-playbook -e max_index=3 playbook.yml 或在其他地方定义 max_index