【问题标题】:Ansible: Get number of hosts in groupAnsible:获取组中的主机数
【发布时间】:2016-03-30 13:41:02
【问题描述】:

我正在尝试获取某个组的主机数。

想象一下这样的库存文件:

[maingroup]
server-[01:05]

现在在我的剧本中,我想获取属于maingroup 一部分的主机数量,在这种情况下为5,并将其存储在一个变量中,该变量应该在一个模板中使用剧本的任务。

目前我正在手动设置变量,这远非理想..

vars:
  HOST_COUNT: 5

【问题讨论】:

    标签: ansible ansible-playbook


    【解决方案1】:
      vars:
        HOST_COUNT: "{{ groups['maingroup'] | length }}"
    

    【讨论】:

    • 致命:[x.x.x.x]:失败! => {"msg": "'dict object' 没有属性 'maingroup'"}
    • 'maingroup' 必须存在于您的库存文件中。在发布的示例中,他们定义了“maingroup”,但默认情况下您可能想要检查“all”组。见:docs.ansible.com/ansible/2.3/…
    • 我收到语法错误:没有名称的任务:#Count the hosts in groups in groups in inventory - hosts: localhost gather_facts: false vars: GPU_COUNT: "{{ groups['k8s_gpu_nodes'] | length }} " CPU_COUNT: "{{ groups['k8s_cpu_nodes'] | length }}" 任务:- 断言:那个:- "GPU_COUNT | int 违规行为是:#Count the hosts in groups in groups - hosts: localhost ^ here
    【解决方案2】:

    也没有明确的组名:

    vars:
        HOST_COUNT: "{{ ansible_play_hosts | length }}"
    

    【讨论】:

    • 这个答案在所有情况下都有效,与所选的不同
    • 您能否粘贴整个任务语法出现错误。
    • @AhmFM,回答我需要你的用例。
    • 再次阅读问题。 ansible_play_hosts 与在一个组中计算主机完全不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2021-01-17
    • 2017-11-09
    • 2020-04-23
    • 2019-07-21
    • 2022-10-05
    相关资源
    最近更新 更多