From 1d56fcb4f0cb85c6122e437dcf10dfe735645e39 Mon Sep 17 00:00:00 2001 From: Duong Ha-Quang Date: Wed, 24 Aug 2016 19:42:40 +0700 Subject: [PATCH] Fix bug in Elasticsearch role Add Ansbile reconfigure playbook to Elasticsearch role. Add run condition to start playbook in Elasticsearch role. Change-Id: I7862089cae55d392eb2d922f89a382d392cf8b97 Closes-Bug: #1616005 --- .../elasticsearch/tasks/do_reconfigure.yml | 64 +++++++++++++++++++ .../roles/elasticsearch/tasks/reconfigure.yml | 3 + ansible/roles/elasticsearch/tasks/start.yml | 1 + 3 files changed, 68 insertions(+) create mode 100644 ansible/roles/elasticsearch/tasks/do_reconfigure.yml diff --git a/ansible/roles/elasticsearch/tasks/do_reconfigure.yml b/ansible/roles/elasticsearch/tasks/do_reconfigure.yml new file mode 100644 index 0000000000..480746ef4b --- /dev/null +++ b/ansible/roles/elasticsearch/tasks/do_reconfigure.yml @@ -0,0 +1,64 @@ +--- +- name: Ensuring the containers up + kolla_docker: + name: "{{ item.name }}" + action: "get_container_state" + register: container_state + failed_when: container_state.Running == false + when: inventory_hostname in groups[item.group] + with_items: + - { name: elasticsearch, group: elasticsearch } + +- include: config.yml + +- name: Check the configs + command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check + changed_when: false + failed_when: false + register: check_results + when: inventory_hostname in groups[item.group] + with_items: + - { name: elasticsearch, group: elasticsearch } + +# NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS' +# and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE', +# just remove the container and start again +- name: Containers config strategy + kolla_docker: + name: "{{ item.name }}" + action: "get_container_env" + register: container_envs + when: inventory_hostname in groups[item.group] + with_items: + - { name: elasticsearch, group: elasticsearch } + +- name: Remove the containers + kolla_docker: + name: "{{ item[0]['name'] }}" + action: "remove_container" + register: remove_containers + when: + - config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' + - item[2]['rc'] == 1 + - inventory_hostname in groups[item[0]['group']] + with_together: + - [{ name: elasticsearch, group: elasticsearch }] + - "{{ container_envs.results }}" + - "{{ check_results.results }}" + +- include: start.yml + when: remove_containers.changed + +- name: Restart containers + kolla_docker: + name: "{{ item[0]['name'] }}" + action: "restart_container" + when: + - config_strategy == 'COPY_ALWAYS' + - item[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' + - item[2]['rc'] == 1 + - inventory_hostname in groups[item[0]['group']] + with_together: + - [{ name: elasticsearch, group: elasticsearch }] + - "{{ container_envs.results }}" + - "{{ check_results.results }}" diff --git a/ansible/roles/elasticsearch/tasks/reconfigure.yml b/ansible/roles/elasticsearch/tasks/reconfigure.yml index ed97d539c0..1e1abf2494 100644 --- a/ansible/roles/elasticsearch/tasks/reconfigure.yml +++ b/ansible/roles/elasticsearch/tasks/reconfigure.yml @@ -1 +1,4 @@ --- +- include: do_reconfigure.yml + serial: "30%" + when: inventory_hostname in groups ['elasticsearch'] diff --git a/ansible/roles/elasticsearch/tasks/start.yml b/ansible/roles/elasticsearch/tasks/start.yml index 56399015b0..12b167eda0 100644 --- a/ansible/roles/elasticsearch/tasks/start.yml +++ b/ansible/roles/elasticsearch/tasks/start.yml @@ -9,3 +9,4 @@ - "{{ node_config_directory }}/elasticsearch/:{{ container_config_directory }}/" - "/etc/localtime:/etc/localtime:ro" - "elasticsearch:/var/lib/elasticsearch/data" + when: inventory_hostname in groups ['elasticsearch']