This commit enables the 'snippets' feature in the Proxmox storage configuration file. It achieves this by adding a snippet line to the storage.cfg, ensuring that Proxmox snippets are available. Additionally, it creates the necessary 'snippets' directory within the specified storage path.
68 lines
3.0 KiB
YAML
68 lines
3.0 KiB
YAML
- name: Deploy VM templates
|
|
hosts: node0
|
|
|
|
tasks:
|
|
# - name: Import variables from Ansible vault
|
|
# ansible.builtin.include_vars: secrets.yml
|
|
- name: Install proxmoxer from APT
|
|
apt:
|
|
name: python3-proxmoxer
|
|
state: present
|
|
update_cache: yes
|
|
|
|
|
|
- name: "[PREFLIGHT] Ensure 'snippets' is enabled for {{ proxmox_snippets_storage }}"
|
|
ansible.builtin.replace:
|
|
path: /etc/pve/storage.cfg
|
|
regexp: '(dir:\s*{{ proxmox_snippets_storage }}[\s\S]*?content\s+)(.*)(?<!snippets)'
|
|
replace: '\1\2,snippets'
|
|
vars:
|
|
proxmox_snippets_storage: local
|
|
|
|
- name: "[PREFLIGHT] Ensure snippets storage directory exists"
|
|
ansible.builtin.file:
|
|
path: "{{ proxmox_snippets_storage_path }}/snippets"
|
|
state: directory
|
|
mode: "0755"
|
|
vars:
|
|
proxmox_snippets_storage_path: /var/lib/vz
|
|
|
|
|
|
- name: Deploy templates with proxmox_template_vm
|
|
ansible.builtin.include_role:
|
|
name: joshrnoll.homelab.proxmox_template_vm
|
|
vars:
|
|
|
|
# Required to provide at least one
|
|
proxmox_template_vm_distros:
|
|
- fedora
|
|
- ubuntu
|
|
|
|
# Required proxmox credentials
|
|
proxmox_template_vm_proxmox_username: "{{ proxmox_username }}" # From Ansible vault
|
|
proxmox_template_vm_proxmox_api_token_id: "{{ proxmox_api_token_id }}" # From Ansible vault
|
|
proxmox_template_vm_proxmox_api_token_secret: "{{ proxmox_api_token_secret }}" # From Ansible vault
|
|
|
|
# Optional customizations for ubuntu
|
|
proxmox_template_vm_ubuntu_storage: "hdd8t"
|
|
proxmox_template_vm_ubuntu_name: ubuntu-2204-template
|
|
proxmox_template_vm_ubuntu_memory: 4096
|
|
proxmox_template_vm_ubuntu_cores: 1
|
|
proxmox_template_vm_ubuntu_ciuser: "{{ ciuser }}" # From Ansible vault
|
|
proxmox_template_vm_ubuntu_cipassword: "{{ cipassword }}" # From Ansible vault
|
|
# proxmox_template_vm_ubuntu_sshkeys: "{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}" # gets your ssh key from /home/user/.ssh/id_rsa.pub -- customize this to your needs
|
|
proxmox_template_vm_ubuntu_sshkeys: "{{ ssh_public_keys | join('\n') }}" # gets your ssh key from /home/user/.ssh/id_rsa.pub -- customize this to your needs
|
|
proxmox_template_vm_ubuntu_vlan: 50
|
|
|
|
# Optional customizations for fedora
|
|
proxmox_template_vm_fedora_storage: "hdd8t"
|
|
proxmox_template_vm_fedora_name: fedora-40-template
|
|
proxmox_template_vm_fedora_memory: 4096
|
|
proxmox_template_vm_fedora_cores: 1
|
|
proxmox_template_vm_fedora_ciuser: "{{ ciuser }}" # From Ansible vault
|
|
proxmox_template_vm_fedora_cipassword: "{{ cipassword }}" # From Ansible vault
|
|
proxmox_template_vm_fedora_sshkeys: "{{ ssh_public_keys | join('\n') }}" # gets your ssh key from /home/user/.ssh/id_rsa.pub -- customize this to your needs
|
|
proxmox_template_vm_fedora_vlan: 50
|
|
|
|
# Set to true if you have slow storage to avoid file locks
|
|
proxmox_template_vm_slow_storage: true |