Conditionally comment out and uncomment repositories, ensuring `apt update` is run only when necessary.
50 lines
1.9 KiB
YAML
50 lines
1.9 KiB
YAML
---
|
|
- name: repos | Manage Proxmox repositories
|
|
block:
|
|
|
|
#Proxmox enterprise repo
|
|
|
|
- name: repos | Check for Proxmox enterprise repo file
|
|
ansible.builtin.stat:
|
|
path: /etc/apt/sources.list.d/pve-enterprise.list
|
|
register: pve_enterprise_repo
|
|
|
|
- name: repos | Comment out Proxmox enterprise repo lines
|
|
ansible.builtin.replace:
|
|
path: /etc/apt/sources.list.d/pve-enterprise.list
|
|
regexp: '^(deb\s+)'
|
|
replace: '# \1'
|
|
when: pve_enterprise_repo.stat.exists
|
|
register: enterprise_changed
|
|
|
|
#Proxmox no-subscription repo
|
|
|
|
- name: repos | Check for pve-install-repo.list
|
|
ansible.builtin.stat:
|
|
path: /etc/apt/sources.list.d/pve-install-repo.list
|
|
register: pve_install_repo
|
|
|
|
- name: repos | Uncomment Proxmox no-subscription repo if present
|
|
ansible.builtin.replace:
|
|
path: /etc/apt/sources.list.d/pve-install-repo.list
|
|
regexp: '^#\s*(deb\s+http://download\.proxmox\.com/debian/pve\s+{{ ansible_distribution_release }}\s+pve-no-subscription)'
|
|
replace: '\1'
|
|
when: pve_install_repo.stat.exists
|
|
register: no_sub_uncommented
|
|
|
|
- name: repos | Add Proxmox no-subscription repo if missing
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/apt/sources.list.d/pve-install-repo.list
|
|
regexp: '^deb\s+http://download\.proxmox\.com/debian/pve\s+{{ ansible_distribution_release }}\s+pve-no-subscription$'
|
|
line: "deb http://download.proxmox.com/debian/pve {{ ansible_distribution_release }} pve-no-subscription"
|
|
state: present
|
|
insertafter: EOF
|
|
when: pve_install_repo.stat.exists
|
|
register: no_sub_added
|
|
|
|
# Notify Run apt update only once if any of the above tasks changed something
|
|
notify:
|
|
- Run apt update
|
|
# Trigger only if any changes occurred
|
|
when: enterprise_changed.changed or no_sub_uncommented.changed or no_sub_added.changed
|