winapp.example.com您好,我有一个清单文件,其中包含 Windows 应用程序服务器、Web 服务器以及仅需要停止或重新启动的相应服务。要求是仅应停止主机组的特定服务。例如,对于 appservers 主机应该使用服务在 appservers:vars 下
感谢你的帮助 !!!
Inventory\hosts.ini 文件包含
[appservers]
winapp1.example.com
winapp2.example.com
[appservers:vars]
services:
- WorkflowService
- ConfigurationService
- SyncService
- ParentConfigurationService
[slaveappservers]
winslvapp1.example.com
winslvapp2.example.com
[slaveappservers:vars]
services:
- SyncService
- ParentConfigurationService
[webservers]
webser1.ent.wfb.bank.corp
[webservers:vars]
services:
- WorkflowService
- SyncService
- ParentConfigurationService
[allservers:children]
appservers
slaveappservers
webservers
服务停止.yml
---
- name: SHRP service stop Demo
hosts: all
gather_facts: false
tasks:
- name: Pause a service
win_service:
name: "{{ item }}"
state: stopped
loop:
- "{{ services }}"
答案1
您已经有一个解决方案。定义一个具有相同名称但分组特定值的变量。在可以在两个组上运行的游戏中使用该变量名称。
存在几种语法来获取特定于组的值。
- 为组定义库存中的变量
- 在与剧本或库存相邻的 group_vars 文件中。
- 按组名索引的查找表达式或字典。
你的例子就是第一个例子。