zuul-jobs/roles/ensure-package-repositories
Mohammed Naser fbe7ae16ad Install gnupg if keys need to be imported
The apt_key module currently requires that gnupg is in place
in order to be able to succesfully import keys.  It is possible
that the system running this role does not have this, so we
should make sure it is installed if we have any keys to install.

Change-Id: Ia5ff4d35dc4faed1fb8dfc6bd32670dae394e5c7
2020-11-03 12:10:54 -05:00
..
defaults ensure-package-repositories: Add role 2020-05-01 15:49:21 +02:00
tasks Install gnupg if keys need to be imported 2020-11-03 12:10:54 -05: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