72 lines
1.6 KiB
YAML
72 lines
1.6 KiB
YAML
---
|
|
- name: Install and configure Consul clients on all nodes
|
|
hosts: all
|
|
become: yes
|
|
vars:
|
|
consul_servers:
|
|
- "100.117.106.136" # ch4 (韩国)
|
|
- "100.122.197.112" # warden (北京)
|
|
- "100.116.80.94" # ash3c (美国)
|
|
|
|
tasks:
|
|
- name: Get Tailscale IP address
|
|
shell: ip addr show tailscale0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1
|
|
register: tailscale_ip_result
|
|
changed_when: false
|
|
|
|
- name: Set Tailscale IP fact
|
|
set_fact:
|
|
tailscale_ip: "{{ tailscale_ip_result.stdout }}"
|
|
|
|
- name: Install Consul
|
|
apt:
|
|
name: consul
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Create Consul data directory
|
|
file:
|
|
path: /opt/consul/data
|
|
state: directory
|
|
owner: consul
|
|
group: consul
|
|
mode: '0755'
|
|
|
|
- name: Create Consul log directory
|
|
file:
|
|
path: /var/log/consul
|
|
state: directory
|
|
owner: consul
|
|
group: consul
|
|
mode: '0755'
|
|
|
|
- name: Create Consul config directory
|
|
file:
|
|
path: /etc/consul.d
|
|
state: directory
|
|
owner: consul
|
|
group: consul
|
|
mode: '0755'
|
|
|
|
- name: Generate Consul client configuration
|
|
template:
|
|
src: consul-client.hcl.j2
|
|
dest: /etc/consul.d/consul.hcl
|
|
owner: consul
|
|
group: consul
|
|
mode: '0644'
|
|
notify: restart consul
|
|
|
|
- name: Enable and start Consul service
|
|
systemd:
|
|
name: consul
|
|
enabled: yes
|
|
state: started
|
|
daemon_reload: yes
|
|
|
|
handlers:
|
|
- name: restart consul
|
|
systemd:
|
|
name: consul
|
|
state: restarted
|