mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-06 09:12:45 +01:00
56 lines
3.0 KiB
Django/Jinja
56 lines
3.0 KiB
Django/Jinja
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
|
{% import_yaml 'elasticsearch/defaults.yaml' as ELASTICSEARCHDEFAULTS with context %}
|
|
|
|
{% set HIGHLANDER = salt['pillar.get']('global:highlander', False) %}
|
|
|
|
{# ES_LOGSTASH_NODES is the same as LOGSTASH_NODES from logstash/map.jinja but heavynodes and fleet nodes are removed #}
|
|
{% set ES_LOGSTASH_NODES = [] %}
|
|
{% set node_data = salt['pillar.get']('logstash:nodes', {GLOBALS.role.split('-')[1]: {GLOBALS.hostname: {'ip': GLOBALS.node_ip}}}) %}
|
|
{% for node_type, node_details in node_data.items() | sort %}
|
|
{% if node_type not in ['heavynode', 'fleet'] %}
|
|
{% for hostname in node_data[node_type].keys() %}
|
|
{% do ES_LOGSTASH_NODES.append({hostname:node_details[hostname].ip}) %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if grains.id.split('_') | last in ['manager','managersearch','standalone'] %}
|
|
{% if ES_LOGSTASH_NODES | length > 1 %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.update({'discovery': {'seed_hosts': []}}) %}
|
|
{% for NODE in ES_LOGSTASH_NODES %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.discovery.seed_hosts.append(NODE.keys()|first) %}
|
|
{% endfor %}
|
|
{% if grains.id.split('_') | last == 'manager' %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'roles': ['master','data','remote_cluster_client','transform']}) %}
|
|
{% else %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'roles': ['master', 'data_hot', 'remote_cluster_client']}) %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% elif grains.id.split('_') | last == 'searchnode' %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'roles': ['data_hot', 'ingest']}) %}
|
|
{% if HIGHLANDER %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.roles.extend(['ml', 'master', 'transform']) %}
|
|
{% endif %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.update({'discovery': {'seed_hosts': [GLOBALS.manager]}}) %}
|
|
{% elif grains.id.split('_') | last == 'heavynode' %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'roles': ['master', 'data', 'remote_cluster_client', 'ingest']}) %}
|
|
{% endif %}
|
|
{% if HIGHLANDER %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.xpack.ml.update({'enabled': true}) %}
|
|
{% endif %}
|
|
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'name': GLOBALS.hostname}) %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.cluster.update({'name': GLOBALS.hostname}) %}
|
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.transport.update({'publish_host': GLOBALS.hostname}) %}
|
|
|
|
{% set ELASTICSEARCHMERGED = salt['pillar.get']('elasticsearch', default=ELASTICSEARCHDEFAULTS.elasticsearch, merge=True) %}
|
|
|
|
{% if salt['pillar.get']('elasticsearch:config:path:repo', False) %}
|
|
{% for repo in pillar.elasticsearch.config.path.repo %}
|
|
{# remove elasticsearch.config.path.repo value if the directory doesn't exist on the node #}
|
|
{% if not salt['file.directory_exists'](repo) %}
|
|
{% do ELASTICSEARCHMERGED.config.path.repo.remove(repo) %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|