ansible/tasks/yumrepos.yml
Kevin Fenzi 8494306377 repos: we have not yet setup epel10 infra tags and need to
Signed-off-by: Kevin Fenzi <kevin@scrye.com>
2025-05-30 19:29:26 -07:00

166 lines
6 KiB
YAML

---
- name: Include vars/all/
include_vars:
dir: /srv/web/infra/ansible/vars/all/
ignore_files: [README]
tags:
- config
- packages
- yumrepos
- name: Enable repos for archived Fedora releases
set_fact:
archive_if_archived: >-
{{
'/archive'
if ansible_distribution_major_version|int < (
FedoraPreviousPreviousCycleNumber|int
if FedoraPreviousPrevious == True
else FedoraPreviousCycleNumber|int
)
else ''
}}
when: ansible_distribution == 'Fedora'
tags:
- config
- packages
- yumrepos
- name: Put rhel repos on rhel systems
ansible.builtin.copy: src="{{ files }}/common/rhel{{ ansible_distribution_major_version|int }}.repo" dest="/etc/yum.repos.d/rhel{{ ansible_distribution_major_version|int }}.repo"
when: ansible_distribution == 'RedHat' and not inventory_hostname.startswith('ppc9') and datacenter != "aws"
tags:
- config
- packages
- yumrepos
- name: Put rhel repos on rhel systems (power9)
ansible.builtin.copy: src="{{ files }}/common/rhel{{ ansible_distribution_major_version|int }}-power9.repo" dest="/etc/yum.repos.d/rhel{{ ansible_distribution_major_version|int }}.repo"
when: ansible_distribution == 'RedHat' and inventory_hostname.startswith('ppc9') and datacenter != "aws"
tags:
- config
- packages
- yumrepos
- name: Put epel repos on el systems
ansible.builtin.copy: src="{{ files }}/common/epel{{ ansible_distribution_major_version|int }}.repo" dest="/etc/yum.repos.d/epel{{ ansible_distribution_major_version|int }}.repo"
when: ((ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS') and use_default_epel) and datacenter != "aws"
tags:
- config
- packages
- yumrepos
- name: Put epel repos on el systems (aws)
ansible.builtin.copy: src="{{ files }}/common/original-epel{{ ansible_distribution_major_version|int }}.repo" dest="/etc/yum.repos.d/epel{{ ansible_distribution_major_version|int }}.repo"
when: ((ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS') and use_default_epel) and datacenter == "aws"
tags:
- config
- packages
- yumrepos
- name: Put epel gpg key on el systems (aws)
ansible.builtin.copy: src="{{ files }}/common/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version|int }}" dest="/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version|int }}"
when: ((ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS') and use_default_epel) and datacenter == "aws"
tags:
- config
- packages
- yumrepos
- name: Epel release on el systems (aws)
ansible.builtin.package:
name: 'epel-release'
state: present
when: (((ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS') and ansible_distribution_major_version|int != 9) and use_default_epel) and datacenter == "aws"
tags:
- config
- packages
- yumrepos
- name: Put fedora repos on primary architecture systems
ansible.builtin.template: src="{{ files }}/common/{{ item }}" dest="/etc/yum.repos.d/{{ item }}"
with_items:
- fedora.repo
- fedora-updates.repo
- fedora-updates-testing.repo
when: ansible_distribution == 'Fedora' and ansible_architecture not in ['ppc64le', 's390x'] and datacenter != "aws"
tags:
- config
- packages
- yumrepos
- name: Put fedora repos on secondary architecture systems
ansible.builtin.template: src="{{ files }}/common/{{ item }}-secondary" dest="/etc/yum.repos.d/{{ item }}"
with_items:
- fedora.repo
- fedora-updates.repo
- fedora-updates-testing.repo
when: ansible_distribution == 'Fedora' and ansible_architecture in ['ppc64le', 's390x'] and datacenter != "aws"
tags:
- config
- packages
- yumrepos
- name: Add infrastructure tags repo - RHEL
ansible.builtin.copy: src="{{ files }}/common/rhel-infra-tags.repo" dest="/etc/yum.repos.d/infra-tags.repo"
when: ((ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS') and ansible_distribution_major_version|int < 10)
tags:
- config
- packages
- yumrepos
- name: Add infrastructure STAGING tags repo - RHEL
ansible.builtin.copy: src="{{ files }}/common/rhel-infra-tags-stg.repo" dest="/etc/yum.repos.d/infra-tags-stg.repo"
when: (ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS') and env in ['staging', 'pagure-staging'] and ansible_distribution_major_version|int < 10
tags:
- config
- packages
- yumrepos
- name: Add infrastructure tags repo - Fedora
ansible.builtin.copy: src="{{ files }}/common/fedora-infra-tags.repo" dest="/etc/yum.repos.d/infra-tags.repo"
when: ansible_distribution == 'Fedora'
tags:
- config
- packages
- yumrepos
- name: Add infrastructure STAGING tags repo - Fedora
ansible.builtin.copy: src="{{ files }}/common/fedora-infra-tags-stg.repo" dest="/etc/yum.repos.d/infra-tags-stg.repo"
when: ansible_distribution == 'Fedora' and env in ['staging', 'pagure-staging']
tags:
- config
- packages
- yumrepos
- name: Make sure older infrastructure tags repos no longer exist
ansible.builtin.file: path="/etc/yum.repos.d/{{item}}" state=absent
with_items:
- fedora-modular.repo
- fedora-updates-modular.repo
- fedora-updates-testing-modular.repo
- fedora-infra-tags.repo
- fedora-infra-tags-stg.repo
- rhel-infra-tags.repo
- rhel-infra-tags-stg.repo
- infrastructure.repo
- infrastructure-testing.repo
tags:
- config
- packages
- yumrepos
# when batcave01 is on a newer ansible we won't need python3-dnf but
# we *will* need python3-rpm (package_facts fails without it)
- name: Ensure that python3-dnf is installed (needed till ansible on batcave01 supports dnf5)
when: "ansible_distribution == 'Fedora' and ansible_distribution_major_version|int > 40 and ansible_cmdline.ostree is not defined"
block:
- name: Check whether python3-dnf is installed
ansible.builtin.command: "rpm -q python3-dnf"
register: p3dnf
failed_when: "1 != 1"
changed_when: "1 != 1"
check_mode: no
- name: Install python3-dnf with direct dnf command
ansible.builtin.command: "dnf -y install python3-dnf"
when: "p3dnf.rc != 0"