- name: Make sure handlers are flushed immediately meta: flush_handlers - name: Load a variable file based on the OS type include_vars: "{{ lookup('first_found', params) }}" vars: params: files: - "{{ ansible_facts['distribution'] }}.yaml" - "{{ ansible_facts['os_family'] }}.yaml" paths: - "vars" - name: Load host variables to override role vars include_vars: dir: "{{ inventory_dir }}/host_vars" ignore_unknown_extensions: True extensions: - '' - "yaml" - "yml" tags: consul_override_role_vars - name: Load group variables to override role vars include_vars: dir: "{{ inventory_dir }}/group_vars" ignore_unknown_extensions: True extensions: - '' - "yaml" - "yml" tags: consul_override_role_vars - name: Consul cluster pre-check include_tasks: pre_check.yaml when: inventory_hostname in groups[consul_server_group] - name: "Install Consul for {{ ansible_facts['os_family'] }}" include_tasks: "{{ ansible_facts['os_family'] }}/main.yaml" - name: SSL certificates generation import_tasks: cacert.yaml when: consul_ssl - name: Bootstrap Consul include_tasks: bootstrap.yaml when: inventory_hostname in groups[consul_server_group] - name: Create Consul configuration import_tasks: config.yaml - name: Enable and start Consul systemd: daemon_reload: true name: consul enabled: true state: started masked: no register: consul_enable_and_start tags: consul, consul_start - name: Join new server node to cluster import_tasks: join.yaml when: - (hostvars[inventory_hostname]['ansible_host'] is defined and hostvars[inventory_hostname]['ansible_host'] not in cluster_node_list) or hostvars[inventory_hostname]['ansible_default_ipv4']['address'] not in cluster_node_list - cluster_node_list | length != 0 - inventory_hostname in groups[consul_server_group]