fix(bootstrap): repair version-specific package availability across distributions
This commit is contained in:
@@ -10,38 +10,54 @@
|
||||
else 'sid' if (os_version | string) == 'unstable'
|
||||
else 'trixie'
|
||||
}}
|
||||
bootstrap_debian_version_packages: >-
|
||||
bootstrap_debian_package_config: >-
|
||||
{{
|
||||
lookup('vars', bootstrap_var_key)
|
||||
}}
|
||||
bootstrap_debian_base_packages: >-
|
||||
{{
|
||||
bootstrap_debian_package_config.base
|
||||
| default([])
|
||||
| reject('equalto', '')
|
||||
| list
|
||||
}}
|
||||
bootstrap_debian_base_list: >-
|
||||
bootstrap_debian_extra_packages: >-
|
||||
{{
|
||||
bootstrap_debian_base
|
||||
bootstrap_debian_package_config.extra
|
||||
| default([])
|
||||
| reject('equalto', '')
|
||||
| list
|
||||
}}
|
||||
bootstrap_debian_extra_list: "{{ bootstrap_debian_version_packages | difference(bootstrap_debian_base_list) }}"
|
||||
bootstrap_debian_base: "{{ bootstrap_debian_base_list | join(',') }}"
|
||||
bootstrap_debian_extra: >-
|
||||
bootstrap_debian_base_csv: "{{ bootstrap_debian_base_packages | join(',') }}"
|
||||
bootstrap_debian_extra_args: >-
|
||||
{{
|
||||
(
|
||||
bootstrap_debian_extra_list
|
||||
)
|
||||
| reject('equalto', '')
|
||||
bootstrap_debian_extra_packages
|
||||
| join(' ')
|
||||
}}
|
||||
block:
|
||||
- name: Validate Debian package configuration
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- bootstrap_debian_package_config is mapping
|
||||
- bootstrap_debian_package_config.base is defined
|
||||
- bootstrap_debian_package_config.base is sequence
|
||||
- bootstrap_debian_package_config.base is not string
|
||||
- bootstrap_debian_package_config.extra is defined
|
||||
- bootstrap_debian_package_config.extra is sequence
|
||||
- bootstrap_debian_package_config.extra is not string
|
||||
fail_msg: "bootstrap package definition for {{ bootstrap_var_key }} must be a mapping with base/extra lists."
|
||||
quiet: true
|
||||
|
||||
- name: Install Debian base system
|
||||
ansible.builtin.command: >-
|
||||
debootstrap --include={{ bootstrap_debian_base }}
|
||||
debootstrap --include={{ bootstrap_debian_base_csv }}
|
||||
{{ bootstrap_debian_release }} /mnt http://deb.debian.org/debian/
|
||||
register: bootstrap_debian_base_result
|
||||
changed_when: bootstrap_debian_base_result.rc == 0
|
||||
|
||||
- name: Install extra packages
|
||||
ansible.builtin.command: "{{ chroot_command }} apt install -y {{ bootstrap_debian_extra }}"
|
||||
when: bootstrap_debian_extra_packages | length > 0
|
||||
ansible.builtin.command: "{{ chroot_command }} apt install -y {{ bootstrap_debian_extra_args }}"
|
||||
register: bootstrap_debian_extra_result
|
||||
changed_when: bootstrap_debian_extra_result.rc == 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user