File tree Expand file tree Collapse file tree
resources/roles/preparation/tasks Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -334,6 +334,7 @@ def __init__(self, **data):
334334 'Packages/e/epel-release-7-14.noarch.rpm' ,
335335 }
336336 centos_baseurl : str = 'http://mirror.centos.org/centos'
337+ extra_alpine_repo_baseurl : str = ''
337338 epel_mirror_replacement : str = ''
338339 git_reference_directory : Optional [str ] = None
339340 tests_base_dir : str = '/tests'
Original file line number Diff line number Diff line change @@ -752,6 +752,8 @@ def initial_provision(self, verbose=False):
752752 var_dict ['epel_mirror_replacement' ] = CONFIG .epel_mirror_replacement
753753 if CONFIG .centos_baseurl :
754754 var_dict ['centos_repo_baseurl' ] = CONFIG .centos_baseurl
755+ if CONFIG .extra_alpine_repo_baseurl :
756+ var_dict ['extra_alpine_repo_baseurl' ] = CONFIG .extra_alpine_repo_baseurl
755757 cmd_args = [
756758 '-i' ,
757759 self .ANSIBLE_INVENTORY_FILE ,
Original file line number Diff line number Diff line change 22- name : Update Alpine packages
33 command : apk --allow-untrusted update && apk --allow-untrusted upgrade
44
5+ - name : Set extra packages for Alpine 3.22
6+ set_fact :
7+ extra_packages :
8+ - apk-tools
9+ - libapk2
10+ extra_alpine_repo : " {{ extra_alpine_repo_baseurl }}/{{ configuration.split('-')[1] }}/stable"
11+ when : (ansible_facts.distribution_version | string).startswith('3.22')
12+
13+ - name : Install extra packages on Alpine 3.22
14+ include_tasks : alpine_extra_packages.yml
15+ loop : " {{ extra_packages }}"
16+ loop_control :
17+ loop_var : package_name
18+ when :
19+ - (ansible_facts.distribution_version | string).startswith('3.22')
20+ - extra_alpine_repo is defined
21+
522- name : Add custom APK repository to /etc/apk/repositories
623 lineinfile :
724 path : /etc/apk/repositories
Original file line number Diff line number Diff line change 1+ ---
2+ - name : " Get latest {{ package_name }} version from APKINDEX"
3+ shell : |
4+ curl -fsSL "{{ extra_alpine_repo }}/{{ ansible_architecture }}/APKINDEX.tar.gz" \
5+ | tar -xzO APKINDEX \
6+ | awk '/^P:/ { pkg = substr($0,3) } /^V:/ { ver = substr($0,3); if (pkg == "{{ package_name }}") print ver }' \
7+ | sort -V | tail -n1
8+ register : package_version
9+ changed_when : false
10+
11+ - name : " Download {{ package_name }} package"
12+ shell : >
13+ curl -fSL -o "/tmp/{{ package_name }}-{{ package_version.stdout }}.apk" "{{ extra_alpine_repo }}/{{ ansible_architecture }}/{{ package_name }}-{{ package_version.stdout }}.apk"
14+
15+ - name : " Install {{ package_name }} from downloaded package"
16+ command : " apk add --allow-untrusted --no-network /tmp/{{ package_name }}-{{ package_version.stdout }}.apk"
17+
18+ - name : " Verify {{ package_name }} version was installed"
19+ shell : apk list -I {{ package_name }} | head -1 | sed 's/^{{ package_name }}-\([^ ]*\).*/\1/'
20+ register : installed_package_version
21+ changed_when : false
22+ failed_when : installed_package_version.stdout != package_version.stdout
You can’t perform that action at this time.
0 commit comments