56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Configure Consul Auto-Discovery
 | |
|   hosts: all
 | |
|   become: yes
 | |
|   vars:
 | |
|     consul_servers:
 | |
|       - "warden.tailnet-68f9.ts.net:8301"
 | |
|       - "ch4.tailnet-68f9.ts.net:8301"
 | |
|       - "ash3c.tailnet-68f9.ts.net:8301"
 | |
|   
 | |
|   tasks:
 | |
|     - name: Backup current nomad.hcl
 | |
|       copy:
 | |
|         src: /etc/nomad.d/nomad.hcl
 | |
|         dest: /etc/nomad.d/nomad.hcl.backup.{{ ansible_date_time.epoch }}
 | |
|         remote_src: yes
 | |
|         backup: yes
 | |
| 
 | |
|     - name: Update Consul configuration for auto-discovery
 | |
|       blockinfile:
 | |
|         path: /etc/nomad.d/nomad.hcl
 | |
|         marker: "# {mark} ANSIBLE MANAGED CONSUL CONFIG"
 | |
|         block: |
 | |
|           consul {
 | |
|             retry_join = [
 | |
|               "warden.tailnet-68f9.ts.net:8301",
 | |
|               "ch4.tailnet-68f9.ts.net:8301", 
 | |
|               "ash3c.tailnet-68f9.ts.net:8301"
 | |
|             ]
 | |
|             server_service_name = "nomad"
 | |
|             client_service_name = "nomad-client"
 | |
|           }          
 | |
|         insertbefore: '^consul \{'
 | |
|         replace: '^consul \{.*?\}'
 | |
| 
 | |
|     - name: Restart Nomad service
 | |
|       systemd:
 | |
|         name: nomad
 | |
|         state: restarted
 | |
|         enabled: yes
 | |
| 
 | |
|     - name: Wait for Nomad to be ready
 | |
|       wait_for:
 | |
|         port: 4646
 | |
|         host: "{{ ansible_default_ipv4.address }}"
 | |
|         delay: 5
 | |
|         timeout: 30
 | |
| 
 | |
|     - name: Verify Consul connection
 | |
|       shell: |
 | |
|         NOMAD_ADDR=http://localhost:4646 nomad node status | grep -q "ready"        
 | |
|       register: nomad_ready
 | |
|       failed_when: nomad_ready.rc != 0
 | |
|       retries: 3
 | |
|       delay: 10
 |