WebARENA VPSでUbuntu 18.04を24.04まで無理やり上げる手順メモ
VM(Docker等)Ubuntu,VPS,WebARENA
WebARENA VPSでは既に新規受け付けも停止し、提供されるOSイメージも極めて古いものしかなくなっている。 今現在提供されているのは、こちらで確認できたものだけで以下の3点。
- Ubuntu 18.04
- CentOS 6.9
- CentOS 7.4
これではちょっと実用に耐えないので、最新のOSにアップグレードしたいがCentOSはこれまた問題があって、バージョン8以降はAlmaLinuxかRockyLinuxを選択する事になる。
しかしちょっと調べてみたところ、CentOS7からのこれらのアップグレードは色々と問題が発生する様なので、今回はUbuntuを順繰りアップデートする事にする。
これは、Ubuntu 18.04イメージのWebARENA VPSを、再構築せずに24.04 LTSまで引き上げるための実作業メモです。 実施はあくまで自己責任、壊れる事前提で行うべきものです。
18.04 -> 20.04 -> 22.04 -> 24.04 の順次アップグレード専用。
Ubuntu公式のアナウンスでも、LTSの飛び級は不可。
うん。 多分、サービスをはやく閉めたいNTTPCコミュニケーションズからしたら迷惑な話だろうけれど、、、
事前準備
1) まず公式仕様を確認(ログイン情報)
WebARENAの公式マニュアル(コントロールパネル機能)に、Ubuntuイメージのログイン情報が記載されている。
- ログインユーザーは
rootではなくubuntu - Ubuntu初期パスワードは「インスタンス名の
i-を除いた文字列」 - SSH接続先はインスタンスIP、ポート22
例:
インスタンス名: i-[masked]
初期パスワード: [masked] # i- を除いた文字列2) tmux は必須
リリースアップグレード中にSSHが切れると、作業端末側のセッション断で進捗確認が困難になりる。
この手順では tmux 上での実行を必須にする。
sudo apt update
sudo apt install -y tmux
tmux has-session -t upgrade 2>/dev/null && tmux attach -t upgrade || tmux new -s upgrade操作の最低限:
- 一時離脱:
Ctrl+bのあとd - 再接続:
tmux attach -t upgrade - セッション確認:
tmux ls
3) バックアップ
必要なバックアップは取っておいてください。
(各ホップ前にWebARENA側スナップショットを取る運用を推奨)
4) アップグレード前の共通初期化(対話抑止込み)
sudo systemctl disable --now wakame-init.service
sudo systemctl mask wakame-init.service
sudo systemctl stop unattended-upgrades apt-daily.service apt-daily-upgrade.service 2>/dev/null || true
sudo systemctl stop apt-daily.timer apt-daily-upgrade.timer 2>/dev/null || true
echo 'ubuntu ALL=(ALL:ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/90-ubuntu-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/90-ubuntu-nopasswd
sudo visudo -cf /etc/sudoerswakame-init は常駐監視サービスではなく、起動時にメタデータから設定を再投入する初期化処理です。
実際にはネットワーク(/etc/netplan/01-netcfg.yaml)、ホスト名、authorized_keys、/etc/hosts などを更新する。
アップグレード作業では起動ハング要因になりやすいため、無効化したまま進める。
非対話用の関数:
ni() {
sudo env \
DEBIAN_FRONTEND=noninteractive \
DEBIAN_PRIORITY=critical \
NEEDRESTART_MODE=a \
APT_LISTCHANGES_FRONTEND=none \
UCF_FORCE_CONFFOLD=1 \
"$@"
}dpkg/apt の対話抑止:
sudo tee /etc/apt/apt.conf.d/90-auto-noninteractive >/dev/null <<'EOF2'
Dpkg::Options {
"--force-confdef";
"--force-confold";
};
Dpkg::Use-Pty "0";
EOF2
echo 'debconf debconf/priority select critical' | sudo debconf-set-selections
echo '$nrconf{restart} = "a";' | sudo tee /etc/needrestart/conf.d/99-auto-restart.conf >/dev/null
echo 'libc6 libraries/restart-without-asking boolean true' | sudo debconf-set-selections
echo 'grub-pc grub-pc/install_devices multiselect /dev/sda' | sudo debconf-set-selections
echo 'grub-pc grub-pc/install_devices_empty boolean false' | sudo debconf-set-selections
echo 'grub-pc grub-pc/install_devices_disks_changed multiselect /dev/sda' | sudo debconf-set-selections
sudo sed -i 's/^Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades通常ほぼ不要で詰まりやすいものは先に除去:
sudo systemctl stop lxd lxd.socket lxcfs snap.lxd.daemon snap.lxd.activate 2>/dev/null || true
sudo pkill -TERM -f '/usr/bin/lxd|lxcfs' 2>/dev/null || true
sudo apt purge -y lxd lxd-client lxcfs || true
sudo snap remove lxd 2>/dev/null || true最後に正常化:
tmux has-session -t upgrade 2>/dev/null && tmux attach -t upgrade || tmux new -s upgrade
ni dpkg --configure -a
ni apt -f install -y
sudo apt update
ni apt full-upgrade -y
sudo apt autoremove --purge -y
sudo reboot本作業(18.04 -> 20.04 -> 22.04 -> 24.04)
以下を3回繰り返す。
18.04 -> 20.0420.04 -> 22.0422.04 -> 24.04
各ホップの実行手順
- ターミナルA(実行用)を接続し、
tmuxセッションを用意する。
ssh ubuntu@[server_ipv4_addr]
tmux has-session -t upgrade 2>/dev/null && tmux attach -t upgrade || tmux new -s upgrade- ターミナルB(監視用)を別に接続し、ログ監視を開始して待機する。
この監視を先に立ち上げてから、ターミナルAでアップグレードを開始する。
ssh ubuntu@[server_ipv4_addr]
sudo tail -f /var/log/dist-upgrade/main.log- ターミナルAでアップデートを実行する。
ni() {
sudo env \
DEBIAN_FRONTEND=noninteractive \
DEBIAN_PRIORITY=critical \
NEEDRESTART_MODE=a \
APT_LISTCHANGES_FRONTEND=none \
UCF_FORCE_CONFFOLD=1 \
"$@"
}
cat /etc/os-release | grep -E '^(PRETTY_NAME|VERSION_ID|VERSION_CODENAME)='
sudo apt update
ni apt full-upgrade -y
sudo apt autoremove --purge -y
sudo do-release-upgrade -c
ni do-release-upgrade -m server -f DistUpgradeViewNonInteractive
sudo reboot- 再起動後に再ログインして確認する。
cat /etc/os-release | grep -E '^(PRETTY_NAME|VERSION_ID|VERSION_CODENAME)='
uname -rまだ質問が出る場合の回答固定
DistUpgradeViewNonInteractive を使っても、環境によっては質問が出る。
回答は以下の通りに。
Continue running under SSH?->yDo you want to start the upgrade?->ysysctl.conf更新確認 ->N(現行維持)grub-pcデバイス選択 ->/dev/sdaのみRemove obsolete packages?->y
進捗監視とハング判定
監視は必ず「別ターミナルで事前接続」して実施する。
main.log の更新が10分以上止まったら、ターミナルA側で以下を確認する。
ps -ef | egrep 'apt|dpkg|unattended' | grep -v grep
sudo tail -n 50 /var/log/dist-upgrade/main.logdpkg lock が出たら削除せず、実行中プロセスを確認:
sudo fuser -v /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock
ps -ef | egrep 'apt|dpkg|unattended' | grep -v grep後処理
1) システム復帰
sudo rm -f /etc/sudoers.d/90-ubuntu-nopasswd
sudo -k
sudo systemctl enable --now unattended-upgrades.service
sudo systemctl enable --now apt-daily.timer apt-daily-upgrade.timerwakame-init の扱い:
- 原則:
disabled/inactiveのまま運用 - 理由: WebARENA VPSクラウドはグローバルIP固定で、停止(シャットダウン)ではIPは変わらない
- 例外: インスタンス削除/再作成/複製でIPやメタデータが変わった直後のみ、一時的に有効化を検討
確認コマンド:
systemctl is-enabled wakame-init.service
systemctl is-active wakame-init.service2) 最終ヘルスチェック
cat /etc/os-release
php -v
mysql --version || mariadb --version
systemctl status nginx apache2 php*-fpm mariadb --no-pager
sudo do-release-upgrade -c失敗時の戻し方
WebARENA公式FAQにある通り、スナップショットから複製して戻すのが最短です。
ただし複製時はIPアドレスが変わるため、DNSやFW設定の切り替えをセットで実施。
参考URL(公式)
- WebARENA VPSクラウド: コントロールパネル機能(Ubuntuログインユーザーと初期パスワード注記) https://help.arena.ne.jp/hc/ja/articles/360038839734-%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%91%E3%83%8D%E3%83%AB%E6%A9%9F%E8%83%BD
- WebARENA FAQ: Ubuntu update後にrebootで起動しない https://help.arena.ne.jp/hc/ja/articles/1500003126861-Ubuntu%E3%81%AEupdate%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%9F%E3%81%AE%E3%81%A1-reboot%E3%81%97%E3%81%9F%E3%82%89OS%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93
- WebARENA FAQ: スナップショットからの複製 https://help.arena.ne.jp/hc/ja/articles/4412027640215-%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E5%88%A5%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B
- WebARENA VPSクラウド: 仕様(グローバルIP固定、停止時はIP不変) https://web.arena.ne.jp/vps-cloud/spec/
- Ubuntu Server: release upgrade手順 https://ubuntu.com/server/docs/upgrade-introduction
- Ubuntu: release cycle(LTSサポート期間) https://ubuntu.com/about/release-cycle
VM(Docker等)Ubuntu,VPS,WebARENA
Posted by 工兵. PV2











ディスカッション
コメント一覧
まだ、コメントがありません