61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
---
|
|
|
|
- name: Converge
|
|
hosts: all
|
|
become: true
|
|
become_user: root
|
|
vars:
|
|
# arguments common to all managers
|
|
wazuh_managers_common:
|
|
port: 1514
|
|
protocol: tcp
|
|
api_port: 55000
|
|
api_proto: 'http'
|
|
api_user: ansible
|
|
max_retries: 5
|
|
retry_interval: 5
|
|
roles:
|
|
# 1. Elasticsearch
|
|
- role: ../../roles/elastic-stack/ansible-elasticsearch
|
|
when: inventory_hostname in groups['elastic']
|
|
# 2. Managers
|
|
- role: ../../roles/wazuh/ansible-wazuh-manager
|
|
when: inventory_hostname in groups['managers']
|
|
- role: ../../roles/wazuh/ansible-filebeat
|
|
when: inventory_hostname in groups['managers']
|
|
# 3. Kibana
|
|
- role: ../../roles/elastic-stack/ansible-kibana
|
|
when: inventory_hostname in groups['kibana']
|
|
# 4. Agents:
|
|
- role: ../../roles/wazuh/ansible-wazuh-agent
|
|
vars:
|
|
wazuh_managers: '{{ wazuh_managers_list }}'
|
|
when: inventory_hostname in groups['agents']
|
|
pre_tasks:
|
|
|
|
- name: (converge) build wazuh_managers list dynamically for agents to consume
|
|
set_fact:
|
|
wazuh_managers_list: '{{ wazuh_managers_list | default([]) | union([merged_dict]) }}'
|
|
vars:
|
|
merged_dict: '{{ wazuh_managers_common | combine({"address": item}) }}'
|
|
loop: '{{ manager_addresses }}'
|
|
|
|
- name: (converge) fix ubuntu repository key task in thin images where gpg-agent is missing
|
|
apt:
|
|
name: gpg-agent
|
|
state: present
|
|
update_cache: yes
|
|
when:
|
|
- ansible_distribution == "Ubuntu"
|
|
- inventory_hostname in groups['agents']
|
|
|
|
- debug:
|
|
msg: |
|
|
-----------------------------------------
|
|
managers: {{ managers_hostvars | length }}
|
|
addresses: {{ manager_addresses }}
|
|
-----------------------------------------
|
|
elastic: {{ elastic_hostvars | length }}
|
|
addresses: {{ elastic_addresses }}
|
|
-----------------------------------------
|