- 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