サーバはubuntu 18.04。ansibleがこんなエラーを吐いた
fatal: [xxxxx]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"}
unknownって・・・、しかしどうやらapt updateでエラーが起こってるらしいことはわかるのでログインして直接apt updateしてみる
$ sudo apt update [sudo] nyan のパスワード: 取得:1 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB] ヒット:2 https://deb.nodesource.com/node_10.x bionic InRelease エラー:1 https://dl.yarnpkg.com/debian stable InRelease 以下の署名が無効です: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx> ヒット:3 http://us.archive.ubuntu.com/ubuntu bionic InRelease ヒット:4 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease ヒット:5 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease ヒット:6 http://security.ubuntu.com/ubuntu bionic-security InRelease 17.1 kB を 1秒 で取得しました (18.3 kB/s) パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 アップグレードできるパッケージが 59 個あります。表示するには 'apt list --upgradable' を実行してください。 W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: https://dl.yarnpkg.com/debian stable InRelease: 以下の署名が無効です: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx> W: https://dl.yarnpkg.com/debian/dists/stable/InRelease の取得に失敗しました 以下の署名が無効です: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx> W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
追加したyarnのリポジトリのGPG鍵が変わっているようだ。鍵も以下のような定義でansibleで追加しているのだが、
- name: add yarn apt key apt_key: url: https://dl.yarnpkg.com/debian/pubkey.gpg state: present
presentはあるか無いかしか見ていないので、鍵が変わっても更新はされないようだ。うーん、良い解決法が思いつかないので一旦手動で鍵を削除
$ apt-key list /etc/apt/trusted.gpg -------------------- pub rsa4096 2016-10-05 [SC] 72EC F46A 56B4 AD39 C907 BBB7 1646 B01B 86E5 0310 uid [ 不明 ] Yarn Packaging <yarn@dan.cx> sub rsa4096 2016-10-05 [E] pub rsa4096 2014-06-13 [SC] 9FD3 B784 BC1C 6FC3 1A8A 0A1C 1655 A0AB 6857 6280 uid [ 不明 ] NodeSource <gpg@nodesource.com> sub rsa4096 2014-06-13 [E]
yarnの鍵は86E5 0310
なのでこれを消す
$ sudo apt-key del 86E50310 OK
これでansibleがエラーなく実行された。ちなみに新しいubuntuでは apt-key コマンドで鍵を追加するのは非推奨になっており、/etc/apt/trusted.gpg.dディレクトリに鍵ファイルを置くという形になっているらしい。ファイルならば変更されたら更新できるので上手いことできるかもしれない
関係ないがnodeのバージョンが10。さすがに古くなってきたのでそろそろ上げたい。
参考