GitLabとRunnerが署名の鍵の期限切れでアップデートできなかったのを解消した話

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

2年前以下の記事を書きました。

[【解決済み】GitLab Omnibus が署名の鍵の期限切れでアップデートできなかったのを解消した話 \- Qiita](https://qiita.com/ynott/items/f347b66d0902f23fc1d7)

しかし、この時の署名の鍵の期限が切れてしまったようです。
鍵を更新しました

# 1. 現象

GitLab Runnerをアップデートしようとします。
以下のようになりアップグレードできません。

```io
$ sudo apt update
 <<<中略>>>
取得:5 https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal InRelease [23.4 kB]
エラー:5 https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal InRelease
  以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
2,787 kB を 2秒 で取得しました (1,320 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。
W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal InRelease: 以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
W: https://packages.gitlab.com/runner/gitlab-runner/ubuntu/dists/focal/InRelease の取得に失敗しました  以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
```

# 2. GitLabの説明ページ確認

以下に設定方法と確認方法が書かれています。

[Cryptographic details related to \`omnibus\-gitlab\` packages \| GitLab](https://docs.gitlab.com/omnibus/update/package_signatures.html#update-keys-after-expiry-extension)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15176/9ef116e3-dc07-2273-5ebe-cdec7bfc8ed9.png)

2020年4月に更新したものが2022年3月に期限切れになったけど、2024年まで延長されたようです。
しかし、更新は必要みたいですね。

# 3. 鍵を更新

[Cryptographic details related to \`omnibus\-gitlab\` packages \| GitLab](https://docs.gitlab.com/omnibus/update/package_signatures.html#update-keys-after-expiry-extension)

apt-key か signed-byのどちらを使っているかで更新方法が違うようです。

apt-keyを使っていたので、

以下の方法で更新します。
現在入っている鍵を確認するため`apt-key list`を追加しています。

```
apt-key list 3F01618A51312F3F
sudo apt-key del 3F01618A51312F3F
curl -s "https://packages.gitlab.com/gpg.key" | sudo apt-key add -
apt-key list 3F01618A51312F3F
```

実行結果

```shell_session
$ apt-key list 3F01618A51312F3F
pub   rsa4096 2020-03-02 [SC] [expired: 2022-03-02]
      F640 3F65 44A3 8863 DAA0  B6E0 3F01 618A 5131 2F3F
uid           [ expired] GitLab B.V. (package repository signing key) <packages@gitlab.com>

$ sudo apt-key del 3F01618A51312F3F
OK
$ curl -s "https://packages.gitlab.com/gpg.key" | sudo apt-key add -
OK
$ apt-key list 3F01618A51312F3F
pub   rsa4096 2020-03-02 [SC] [expires: 2024-03-01]
      F640 3F65 44A3 8863 DAA0  B6E0 3F01 618A 5131 2F3F
uid           [ unknown] GitLab B.V. (package repository signing key) <packages@gitlab.com>
sub   rsa4096 2020-03-02 [E] [expires: 2024-03-01]
```

上記の2行目のexpiredが`[expired: 2022-03-02]`だったのが、一番最後の行の` [expires: 2024-03-01]`になっています。

# 4. apt upgradeでパッケージを更新

upgradeしておきます。

実行結果

```
$ sudo apt update
 <<<中略>>>
取得:16 https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal/main amd64 Packages [7,458 B]
取得:17 https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal/main i386 Packages [7,436 B]
$ apt list --upgradable
一覧表示... 完了
gitlab-runner/focal 14.8.2 amd64 [14.8.1 からアップグレード可]
N: 追加バージョンが 42 件あります。表示するには '-a' スイッチを付けてください。
$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
  gitlab-runner
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
434 MB のアーカイブを取得する必要があります。
この操作後に追加で 139 kB のディスク容量が消費されます。
続行しますか? [Y/n]
取得:1 https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal/main amd64 gitlab-runner amd64 14.8.2 [434 MB]
434 MB を 38秒 で取得しました (11.4 MB/s)
(データベースを読み込んでいます ... 現在 287141 個のファイルとディレクトリがインストールされています。)
.../gitlab-runner_14.8.2_amd64.deb を展開する準備をしています ...
gitlab-runner (14.8.2) で (14.8.1 に) 上書き展開しています ...
gitlab-runner (14.8.2) を設定しています ...
GitLab Runner: detected user gitlab-runner
Runtime platform                                    arch=amd64 os=linux pid=179659 revision=c6e7e194 version=14.8.2
gitlab-runner: the service is not installed
Runtime platform                                    arch=amd64 os=linux pid=179671 revision=c6e7e194 version=14.8.2
gitlab-ci-multi-runner: the service is not installed
Runtime platform                                    arch=amd64 os=linux pid=179707 revision=c6e7e194 version=14.8.2
Runtime platform                                    arch=amd64 os=linux pid=179772 revision=c6e7e194 version=14.8.2

Check and remove all unused containers (both dangling and unreferenced) including volumes.
------------------------------------------------------------------------------------------

Total reclaimed space: 267MB
```

# 5. まとめ

もう2年経ったんですねぇ。。。。