87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Configure Nomad Podman Driver
 | |
|   hosts: target_nodes
 | |
|   become: yes
 | |
|   tasks:
 | |
|     - name: Create backup directory
 | |
|       file:
 | |
|         path: /etc/nomad.d/backup
 | |
|         state: directory
 | |
|         mode: '0755'
 | |
|     
 | |
|     - name: Backup current nomad.hcl
 | |
|       copy:
 | |
|         src: /etc/nomad.d/nomad.hcl
 | |
|         dest: "/etc/nomad.d/backup/nomad.hcl.bak.{{ ansible_date_time.iso8601 }}"
 | |
|         remote_src: yes
 | |
|     
 | |
|     - name: Create plugin directory
 | |
|       file:
 | |
|         path: /opt/nomad/plugins
 | |
|         state: directory
 | |
|         owner: nomad
 | |
|         group: nomad
 | |
|         mode: '0755'
 | |
|     
 | |
|     - name: Create symlink for podman driver
 | |
|       file:
 | |
|         src: /usr/bin/nomad-driver-podman
 | |
|         dest: /opt/nomad/plugins/nomad-driver-podman
 | |
|         state: link
 | |
|     
 | |
|     - name: Copy podman driver configuration
 | |
|       copy:
 | |
|         src: ../../files/podman-driver.hcl
 | |
|         dest: /etc/nomad.d/podman-driver.hcl
 | |
|         owner: root
 | |
|         group: root
 | |
|         mode: '0644'
 | |
|     
 | |
|     - name: Remove existing plugin_dir configuration
 | |
|       lineinfile:
 | |
|         path: /etc/nomad.d/nomad.hcl
 | |
|         regexp: '^plugin_dir = "/opt/nomad/data/plugins"'
 | |
|         state: absent
 | |
| 
 | |
|     - name: Configure Nomad to use Podman driver
 | |
|       blockinfile:
 | |
|         path: /etc/nomad.d/nomad.hcl
 | |
|         marker: "# {mark} ANSIBLE MANAGED BLOCK - PODMAN DRIVER"
 | |
|         block: |
 | |
|           plugin_dir = "/opt/nomad/plugins"
 | |
| 
 | |
|           plugin "podman" {
 | |
|             config {
 | |
|               volumes {
 | |
|                 enabled = true
 | |
|               }
 | |
|               logging {
 | |
|                 type = "journald"
 | |
|               }
 | |
|               gc {
 | |
|                 container = true
 | |
|               }
 | |
|             }
 | |
|           }          
 | |
|       register: nomad_config_result
 | |
|     
 | |
|     - name: Restart nomad service
 | |
|       systemd:
 | |
|         name: nomad
 | |
|         state: restarted
 | |
|         enabled: yes
 | |
|     
 | |
|     - name: Wait for nomad to start
 | |
|       wait_for:
 | |
|         port: 4646
 | |
|         delay: 10
 | |
|         timeout: 60
 | |
|     
 | |
|     - name: Check nomad status
 | |
|       command: nomad node status
 | |
|       register: nomad_status
 | |
|       changed_when: false
 | |
|     
 | |
|     - name: Display nomad status
 | |
|       debug:
 | |
|         var: nomad_status.stdout_lines |