consul/tasks/main.yaml
2023-02-10 17:40:55 +03:00

64 lines
1.8 KiB
YAML

- 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:
- ''
tags: consul_override_role_vars
- name: Load group variables to override role vars
include_vars:
dir: "{{ inventory_dir }}/group_vars"
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]