From 7c204f68e0aa5c49cabc37b025db5725ccb4bf98 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Tue, 26 Nov 2024 19:14:07 +0200 Subject: [PATCH] Update elasticsearch ansible role - bump version from 8.8.0 to 8.16.1 - don't enable the systemd service by default(just start it) - add restart handler on config changes - configure before starting the service - fix some linter errors - hardcode auto_create_indexes to true --- data/ansible/integration_tests/main.yaml | 11 +------ .../roles/elasticsearch/defaults/main.yaml | 6 ++-- .../roles/elasticsearch/handlers/main.yaml | 8 +++++ .../roles/elasticsearch/tasks/main.yaml | 31 +++++++++---------- .../templates/elasticsearch.yml.j2 | 4 +-- 5 files changed, 28 insertions(+), 32 deletions(-) create mode 100644 data/ansible/roles/elasticsearch/handlers/main.yaml diff --git a/data/ansible/integration_tests/main.yaml b/data/ansible/integration_tests/main.yaml index 76f251f1b..03e93681f 100644 --- a/data/ansible/integration_tests/main.yaml +++ b/data/ansible/integration_tests/main.yaml @@ -3,16 +3,7 @@ roles: - ../roles/rabbitmq - ../roles/nats - - role: ../roles/elasticsearch - vars: - auto_create_index: ".monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*,cdrs" - - # # Trying for now to overwrite the auto_create_index defaults. - # # In case of failure, we will be using the commented task below: - # - name: Create 'cdrs' index in Elasticsearch for CGRateS integration tests - # command: 'curl -X PUT "localhost:9200/cdrs?pretty"' - # ignore_errors: yes - + - ../roles/elasticsearch - ../roles/kafka - ../roles/mongodb - ../roles/postgresql diff --git a/data/ansible/roles/elasticsearch/defaults/main.yaml b/data/ansible/roles/elasticsearch/defaults/main.yaml index d22993b3a..039a1fe70 100644 --- a/data/ansible/roles/elasticsearch/defaults/main.yaml +++ b/data/ansible/roles/elasticsearch/defaults/main.yaml @@ -1,13 +1,11 @@ --- -elasticsearch_version: "8.8.0" +elasticsearch_version: "8.16.1" elasticsearch_deb_url: "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{ elasticsearch_version }}-amd64.deb" elasticsearch_deb_sha_url: "{{ elasticsearch_deb_url }}.sha512" elasticsearch_gpg_key_url: "https://artifacts.elastic.co/GPG-KEY-elasticsearch" elasticsearch_gpg_keyring: "/usr/share/keyrings/elasticsearch-keyring.gpg" elasticsearch_repository: "deb [signed-by={{ elasticsearch_gpg_keyring }}] https://artifacts.elastic.co/packages/8.x/apt stable main" -auto_create_index: ".monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*" -elasticsearch_service_enabled: true +elasticsearch_service_enabled: false elasticsearch_service_state: started -elasticsearch_service_masked: false elasticsearch_dependencies: - apt-transport-https diff --git a/data/ansible/roles/elasticsearch/handlers/main.yaml b/data/ansible/roles/elasticsearch/handlers/main.yaml new file mode 100644 index 000000000..86b8266c4 --- /dev/null +++ b/data/ansible/roles/elasticsearch/handlers/main.yaml @@ -0,0 +1,8 @@ +--- +- name: Restart elasticsearch + become: true + ansible.builtin.systemd_service: + name: elasticsearch + state: restarted + daemon_reload: true + when: elasticsearch_service_state == 'started' diff --git a/data/ansible/roles/elasticsearch/tasks/main.yaml b/data/ansible/roles/elasticsearch/tasks/main.yaml index e0877562d..b91c7385d 100644 --- a/data/ansible/roles/elasticsearch/tasks/main.yaml +++ b/data/ansible/roles/elasticsearch/tasks/main.yaml @@ -1,42 +1,41 @@ --- - name: Install Elasticsearch dependencies become: true - apt: + ansible.builtin.apt: name: "{{ elasticsearch_dependencies }}" state: present - update_cache: yes - cache_valid_time: 86400 - name: Import Elasticsearch PGP Key become: true - apt_key: + ansible.builtin.apt_key: url: "{{ elasticsearch_gpg_key_url }}" keyring: "{{ elasticsearch_gpg_keyring }}" state: present - name: Add Elasticsearch APT repository become: true - apt_repository: + ansible.builtin.apt_repository: repo: "{{ elasticsearch_repository }}" state: present - name: Update APT cache and install Elasticsearch become: true - apt: + ansible.builtin.apt: name: elasticsearch - update_cache: yes state: present - -- name: Enable and start Elasticsearch service - become: true - systemd: - name: elasticsearch.service - enabled: "{{ elasticsearch_service_enabled }}" - state: "{{ elasticsearch_service_state }}" - masked: "{{ elasticsearch_service_masked }}" + update_cache: true - name: Configure Elasticsearch become: true - template: + ansible.builtin.template: src: elasticsearch.yml.j2 dest: /etc/elasticsearch/elasticsearch.yml + mode: "0644" + notify: Restart elasticsearch + +- name: Ensure elasticsearch service is in desired state + become: true + ansible.builtin.systemd: + name: elasticsearch.service + enabled: "{{ elasticsearch_service_enabled }}" + state: "{{ elasticsearch_service_state }}" diff --git a/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 b/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 index 9fd63d982..489a0cc6e 100644 --- a/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 +++ b/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 @@ -5,7 +5,7 @@ path.data: "/var/lib/elasticsearch" path.logs: "/var/log/elasticsearch" network.host: "127.0.0.1" http.port: 9200 -action.auto_create_index: "{{ auto_create_index }}" +action.auto_create_index: "true" xpack.security.enabled: false xpack.security.transport.ssl.enabled: false -xpack.security.http.ssl.enabled: false \ No newline at end of file +xpack.security.http.ssl.enabled: false