--- - name: Install Elastic Search hosts: "elastic-logstash:kibana" become: true vars_files: - vars/variables.yml environment: "{{ deployment_environment_variables | default({}) }}" pre_tasks: - include_tasks: common_task_data_node_hosts.yml tags: - always tasks: - name: Set memory fact to half set_fact: h_mem: "{{ (ansible_memtotal_mb | int) // 2 }}" tags: - always - name: Set logstash facts set_fact: elastic_heap_size: "{{ ((h_mem | int) > 30720) | ternary(30720, h_mem) }}" tags: - always - name: Set kibana elasticsearch facts block: - name: Set kibana as elasticsearch coordinators set_fact: elasticsearch_node_master: false elasticsearch_node_data: false elasticsearch_node_ingest: false elastic_heap_size: "{{ (elastic_heap_size | int) // 3 }}" when: - inventory_hostname in groups['kibana'] tags: - always - name: Configure systcl vm.max_map_count=262144 on container hosts sysctl: name: "vm.max_map_count" value: "262144" state: "present" reload: "yes" delegate_to: "{{ physical_host }}" tags: - sysctl - name: Ensure mount directories exists file: path: "/openstack/{{ inventory_hostname }}/elasticsearch" state: "directory" delegate_to: "{{ physical_host }}" - name: elasticsearch datapath bind mount lxc_container: name: "{{ inventory_hostname }}" container_command: | [[ ! -d "/var/lib/elasticsearch" ]] && mkdir -p "/var/lib/elasticsearch" container_config: - "lxc.mount.entry=/openstack/{{ inventory_hostname }}/elasticsearch var/lib/elasticsearch none bind 0 0" delegate_to: "{{ physical_host }}" when: - physical_host != inventory_hostname - container_tech | default('lxc') == 'lxc' - name: Ensure Java is installed apt: name: openjdk-8-jre state: "{{ elk_package_state | default('present') }}" install_recommends: yes update_cache: yes register: _apt_task until: _apt_task is success retries: 3 delay: 2 tags: - package_install - include_tasks: common_task_install_elk_repo.yml - name: Ensure Elastic search is installed apt: name: elasticsearch state: "{{ elk_package_state | default('present') }}" update_cache: yes register: _apt_task until: _apt_task is success retries: 3 delay: 2 tags: - package_install - name: Drop elasticsearch conf file template: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - src: templates/elasticsearch.yml.j2 dest: /etc/elasticsearch/elasticsearch.yml - src: templates/jvm.options.j2 dest: /etc/elasticsearch/jvm.options - src: templates/es-log4j2.properties.j2 dest: /etc/elasticsearch/log4j2.properties tags: - config - name: Ensure elasticsearch ownership file: path: /var/lib/elasticsearch owner: elasticsearch group: elasticsearch recurse: true register: e_perms until: e_perms is success retries: 3 delay: 1 tags: - config - name: Enable and restart elastic systemd: name: "elasticsearch" enabled: true state: restarted tags: - config tags: - server-install