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

问题描述 投票:1回答:1

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

库存文件:

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

诗篇文件:

---
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”。我尝试{{}}语法没有成功。任何建议都会非常感激。

ansible
1个回答
1
投票

这是正确的语法:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.