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
 |