diff --git a/roles/bootstrap_os/defaults/main.yml b/roles/bootstrap_os/defaults/main.yml index f061a6fa8..18a7fa4c0 100644 --- a/roles/bootstrap_os/defaults/main.yml +++ b/roles/bootstrap_os/defaults/main.yml @@ -15,6 +15,10 @@ epel_enabled: false ## openEuler specific variables # Enable metalink for openEuler repos (auto-selects fastest mirror by location) openeuler_metalink_enabled: false +# Override the default baseurl host for openEuler repos. +# Used as fallback when metalink is unavailable (502/timeout). +# Default repo.openeuler.org (Hong Kong) is slow from many CI/cloud environments. +openeuler_repo_baseurl: "" ## Oracle Linux specific variables # Install public repo on Oracle Linux diff --git a/roles/bootstrap_os/tasks/openEuler.yml b/roles/bootstrap_os/tasks/openEuler.yml index e72627acf..a006e40be 100644 --- a/roles/bootstrap_os/tasks/openEuler.yml +++ b/roles/bootstrap_os/tasks/openEuler.yml @@ -54,6 +54,15 @@ update: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/update&arch=$basearch" update-source: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/update&arch=source" +- name: Override baseurl to a faster mirror (fallback when metalink is unavailable) + ansible.builtin.replace: + path: /etc/yum.repos.d/openEuler.repo + regexp: 'baseurl=http://repo\.openeuler\.org/' + replace: "baseurl={{ openeuler_repo_baseurl }}/" + mode: "0644" + become: true + when: openeuler_repo_baseurl != "" + - name: Clean dnf metadata cache to apply metalink mirror selection ansible.builtin.command: dnf clean metadata become: true diff --git a/tests/files/openeuler24-calico.yml b/tests/files/openeuler24-calico.yml index 69465b33c..19e4d46a5 100644 --- a/tests/files/openeuler24-calico.yml +++ b/tests/files/openeuler24-calico.yml @@ -3,8 +3,8 @@ cloud_image: openeuler-2403 vm_memory: 3072 -# Use metalink for faster package downloads (auto-selects closest mirror) -openeuler_metalink_enabled: true +# Use Huawei Cloud CDN instead of the default repo.openeuler.org (unreachable from Oracle Cloud CI) +openeuler_repo_baseurl: "https://repo.huaweicloud.com/openeuler" # CI package installation takes ~7min; default 5min is too tight, use 15min for margin pkg_install_timeout: "{{ 15 * 60 }}"