mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-04-04 17:55:12 -02:30
63 lines
2.6 KiB
YAML
63 lines
2.6 KiB
YAML
---
|
|
- name: Import CentOS bootstrap for openEuler
|
|
ansible.builtin.import_tasks: centos.yml
|
|
|
|
- name: Read openEuler release string
|
|
ansible.builtin.command: cat /etc/openEuler-release
|
|
register: _openeuler_release_raw
|
|
changed_when: false
|
|
check_mode: false
|
|
become: true
|
|
when: openeuler_metalink_enabled
|
|
|
|
# /etc/openEuler-release contains e.g. "openEuler release 24.03 (LTS)"
|
|
# The metalink server expects "24.03LTS" (no spaces/parens/dashes),
|
|
# but DNF's $releasever resolves to just "24.03", causing "invalid repo or arch".
|
|
- name: Set openEuler metalink releasever
|
|
ansible.builtin.set_fact:
|
|
_openeuler_releasever: >-
|
|
{{ _openeuler_release_raw.stdout
|
|
| regex_replace('.*release\s+', '')
|
|
| regex_replace('[() -]', '') }}
|
|
when: openeuler_metalink_enabled
|
|
|
|
- name: Get existing openEuler repo sections
|
|
ansible.builtin.shell:
|
|
cmd: "set -o pipefail && grep '^\\[' /etc/yum.repos.d/openEuler.repo | tr -d '[]'"
|
|
executable: /bin/bash
|
|
register: _openeuler_repo_sections
|
|
changed_when: false
|
|
failed_when: false
|
|
check_mode: false
|
|
become: true
|
|
when: openeuler_metalink_enabled
|
|
|
|
- name: Enable metalink for openEuler repos
|
|
community.general.ini_file:
|
|
path: /etc/yum.repos.d/openEuler.repo
|
|
section: "{{ item.key }}"
|
|
option: metalink
|
|
value: "{{ item.value }}"
|
|
no_extra_spaces: true
|
|
mode: "0644"
|
|
loop: "{{ _openeuler_metalink_repos | dict2items | selectattr('key', 'in', _openeuler_repo_sections.stdout_lines | default([])) }}"
|
|
become: true
|
|
when: openeuler_metalink_enabled
|
|
register: _openeuler_metalink_result
|
|
vars:
|
|
_openeuler_metalink_repos:
|
|
OS: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/OS&arch=$basearch"
|
|
everything: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/everything&arch=$basearch"
|
|
EPOL: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/EPOL/main&arch=$basearch"
|
|
debuginfo: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/debuginfo&arch=$basearch"
|
|
source: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}&arch=source"
|
|
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: Clean dnf metadata cache to apply metalink mirror selection
|
|
ansible.builtin.command: dnf clean metadata
|
|
become: true
|
|
when:
|
|
- openeuler_metalink_enabled
|
|
- _openeuler_metalink_result.changed
|