- name: Set next release
hosts: all
tasks:
- - debug:
- msg: "{{lookup('vars', ansible_distribution+'_releases', default=[])}}"
- - debug:
- msg: "{{ansible_distribution_release}}"
- set_fact:
release_index: "{{lookup('ansible.utils.index_of', data=lookup('vars', ansible_distribution+'_releases', default=[]), test='eq', value=ansible_distribution_release)}}"
# If there is not a next release available (as defined below in Debian_releasess
- set_fact:
next_release: "{{lookup('vars', ansible_distribution+'_releases')[release_index|int + 1]}}"
- debug:
- msg: "{{next_release}}"
+ msg: "Upgrading from {{ansible_distribution_release}} to {{next_release}}"
vars:
# 'stable' releases ordered from oldest to newest
Debian_releases:
- bullseye
- bookworm
Ubuntu_releases:
- - xenial
- - bionic
- focal
- jammy
- name: Run any outstanding upgrades
with_items:
- "/var/backups/pre-{{next_release}}-backup.tgz"
- "/var/backups/dpkg-selections-pre-{{next_release}}.txt"
+- name: Update hostname
+ hosts: all
+ vars:
+ # eg. ansible-playbook -e '{"UPDATE_HOSTNAME":true}' playbooks/release-upgrade.yml
+ update_hostname: "{{lookup('vars', 'UPDATE_HOSTNAME', default='false')}}"
+ tasks:
+ - debug:
+ msg: "update_hostname: {{update_hostname}}"
+ - replace:
+ path: /etc/hostname
+ regexp: "{{ansible_distribution_release}}"
+ replace: "{{next_release}}"
+ when: update_hostname | bool
+ - replace:
+ path: /etc/hostname
+ regexp: "deb{{ansible_distribution_version}}"
+ replace: "deb{{ansible_distribution_version|int + 1 }}"
+ when: update_hostname | bool and ansible_distribution == 'Debian'
- name: Debian major version upgrade
hosts: all
vars:
apt_noninteractive_environment:
DEBIAN_FRONTEND: noninteractive
APT_LISTCHANGES_FRONTEND: mail
+ apt_common_options: "-o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confnew'"
tasks:
- import_tasks: ../tasks/debian_release_upgrade.yml
when: ansible_distribution == 'Debian'