如何在组中的第一台主机上制作 Ansible 剧本 运行?

How to make Ansible playbook run on first host in the group?

我如何才能 运行 仅在组中的第一个主机上使用剧本?

我期待这样的事情:

---
- name: playbook that only run on first host in the group
  hosts: "{{ groups[group_name] | first }}"

  tasks:
   - debug:
       msg: "on {{ inventory_hostname }}"

但这行不通,报错:

'groups' is undefined

我怎样才能让它发挥作用?

您可以使用:

hosts: group_name[0]

清单主机值(在 hosts 指令中指定)使用自定义解析器处理,它不允许像常规模板引擎那样使用 Jinja2 表达式。

了解 Patterns