Ansible 组中基于 ip 范围的动态组

Dynamic groups based on ip range in Ansible groups

如何在 ansible inventory 组中创建基于 ip 地址范围的变量组?我在不同的位置有两组服务器。我想在每次剧本时创建组,以便剧本在更新的服务器列表中 运行。我已经在我的主机清单中根据分发、生产、开发、测试、质量保证、博士进行分组。

提前致谢

您可以在开始时扫描所有主机,然后根据需要对它们进行分组,例如按网络:

- hosts: all
  tasks:
    - group_by: key=network_{{ ansible_default_ipv4.network }}

这将创建与您拥有的不同网络一样多的名称为 network_<network> 的群组。但请记住,它需要从所有主机收集事实,因此根据主机数量和连接速度,它可能需要大量时间。事实缓存会加快速度,但无论如何...

如果您手动管理库存文件,请考虑手动指定区域组。