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
 |