Lightsail上で動かしているDebian BusterをBullseyeにアップグレードした話

今月(2021年8月、投稿時点)Debianの新しいバージョン、Debian 11 Bullseyeがリリースされた。早速試したい1のだが、AWS LightsailではまだBullseyeでのインスタンス作成はできなかった。

ということで、すでに動かしているBusterからのアップグレードを試みた。

環境

サーバーの概要

  • 主な用途は外部から(グローバルIPを持たない)自宅サーバへアクセスするためのVPNゲートウェイ
  • AWS Lightsailの一番安いインスタンスで運用
  • OSは Debian 10 Buster(更新前)

OSのバージョン

$ uname -a
Linux beaver 4.19.0-17-cloud-amd64 #1 SMP Debian 4.19.194-2 (2021-06-21) x86_64 GNU/Linux
$ cat /etc/debian_version 
10.10

手順

手順自体は公式の手順通りで問題ないので、詳細はそちらを参照のこと。

(スナップショットの作成)

念の為Lightsailのコンソールからインスタンスのスナップショットを撮っておく。

パッケージ取得先の設定の変更

Debian系のパッケージマネージャーは/etc/apt/source.list内で指定されているサーバーからパッケージを取得している(らしい)。 Debianの場合2以下のようにバージョン名(今回の例であればbuster)も指定されているため、アップグレードにあたってこれをbullseyeに書き替える必要がある

Before

deb http://cdn-aws.deb.debian.org/debian buster main
deb-src http://cdn-aws.deb.debian.org/debian buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
deb http://cdn-aws.deb.debian.org/debian buster-updates main
deb-src http://cdn-aws.deb.debian.org/debian buster-updates main
deb http://cdn-aws.deb.debian.org/debian buster-backports main
deb-src http://cdn-aws.deb.debian.org/debian buster-backports main

After

deb http://cdn-aws.deb.debian.org/debian bullseye main
deb-src http://cdn-aws.deb.debian.org/debian bullseye main
#deb http://security.debian.org/debian-security bullseye/updates main
#deb-src http://security.debian.org/debian-security bullseye/updates main
deb http://cdn-aws.deb.debian.org/debian bullseye-updates main
deb-src http://cdn-aws.deb.debian.org/debian bullseye-updates main
deb http://cdn-aws.deb.debian.org/debian bullseye-backports main
deb-src http://cdn-aws.deb.debian.org/debian bullseye-backports main

2行コメントアウトしているのはまだ該当のディレクトリがなく、エラーになったため。 一つでもエラーがあると更新しないということなので、該当の行のみだけコメントアウトして対応。

更新

まずはパッケージのリストを更新する

$ sudo apt update

公式に習って更新は2工程に分けて行う3

まず最小アップグレードを行う

apt upgrade --without-new-pkgs

問題は起きなかったので続いてシステム全体のアップグレードを行う。

sudo apt full-upgrade

衝突の解消

パッケージの更新に伴い設定ファイルの更新もあり、この際(主に自分が手動で修正した)既存の設定ファイルと衝突するものがいくつか出てきたため、都度以下のいずれかの対処をする必要があった。

  • 従来のを維持
  • 新しいので上書きする
  • 一旦更新を止めて手動でマージ
名前対処備考
nsd上書き特に設定を変えた覚えがないのと、後日別で設定を見返す予定のため更新 4
chrony上書き特に設定を変えた覚えがないのと、後日別で設定を見返す予定のため更新 5
sysctl維持変更箇所はIPフォワードに関する設定だけだったので残した。
squid維持過去に中継サーバの設定をしていたので残した。 6
sshdマージほぼ従来のままだが、include文が増えていたのでそれだけ追加

結果

$ cat /etc/debian_version 
11.0
$ uname -a
Linux beaver 5.10.0-8-cloud-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux

ひとまず日常的に使っている機能(wireguarddnsmasqssh)は問題なく使えているのでヨシ。

1

具体的にBullseyeに更新したい動機としては、 nftablesでのファイヤーウォールの時間での許可不許可の切り替え機能を試したかった のだが、よく読んだら結局実装されていなかった模様。ちゃんと資料は最後まで読まないとだめだなと反省。 そもそも新しい機能が使いたいなら素直にUbuntuを使えばいい話ではある

2

Debianの場合、と書いたのはUbuntuでは違って、souces.listを書き換えなくてもアップグレードできるらしいので

3

今回のケースでは問題ないとは思うが念のため

4

現在稼働しているdnsmasqから移行する予定でインストールしたがまだ設定していないので更新。

5

おそらくLightsail用の初期設定がされていたのではないかという気がする。自宅サーバやクライアントとの同期用にNTPサーバとしての設定も遠からず見返す予定なのでそのまま更新。

6

squidのデフォルトの設定ファイルはコメント行が非常に多く、真面目に更新内容を確認するのが現実的ではないためまともに読むのは確認するのはあきらめた。トラブったらその時対応する。