104 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Fix ch4 Nomad configuration - convert from server to client
 | |
|   hosts: ch4
 | |
|   become: yes
 | |
|   vars:
 | |
|     ansible_host: 100.117.106.136
 | |
|   
 | |
|   tasks:
 | |
|     - name: Backup current Nomad config
 | |
|       copy:
 | |
|         src: /etc/nomad.d/nomad.hcl
 | |
|         dest: /etc/nomad.d/nomad.hcl.backup
 | |
|         remote_src: yes
 | |
|         backup: yes
 | |
| 
 | |
|     - name: Update Nomad config to client mode
 | |
|       blockinfile:
 | |
|         path: /etc/nomad.d/nomad.hcl
 | |
|         marker: "# {mark} ANSIBLE MANAGED CLIENT CONFIG"
 | |
|         block: |
 | |
|           server {
 | |
|             enabled = false
 | |
|           }
 | |
| 
 | |
|           client {
 | |
|             enabled = true
 | |
|             network_interface = "tailscale0"
 | |
|             
 | |
|             servers = [
 | |
|               "semaphore.tailnet-68f9.ts.net:4647",
 | |
|               "ash1d.tailnet-68f9.ts.net:4647",
 | |
|               "ash2e.tailnet-68f9.ts.net:4647",
 | |
|               "ch2.tailnet-68f9.ts.net:4647",
 | |
|               "ch3.tailnet-68f9.ts.net:4647",
 | |
|               "onecloud1.tailnet-68f9.ts.net:4647",
 | |
|               "de.tailnet-68f9.ts.net:4647"
 | |
|             ]
 | |
|             
 | |
|             meta {
 | |
|               consul = "true"
 | |
|               consul_version = "1.21.5"
 | |
|               consul_server = "true"
 | |
|             }
 | |
|           }          
 | |
|         insertbefore: '^server \{'
 | |
|         replace: '^server \{.*?\}'
 | |
| 
 | |
|     - name: Update client block
 | |
|       blockinfile:
 | |
|         path: /etc/nomad.d/nomad.hcl
 | |
|         marker: "# {mark} ANSIBLE MANAGED CLIENT BLOCK"
 | |
|         block: |
 | |
|           client {
 | |
|             enabled = true
 | |
|             network_interface = "tailscale0"
 | |
|             
 | |
|             servers = [
 | |
|               "semaphore.tailnet-68f9.ts.net:4647",
 | |
|               "ash1d.tailnet-68f9.ts.net:4647",
 | |
|               "ash2e.tailnet-68f9.ts.net:4647",
 | |
|               "ch2.tailnet-68f9.ts.net:4647",
 | |
|               "ch3.tailnet-68f9.ts.net:4647",
 | |
|               "onecloud1.tailnet-68f9.ts.net:4647",
 | |
|               "de.tailnet-68f9.ts.net:4647"
 | |
|             ]
 | |
|             
 | |
|             meta {
 | |
|               consul = "true"
 | |
|               consul_version = "1.21.5"
 | |
|               consul_server = "true"
 | |
|             }
 | |
|           }          
 | |
|         insertbefore: '^client \{'
 | |
|         replace: '^client \{.*?\}'
 | |
| 
 | |
|     - 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 Nomad client status
 | |
|       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
 | |
| 
 | |
|     - name: Display completion message
 | |
|       debug:
 | |
|         msg: |
 | |
|           ✅ Successfully converted ch4 from Nomad server to client
 | |
|           ✅ Nomad service restarted
 | |
|           ✅ Configuration updated          
 | |
| 
 |