ansible - 在 hosts 文件中定位 Ansible 嵌套子组
问题描述
我有一个包含嵌套子组的主机文件,类似于:
all:
children:
GROUP1:
children:
webservers:
hosts:
hostname1:
sqlservers:
hosts:
hostname2:
GROUP2:
children:
webservers:
hosts:
hostname3:
hostname4:
GROUP3:
children:
webservers:
hosts:
hostname5:
hostname6:
sqlservers:
hosts:
hostname7:
我可以成功定位第一层组,例如 GROUP1,但我希望定位嵌套组,例如 GROUP1>webservers 或 GROUP3>sqlservers。
我能找到的文档只涉及第一层组。有没有办法做到这一点?
谢谢,
解决方案
Ansible 实际上并不支持“嵌套组”。组名是一个平面命名空间,并且只能在您的清单中定义一次。当您将一个组定义(如webservers
)嵌套在另一个组(如GROUP1
)中时,它实际上只是使主机成为两个组的成员的简写。
换句话说,当你写这个时:
all:
children:
GROUP1:
children:
webservers:
hosts:
hostname1:
sqlservers:
hosts:
hostname2:
GROUP2:
children:
webservers:
hosts:
hostname3:
hostname4:
它与以下平面布局相同:
all:
children:
GROUP1:
hosts:
hostname1:
hostname2:
GROUP2:
hosts:
hostname3:
hostname4:
webservers:
hosts:
hostname3:
hostname4:
sqlservers:
hosts:
hostname2:
请注意,该webservers
组仅包含hostname
and
hostname4
,因为您的第二个定义webservers
覆盖了第一个。
推荐阅读
- alfresco - 在 Alfresco 中找不到类 org.alfresco.web.config.WebClientConfigBootstrap
- c# - 为什么 SaveFileDialog 包含韩文字符时会更改文件名?
- android - 连线内存不足:ffmpeg 库的 Java 堆空间错误
- javascript - vue js 没有正确显示 props 组件
- amazon-web-services - Terraform:如何始终为新实例生成“新鲜”的 EIP?
- python - 是否可以在 geotiff 图像与 geopandas 数据框之间建立连接?
- python - 从形状(m,n)的numpy数组创建熊猫系列
- c# - 如何使用泛型类型注册依赖注入?(.net 核心)
- json - 如何从 JSON 文件中获取特定用户?
- python-3.x - IndentationError unindent 不匹配任何外部缩进级别