ansible如何将现有主机添加到组中

sup*_*i g 6 ansible

我想根据主机上定义的变量将现有主机动态添加到多个组。有没有办法做到。我可以执行 group_by 操作,但这只能将其归入一组。

例如在我的主机文件中

[dc1hosts]
1.1.1.1
1.1.1.2

[dc1hosts:vars]
iamDB=True
iamCache=True
<more-properties>

[dc2hosts]
2.1.1.1
2.2.2.2

[dc2hosts:vars]
iamDB=True
<some-more-properties>
Run Code Online (Sandbox Code Playgroud)

我想根据谁拥有旗帜和谁拥有旗帜来生成 2 个名为dbhosts和的组。cachehostsiamDBiamCache

有没有办法做到这一点?

udo*_*dan 7

您可以使用该add_host模块来做到这一点。

- name: Create dynamic groups
  add_host: hostname={{ item }} groups=dbhosts,cachehosts
  with_items: groups['all']
  when:
    - iamDB == True
    - iamCache == True
Run Code Online (Sandbox Code Playgroud)

编辑:可能您的意思是在满足任何条件时创建两个不同的组......但我认为您明白了。

  • 略有变化 - 名称:创建动态组 add_host: hostname={{ item }} groups=dbhosts,cachehosts with_items: groups['all'] 当:hostvars[item].iamDB == True (2认同)