zuul-jobs/roles/ensure-package-repositories
Xing Zhang 1242a98137
Fix add repositories in RedHat and Suse
These tasks should be used with become like Debian.yaml, otherwise
error will occurred like this:
[Errno 13] Permission denied: '/etc/yum.repos.d/test.repo'

Change-Id: I9c6f0132536500d36ba0098b635b1858e05d7ccf
2020-07-21 10:51:28 +08:00
..
defaults ensure-package-repositories: Add role 2020-05-01 15:49:21 +02:00
tasks Fix add repositories in RedHat and Suse 2020-07-21 10:51:28 +08:00
README.rst ensure-package-repositories: Add role 2020-05-01 15:49:21 +02:00

Ensure that package manager repositories are installed. This role works with the pattern of including variables for different operating systems.

Note

This role currently only supports RPM and DEB based distributions.

Example use for Debian and Ubuntu:

- name: Add all repositories
  include_role:
    name: ensure-package-repositories
  vars:
    repositories_keys:
      - url: https://deb.nodesource.com/gpgkey/nodesource.gpg.key
    repositories_list:
      - repo: deb-src https://deb.nodesource.com/node_6.x {{ ansible_distribution_release }} main
      - repo: deb https://deb.nodesource.com/node_6.x {{ ansible_distribution_release }} main

Example use for Fedora and Red Hat:

_docker_keys:
  - data: |
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      ...
      -----END PGP PUBLIC KEY BLOCK-----

_docker_repos:
  - name: docker-ce-stable
    description: Docker CE Stable - $basearch
    baseurl: "{{ docker_mirror_base_url }}/$releasever/$basearch/stable"
    gpgcheck: yes

- name: Add all repositories
      include_role:
        name: ensure-package-repositories
      vars:
        repositories_keys: "{{ _docker_keys }}"
        repositories_list: "{{ _docker_repos }}"

Example use for openSUSE and SUSE Linux:

_docker_keys:
  - data: |
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      ...
      -----END PGP PUBLIC KEY BLOCK-----

_docker_repos:
  - name: docker-ce-stable
    description: Docker CE Stable - $basearch
    uri: "{{ docker_mirror_base_url }}/$releasever/$basearch/stable.repo"

- name: Add all repositories
      include_role:
        name: ensure-package-repositories
      vars:
        repositories_keys: "{{ _docker_keys }}"
        repositories_list: "{{ _docker_repos }}"

Role Variables