在“inventory_hostname”时使主机组成为变量的语法是什么?

时间:2018-02-28 15:02:48

标签: ansible

我最近发现如何使用“when inventory_hostname”来为主机组中的第一个主机设置set_fact。我想知道如何将变量作为主机组传递。在我的测试中,我使用以下内容:

库存文件:

---
[test]
test-001.example.com
test-002.example.com

vars文件:

---
declared_hostgroup: test

剧本:

- name: set first host in group as master
  set_fact:
    test_order: MASTER
  when: inventory_hostname == group.test[0]

这很有效。但我想将“group.test”中的“test”替换为变量“declared_hostgroup”。我尝试{{}}语法没有成功。任何建议都会非常感激。

1 个答案:

答案 0 :(得分:1)

这是正确的语法:

when: inventory_hostname == group[declared_hostgroup][0]

但请记住,尽管Ansible试图保持主机的顺序一致,但它可能会在未来的某个时间制动(例如,不同的排序顺序或其他一些怪癖),因此您可能希望在清单中标记主机内容。 / p>