AnsibleでAlmaLinux 8のGPG keyをインポート出来ない

GMO NIKKOのT.Kです。

AlmaLinuxのブログ記事によると、GPG keyが更新されており、新しいGPG keyをインポートする必要がありました。先日Ansibleで下記のタスクを追加したものの、インポートが適切に行われない問題が発生しました。

問題の原因としては、AlmaLinuxのGPG keyファイルに新旧のGPG keyが混在しており、rpm_keyモジュールのインポート済みチェックが最初のGPG keyのみに対して行われているからです。
2023年10月16日以降のパッケージに関しては新しいGPG keyが取り込まれていますので、追加でインポートする必要はありません。

Dockerで再現環境を構築

  • ファイル構成
  • ansible
    • hosts
    • setup.yml
  • controller
    • Dockerfile
  • target
    • Dockerfile
  • docker-compose.yml

Dockerコンテナを起動して動作確認

  • コンテナ起動
  • Ansibleの実行
    changedがfalseでGPG keyが更新されませんでした
  • targetで確認してもインポートされていないことが分かります

対策

  • 案1
    • 一旦削除してからインポートします
      ただし、毎回changedになるため、あまりおすすめできません
  • 案2
    • GPG keyファイルを分割し、個別にインポートします
    • GPG keyファイルの分割
      テキストファイルなので手動でも問題ありませんが、コマンドを作成しました
    • 生成したファイルをansible/files/almalinuxに配置します

まとめ

とある事情でAlmaLinuxの古いバージョンを使用する必要があり、今回の問題に遭遇しました。
ミドルウェアなどでも古いバージョンに起因する問題により、調査と対策に時間が取られることが多いため、バージョンアップを計画的に行っていきたいと考えております。