diff --git a/docs/role-elasticsearch.md b/docs/role-elasticsearch.md index e8b53c8f..4099322c 100644 --- a/docs/role-elasticsearch.md +++ b/docs/role-elasticsearch.md @@ -31,7 +31,7 @@ Role Variables * *elasticsearch_pamlimits*: Set pam_limits neccessary for Elasticsearch. (Default: `true`) * *elasticsearch_check_calculation*: End play in checks (Default: `false`) * *elasticsearch_network_host*: You can configure multipe network addresses where the networking is bind to. You can assign IP addresses or interfaces by their names. You can also use elasticsearch internal variabels as it set as default. Example: `"_ens190_,_local_"` (Default: `"_local_,"_site_"`) (Optional; if not defined `default` is used) - +* *elasticsearch_api_host*: Hostname or IP elasticsearch is listening on. Only used for connection checks by ansible role. (Default: `localhost`) * *elasticsearch_extra_config*: You can set additional configuration in YAML-notation as you would write in the `elasaticsearch.yml`. Example: ```YAML diff --git a/roles/elasticsearch/defaults/main.yml b/roles/elasticsearch/defaults/main.yml index 57f86c69..c35cb0de 100644 --- a/roles/elasticsearch/defaults/main.yml +++ b/roles/elasticsearch/defaults/main.yml @@ -22,6 +22,7 @@ elasticsearch_conf_dir: "/etc/elasticsearch/" elasticsearch_config_jvm: "jvm.options.j2" elasticsearch_user: elasticsearch elasticsearch_group: elasticsearch +elasticsearch_api_host: localhost # JVM custom parameters elasticsearch_java_home: '' diff --git a/roles/elasticsearch/tasks/elasticsearch-security.yml b/roles/elasticsearch/tasks/elasticsearch-security.yml index 48bcb2aa..c43b6249 100644 --- a/roles/elasticsearch/tasks/elasticsearch-security.yml +++ b/roles/elasticsearch/tasks/elasticsearch-security.yml @@ -391,7 +391,7 @@ - name: Check for API with bootstrap password ansible.builtin.uri: - url: "{{ elasticsearch_http_protocol }}://localhost:{{ elasticstack_elasticsearch_http_port }}" + url: "{{ elasticsearch_http_protocol }}://{{ elasticsearch_api_host }}:{{ elasticstack_elasticsearch_http_port }}" user: elastic password: "{{ elasticsearch_bootstrap_pw }}" validate_certs: false @@ -410,7 +410,7 @@ - name: Check for cluster status with bootstrap password ansible.builtin.uri: - url: "{{ elasticsearch_http_protocol }}://localhost:{{ elasticstack_elasticsearch_http_port }}/_cluster/health?pretty" + url: "{{ elasticsearch_http_protocol }}://{{ elasticsearch_api_host }}:{{ elasticstack_elasticsearch_http_port }}/_cluster/health?pretty" user: elastic password: "{{ elasticsearch_bootstrap_pw }}" validate_certs: false @@ -437,7 +437,7 @@ - name: Check for API availability with elastic password ansible.builtin.uri: - url: "{{ elasticsearch_http_protocol }}://localhost:{{ elasticstack_elasticsearch_http_port }}" + url: "{{ elasticsearch_http_protocol }}://{{ elasticsearch_api_host }}:{{ elasticstack_elasticsearch_http_port }}" user: elastic password: "{{ elasticstack_password.stdout }}" validate_certs: false @@ -466,7 +466,7 @@ curl -k -X PUT - "{{ elasticsearch_http_protocol }}://elastic:{{ elasticstack_password.stdout }}@localhost:9200/_cluster/settings" + "{{ elasticsearch_http_protocol }}://elastic:{{ elasticstack_password.stdout }}@{{ elasticsearch_api_host }}:9200/_cluster/settings" -H 'Content-Type: application/json' -d ' { @@ -488,7 +488,7 @@ - name: Check for cluster status with elastic password ansible.builtin.uri: - url: "{{ elasticsearch_http_protocol }}://localhost:{{ elasticstack_elasticsearch_http_port }}/_cluster/health?pretty" + url: "{{ elasticsearch_http_protocol }}://{{ elasticsearch_api_host }}:{{ elasticstack_elasticsearch_http_port }}/_cluster/health?pretty" user: elastic password: "{{ elasticstack_password.stdout }}" validate_certs: false diff --git a/roles/elasticsearch/tasks/main.yml b/roles/elasticsearch/tasks/main.yml index 80af2291..cfad7f59 100644 --- a/roles/elasticsearch/tasks/main.yml +++ b/roles/elasticsearch/tasks/main.yml @@ -222,7 +222,7 @@ block: - name: Check for cluster status without security ansible.builtin.uri: - url: "http://localhost:{{ elasticstack_elasticsearch_http_port }}/_cluster/health?pretty" + url: "http://{{ elasticsearch_api_host }}:{{ elasticstack_elasticsearch_http_port }}/_cluster/health?pretty" register: elasticsearch_cluster_status ignore_errors: "{{ ansible_check_mode }}" until: elasticsearch_cluster_status.json.status == "green" diff --git a/roles/elasticsearch/tasks/wait_for_instance.yml b/roles/elasticsearch/tasks/wait_for_instance.yml index dd237939..6bcd90df 100644 --- a/roles/elasticsearch/tasks/wait_for_instance.yml +++ b/roles/elasticsearch/tasks/wait_for_instance.yml @@ -2,7 +2,7 @@ - name: Wait for instance ansible.builtin.wait_for: - host: "{{ hostvars[item].ansible_default_ipv4.address }}" + host: "{{ elasticsearch_api_host }}" port: "{{ elasticstack_elasticsearch_http_port }}" timeout: 600 tags: