refactor ♻️: Refactor Proxmox repository management
Conditionally comment out and uncomment repositories, ensuring `apt update` is run only when necessary.
This commit is contained in:
@@ -1,18 +1,49 @@
|
||||
---
|
||||
- name: repos | Comment out Proxmox enterprise repo lines
|
||||
- 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: ansible.builtin.stat(path='/etc/apt/sources.list.d/pve-enterprise.list').stat.exists
|
||||
notify: apt update
|
||||
when: pve_enterprise_repo.stat.exists
|
||||
register: enterprise_changed
|
||||
|
||||
- name: repos | Enable Proxmox no-subscription repo
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/apt/sources.list.d/pve-no-subscription.list
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
content: |
|
||||
deb http://download.proxmox.com/debian/pve {{ ansible_distribution_release }} pve-no-subscription
|
||||
notify: apt update
|
||||
#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
|
||||
|
||||
Reference in New Issue
Block a user