Files
ansible-playbooks/roles/os-updates/tasks/update_major_version.yml
T
2026-02-20 22:19:57 +01:00

44 lines
1.4 KiB
YAML

- name: Backup existing sources in /etc/apt
copy:
src: "{{ item }}"
dest: "{{ item }}.bak"
remote_src: yes
loop: "{{ lookup('ansible.builtin.fileglob', '/etc/apt/sources.list.d/*.list') + ['/etc/apt/sources.list'] }}"
when: item | file
- name: Update sources.list for new major version
template:
src: sources.list.j2
dest: /etc/apt/sources.list
vars:
os_update_version_codename: "{{ new_version_codename }}" # Variable gets passed by main.yml task
- name: Update additional repositories in /etc/apt/sources.list.d (deb822 format)
replace:
path: "{{ item }}"
regexp: '^(Suites:.*\s)({{ os_update_version_codename }})(\s|$)'
replace: '\1{{ new_version_codename }}\3'
loop: "{{ lookup('ansible.builtin.fileglob', '/etc/apt/sources.list.d/*.sources') }}"
when: item | file
ignore_errors: true
- name: Update additional repositories in /etc/apt/sources.list.d (old format fallback)
lineinfile:
path: "{{ item }}"
regexp: '^(deb .* )({{ os_update_version_codename }})'
replace: '\1{{ new_version_codename }}'
loop: "{{ lookup('ansible.builtin.fileglob', '/etc/apt/sources.list.d/*.list') }}"
when: item | file
ignore_errors: true
- name: Update apt cache
apt:
update_cache: yes
- name: Perform distribution upgrade
apt:
upgrade: yes
allow_unauthenticated: yes
notify:
- Reboot system
- apt cleanup