現象
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
以上で解決。