现在为了引入 ELK 服务器,我拥有。我的主要 Web 应用剧本如下
---
- hosts: elk
gather_facts: true
tags: ['apps']
- hosts: apps
become: true
roles:
- common
- app
tags:
- apps
这很好用,但是如果我做类似的事情
ansible-playbook ./runs/app.yml --limit app-01.domain.com
它跳过了 elk 服务器。
因此 filebeat 是在通用角色中设置的。如果我想将 ansible 运行限制在单个应用服务器上,那么有没有办法common/roles/filebeat.yml
为 elk 服务器收集事实,以便我可以清理它而不跳过它们?
答案1
委托事实
委托事实从其他主持人那里了解事实,即使其他主持人不是该剧的一部分。从文档示例剧中略作修改:
- hosts: apps
tasks:
- name: gather facts from apps
tags: ['apps']
setup:
delegate_to: "{{item}}"
delegate_facts: True
with_items: "{{groups['elk']}}"