diff --git a/data/ansible/roles/elasticsearch/defaults/main.yaml b/data/ansible/roles/elasticsearch/defaults/main.yaml new file mode 100644 index 000000000..4728291b8 --- /dev/null +++ b/data/ansible/roles/elasticsearch/defaults/main.yaml @@ -0,0 +1,12 @@ +--- +elasticsearch_version: "8.8.0" +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_repository: "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] 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_state: started +elasticsearch_service_masked: no +elasticsearch_dependencies: + - apt-transport-https diff --git a/data/ansible/roles/elasticsearch/tasks/main.yaml b/data/ansible/roles/elasticsearch/tasks/main.yaml new file mode 100644 index 000000000..2159e6fd7 --- /dev/null +++ b/data/ansible/roles/elasticsearch/tasks/main.yaml @@ -0,0 +1,41 @@ +--- +- name: Install Elasticsearch dependencies + become: true + apt: + name: "{{ elasticsearch_dependencies }}" + state: present + update_cache: yes + cache_valid_time: 86400 + +- name: Import Elasticsearch PGP Key + become: true + apt_key: + url: "{{ elasticsearch_gpg_key_url }}" + state: present + +- name: Add Elasticsearch APT repository + become: true + apt_repository: + repo: "{{ elasticsearch_repository }}" + state: present + +- name: Update APT cache and install Elasticsearch + become: true + 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 }}" + +- name: Configure Elasticsearch + become: true + template: + src: elasticsearch.yml.j2 + dest: /etc/elasticsearch/elasticsearch.yml diff --git a/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 b/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 new file mode 100644 index 000000000..639af2381 --- /dev/null +++ b/data/ansible/roles/elasticsearch/templates/elasticsearch.yml.j2 @@ -0,0 +1,8 @@ +--- +cluster.name: "elasticsearch" +node.name: "{{ inventory_hostname }}" +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 }}"