【发布时间】:2020-05-20 18:34:05
【问题描述】:
感谢大家的帮助,
我有兴趣了解如何设置具有以下结构的 vars 文件以及如何在字典中迭代多个深度嵌套的项目。最终目标是在匹配多个或单个角色或由特定团队或团队使用的主机上执行任务。
1) 这个结构正确吗?我见过这么多不同的例子,我不确定了......
2) 是否有可能通过匹配单个角色但匹配多个团队来在多个主机上执行任务?
3) 我如何遍历字典并从具有多个项目的子元素中获取单个项目,例如 "teams: sales" 或 "teams: dev" ?例如,我想在 host1 上执行任务,并匹配我为他们提供的操作以及开发和销售团队文件。例如,将文件复制到该主机上的团队目录。 Host2 有不同的团队,因此可以使用相同的任务,但仅将文件传送到该单个主机上的那些团队目录。
4) 相同的愿望将适用于每个主机的角色...能够为单个主机具有多个角色,但匹配角色值(两个角色或单个角色)。
不管怎样,我已经看了很多东西,但我还没有找到适合这个的东西,但我觉得有可能——有点像??
### hostmap.yml
---
host_team_map:
host_list:
host1:
comment: "host description"
application_role: [ 'role1', 'role2' ] <----------- multiple subitems
teams: [ 'operations', 'dev', 'sales' ] <----------- multiple subitems
host2:
comment: "host description"
application_role: [ 'role3' ]
teams: [ 'operations', 'dev' ]
host3:
comment: "host description"
application_role: [ 'role3', 'role4' ]
teams: [ 'operations' ]
再次感谢您的帮助!
【问题讨论】:
-
从你的问题中我并不完全清楚你想要做什么,但看看你的
hostmap.yml文件,它看起来应该只是一个库存文件。
标签: ansible