ansible:在任务中收集事实?

ansible:在任务中收集事实?

现在为了引入 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']}}"

相关内容