46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						||
- name: 实现路由反射器架构 - 所有节点通过Traefik访问Consul
 | 
						||
  hosts: nomad_nodes
 | 
						||
  become: yes
 | 
						||
  vars:
 | 
						||
    traefik_endpoint: "hcp1.tailnet-68f9.ts.net:80"
 | 
						||
  
 | 
						||
  tasks:
 | 
						||
    - name: 📊 显示架构优化信息
 | 
						||
      debug:
 | 
						||
        msg: |
 | 
						||
          🎯 实现BGP路由反射器模式
 | 
						||
          📉 连接数优化:Full Mesh (54连接) → Star Topology (21连接)
 | 
						||
          🌐 所有节点 → Traefik → Consul Leader          
 | 
						||
      run_once: true
 | 
						||
 | 
						||
    - name: 🔍 检查当前Consul配置
 | 
						||
      shell: grep "address.*=" /etc/nomad.d/nomad.hcl
 | 
						||
      register: current_config
 | 
						||
      ignore_errors: yes
 | 
						||
 | 
						||
    - name: 📋 显示当前配置
 | 
						||
      debug:
 | 
						||
        msg: "当前配置: {{ current_config.stdout }}"
 | 
						||
 | 
						||
    - name: 🔧 更新Consul地址为Traefik端点
 | 
						||
      replace:
 | 
						||
        path: /etc/nomad.d/nomad.hcl
 | 
						||
        regexp: 'address = "[^"]*"'
 | 
						||
        replace: 'address = "{{ traefik_endpoint }}"'
 | 
						||
      notify: restart nomad
 | 
						||
 | 
						||
    - name: ✅ 验证配置更新
 | 
						||
      shell: grep "address.*=" /etc/nomad.d/nomad.hcl
 | 
						||
      register: new_config
 | 
						||
 | 
						||
    - name: 📋 显示新配置
 | 
						||
      debug:
 | 
						||
        msg: "新配置: {{ new_config.stdout }}"
 | 
						||
 | 
						||
  handlers:
 | 
						||
    - name: restart nomad
 | 
						||
      systemd:
 | 
						||
        name: nomad
 | 
						||
        state: restarted
 |