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
例:
“`text
インスタンス名: i-[masked]
初期パスワード: [masked] # i- を除いた文字列
“`
### 2) `tmux` は必須
リリースアップグレード中にSSHが切れると、作業端末側のセッション断で進捗確認が困難になりる。
この手順では `tmux` 上での実行を必須にする。
“`bash
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) アップグレード前の共通初期化(対話抑止込み)
“`bash
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/sudoers
“`
`wakame-init` は常駐監視サービスではなく、起動時にメタデータから設定を再投入する初期化処理です。
実際にはネットワーク(`/etc/netplan/01-netcfg.yaml`)、ホスト名、`authorized_keys`、`/etc/hosts` などを更新する。
アップグレード作業では起動ハング要因になりやすいため、無効化したまま進める。
非対話用の関数:
“`bash
ni() {
sudo env \
DEBIAN_FRONTEND=noninteractive \
DEBIAN_PRIORITY=critical \
NEEDRESTART_MODE=a \
APT_LISTCHANGES_FRONTEND=none \
UCF_FORCE_CONFFOLD=1 \
“$@"
}
“`
`dpkg/apt` の対話抑止:
“`bash
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
“`
通常ほぼ不要で詰まりやすいものは先に除去:
“`bash
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
“`
最後に正常化:
“`bash
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回繰り返す。
1. `18.04 -> 20.04`
2. `20.04 -> 22.04`
3. `22.04 -> 24.04`
### 各ホップの実行手順
1. ターミナルA(実行用)を接続し、`tmux` セッションを用意する。
“`bash
ssh ubuntu@[server_ipv4_addr]
tmux has-session -t upgrade 2>/dev/null && tmux attach -t upgrade || tmux new -s upgrade
“`
2. ターミナルB(監視用)を別に接続し、ログ監視を開始して待機する。
この監視を先に立ち上げてから、ターミナルAでアップグレードを開始する。
“`bash
ssh ubuntu@[server_ipv4_addr]
sudo tail -f /var/log/dist-upgrade/main.log
“`
3. ターミナルAでアップデートを実行する。
“`bash
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
“`
4. 再起動後に再ログインして確認する。
“`bash
cat /etc/os-release | grep -E '^(PRETTY_NAME|VERSION_ID|VERSION_CODENAME)=’
uname -r
“`
### まだ質問が出る場合の回答固定
`DistUpgradeViewNonInteractive` を使っても、環境によっては質問が出る。
回答は以下の通りに。
– `Continue running under SSH?` -> `y`
– `Do you want to start the upgrade?` -> `y`
– `sysctl.conf` 更新確認 -> `N`(現行維持)
– `grub-pc` デバイス選択 -> `/dev/sda` のみ
– `Remove obsolete packages?` -> `y`
### 進捗監視とハング判定
監視は必ず「別ターミナルで事前接続」して実施する。
`main.log` の更新が10分以上止まったら、ターミナルA側で以下を確認する。
“`bash
ps -ef | egrep 'apt|dpkg|unattended’ | grep -v grep
sudo tail -n 50 /var/log/dist-upgrade/main.log
“`
`dpkg lock` が出たら削除せず、実行中プロセスを確認:
“`bash
sudo fuser -v /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock
ps -ef | egrep 'apt|dpkg|unattended’ | grep -v grep
“`
—
## 後処理
### 1) システム復帰
“`bash
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.timer
“`
`wakame-init` の扱い:
– 原則: `disabled/inactive` のまま運用
– 理由: WebARENA VPSクラウドはグローバルIP固定で、停止(シャットダウン)ではIPは変わらない
– 例外: インスタンス削除/再作成/複製でIPやメタデータが変わった直後のみ、一時的に有効化を検討
確認コマンド:
“`bash
systemctl is-enabled wakame-init.service
systemctl is-active wakame-init.service
“`
### 2) 最終ヘルスチェック
“`bash
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
関連記事
WSL2が疲れ切って仕事しなくなりました
Docker DesktopとWSL2のインスタンスでDockerをゴリゴリやっ ...
ディスカッション
コメント一覧
まだ、コメントがありません