"Failed to validate GPG signature for pgdg-redhat-repo-42.0-11.noarch"エラー

現象

Vagrant x Ansible x Ruby on Railsで自動構築していたものを全部バージョンアップしてから vagrant up したら、以下「GPG(鍵)が有効ではない」というエラーが発生。

TASK [postgresql : Install PostgreSQL repo] ************************************
fatal: [192.168.33.10]: FAILED! => {"changed": false, "msg": "Failed to validate GPG signature for pgdg-redhat-repo-42.0-11.noarch"}

なお、 実行ソース は以下のとおり。

- name: Install PostgreSQL repo
  become: yes
  dnf:
    name: "{{ postgresql_repo }}"

原因

鍵が正しくインポートされていないため。

対策

鍵を正しくインポートするか、Ansibleで鍵をスキップする設定を入れる。
今回は後者を選択。

Ansible公式サイト で、本エラーについて言及あり。
「disable_gpg_check: yes」で鍵をスキップできるとのこと。

以下引用。

dnf and yum - As of version 2.8.15, the dnf module (and yum action when it uses dnf) now correctly validates GPG signatures of packages (CVE-2020-14365). If you see an error such as Failed to validate GPG signature for [package name], please ensure that you have imported the correct GPG key for the DNF repository and/or package you are using. One way to do this is with the rpm_key module. Although we discourage it, in some cases it may be necessary to disable the GPG check. This can be done by explicitly adding disable_gpg_check: yes in your dnf or yum task.

そこで、以下のようにソースを変更。

変更前

- name: Install PostgreSQL repo
  become: yes
  dnf:
    name: "{{ postgresql_repo }}"

変更後

- name: Install PostgreSQL repo
  become: yes
  dnf:
    name: "{{ postgresql_repo }}"
    disable_gpg_check: yes

以上で解決。