forked from CCCHH/ansible-infra
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| - name: Ensure the VM template generation is set up
 | |
|   hosts: proxmox_vm_template_hosts
 | |
|   tasks:
 | |
|     - name: Ensure dependencies are present
 | |
|       ansible.builtin.apt:
 | |
|         name:
 | |
|           - git
 | |
|           - libguestfs-tools
 | |
|       become: true
 | |
| 
 | |
|     - name: Ensure /usr/local/{lib,sbin} exist
 | |
|       ansible.builtin.file:
 | |
|         path: "{{ item }}"
 | |
|         state: directory
 | |
|         owner: root
 | |
|         group: root
 | |
|         mode: "0755"
 | |
|       become: true
 | |
|       loop:
 | |
|         - "/usr/local/lib/"
 | |
|         - "/usr/local/sbin/"
 | |
| 
 | |
|     - name: Ensure the pve-template-vm repo is present
 | |
|       ansible.builtin.git:
 | |
|         repo: https://git.hamburg.ccc.de/CCCHH/pve-template-vm.git
 | |
|         dest: /usr/local/lib/pve-template-vm
 | |
|         version: main
 | |
|         force: true
 | |
|         depth: 1
 | |
|         single_branch: true
 | |
|         track_submodules: true
 | |
|       become: true
 | |
| 
 | |
|     # /usr/local/sbin as the script uses qm, which is also found in /usr/sbin.
 | |
|     - name: Ensure symlink to build-proxmox-template exists in /usr/local/sbin
 | |
|       ansible.builtin.file:
 | |
|         src: /usr/local/lib/pve-template-vm/build-proxmox-template
 | |
|         dest: /usr/local/sbin/build-proxmox-template
 | |
|         state: link
 | |
|         owner: root
 | |
|         group: root
 | |
|         mode: '0755'
 | |
|       become: true
 | |
| 
 | |
|     # This sets up a cron job running /usr/local/sbin/build-proxmox-template using the env vars defined in hypervisor__template_vm_config.
 | |
|     - name: Ensure cron job is present for building a fresh VM template every week on Friday 04:00
 | |
|       ansible.builtin.cron:
 | |
|         name: "ansible build proxmox template"
 | |
|         cron_file: ansible_build_proxmox_template
 | |
|         minute: 0
 | |
|         hour: 4
 | |
|         weekday: 5
 | |
|         user: root
 | |
|         job: "{% if hypervisor__template_vm_config is defined and hypervisor__template_vm_config | length > 0 %}\
 | |
|               /usr/bin/env \
 | |
|               {% for item in hypervisor__template_vm_config | default([]) %}\
 | |
|               {{ item.name }}=\"{{ item.value }}\" \
 | |
|               {% endfor %}\
 | |
|               {% endif %}\
 | |
|               /usr/local/sbin/build-proxmox-template"
 | |
|       become: true
 |