92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Install NFS CSI Plugin for Nomad
 | |
|   hosts: nomad_nodes
 | |
|   become: yes
 | |
|   vars:
 | |
|     nomad_user: nomad
 | |
|     nomad_plugins_dir: /opt/nomad/plugins
 | |
|     csi_driver_version: "v4.0.0"
 | |
|     csi_driver_url: "https://github.com/kubernetes-csi/csi-driver-nfs/releases/download/{{ csi_driver_version }}/csi-nfs-driver"
 | |
| 
 | |
|   tasks:
 | |
|     - name: Stop Nomad service
 | |
|       systemd:
 | |
|         name: nomad
 | |
|         state: stopped
 | |
| 
 | |
|     - name: Create plugins directory
 | |
|       file:
 | |
|         path: "{{ nomad_plugins_dir }}"
 | |
|         state: directory
 | |
|         owner: "{{ nomad_user }}"
 | |
|         group: "{{ nomad_user }}"
 | |
|         mode: '0755'
 | |
| 
 | |
|     - name: Download NFS CSI driver
 | |
|       get_url:
 | |
|         url: "{{ csi_driver_url }}"
 | |
|         dest: "{{ nomad_plugins_dir }}/csi-nfs-driver"
 | |
|         owner: "{{ nomad_user }}"
 | |
|         group: "{{ nomad_user }}"
 | |
|         mode: '0755'
 | |
| 
 | |
|     - name: Install required packages for CSI
 | |
|       package:
 | |
|         name: 
 | |
|           - nfs-common
 | |
|           - mount
 | |
|         state: present
 | |
| 
 | |
|     - name: Create CSI mount directory
 | |
|       file:
 | |
|         path: /opt/nomad/csi
 | |
|         state: directory
 | |
|         owner: "{{ nomad_user }}"
 | |
|         group: "{{ nomad_user }}"
 | |
|         mode: '0755'
 | |
| 
 | |
|     - name: Update Nomad configuration for CSI plugin
 | |
|       blockinfile:
 | |
|         path: /etc/nomad.d/nomad.hcl
 | |
|         marker: "# {mark} CSI PLUGIN CONFIGURATION"
 | |
|         block: |
 | |
|           plugin_dir = "{{ nomad_plugins_dir }}"
 | |
| 
 | |
|           plugin "csi-nfs" {
 | |
|             type = "csi"
 | |
|             config {
 | |
|               driver_name = "nfs.csi.k8s.io"
 | |
|               mount_dir = "/opt/nomad/csi"
 | |
|               health_timeout = "30s"
 | |
|               log_level = "INFO"
 | |
|             }
 | |
|           }          
 | |
|         insertafter: 'data_dir = "/opt/nomad/data"'
 | |
| 
 | |
|     - name: Start Nomad service
 | |
|       systemd:
 | |
|         name: nomad
 | |
|         state: started
 | |
|         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
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Display Nomad status
 | |
|       debug:
 | |
|         var: nomad_status.stdout_lines
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |