Назад | Перейти на главную страницу

ansible: собрать факты в задачу?

Прямо сейчас для того, чтобы подтянуть серверы ELK, у меня есть. Примерно так для моего основного сценария веб-приложений

---

- 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

Он пропускает лосиные серверы.

Итак, filebeat настроен на общую роль. Есть ли вообще как common/roles/filebeat.yml to gather_facts для серверов elk, чтобы я мог очистить его и не пропустить их, если я хочу также ограничить доступный запуск одним сервером приложений?

delegate_facts

Делегированные факты узнавать факты от другого хоста, даже если этот другой хост не участвовал в игре. Слегка изменен из примера игры в документации:

- hosts: apps
  tasks:
    - name: gather facts from apps
      tags: ['apps']
      setup:
      delegate_to: "{{item}}"
      delegate_facts: True
      with_items: "{{groups['elk']}}"