[Ubuntu]ssh経由でDapperサーバーをHardyにアップグレードしてみる

5年サポートのUbuntu LTSがDapper(6.06) -> Hardy(8.04)にアップグレードされたので、うちのサーバーもアップグレードすることにした。すべてワークステーションからssh経由でやってみる。

どのようなアップグレードでも同じなのだが注意点を:

1) なによりも真っ先にバックアップを取ること!バックアップを取ること!
もう一度言うよ。バックアップを取ること!そして、正常にリストアできることを試すこと!
tarとsshでバックアップを取る方法も参考までに。

2) なぜアップグレードするのかを明確にしておくこと。 -> 必要の無いアップグレードはしない方がいいですよ。

3) 事前に新しいシステムをよく調べておくこと。 -> サーバー(デーモン)のバージョンによっては挙動が変わったり、今まで動いていたサービスが動かなくなったりする可能性があるので、よく調べましょう。

4) 不慮の事故にも対応できるように、万全の体制で挑むこと。 -> 時間、ホットスワップできるサーバー器の純美も含め心にゆとりを持っている方が断然スムーズにいきますよ。

5) 以下に示すやり方はうちでは成功したので、あなたの環境でうまくいくとは限らない。つまり、このやり方で失敗しても、私は一切責任を取りませんよ、ということを理解すること。 -> つまり失敗しても泣かないこと。

ま、アップグレードは計画的にね!ということでお願いします。自己責任ですから。

というわけで、手順の説明をしていきます。

1) Dapperを最新のバージョンに更新しておく


sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade


これはカーネルも含めて更新します。気をつけてね。
カーネル更新したひとは、再起動しておきましょう。


2) update managerをインストールする

sudo apt-get install update-manager-core


update-managerはサーバー用のアップグレードシステムらしいです。

3) ここから実際のアップグレードがはじまる


sudo do-release-upgrade -d


-dオプションは開発バージョンを引っ張るということらしいのだが、-dオプションなしでは


$ sudo do-release-upgrade
Checking for a new ubuntu release
No new release found


無いよ、と怒られてしまう。ちょっと嫌な感じだが、開発バージョンを引っ張ってくる-dを付けると


$ sudo do-release-upgrade -d
Checking for a new ubuntu release
Done Upgrade tool signature
Done Upgrade tool
Done downloading
extracting 'hardy.tar.gz'
authenticate 'hardy.tar.gz' against 'hardy.tar.gz.gpg'

Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, a additional ssh daemon will be started at port
'9004'.
Do you want to continue?

Continue [yN]


Hardyってstableじゃないんか!Intrepidがでたらどうなるんだろという疑問を残しつつも続行。
でもって、色々吐き出してますが、ようはこんな感じのことをいってくる
「sshでやろうとしてるね?あんまりおすすめしないなぁ、失敗したらめんどうだよ。
それでもssh経由やるっていうなら、ポート9004に新しいsshデーモン起動するけど、続けるかい?」
である。
ここはやっぱり、Yでしょw

4) しばし放置
debリポジトリから色々チェックしてるようです。こんなワーニングがでてたけど


WARNING: Failed to read mirror file


ミラー関係のようなので、無視


5) サポート終了したアプリのメッセージを確認しておく


Calculating the changes

Support for some applications ended

Canonical Ltd. no longer provides support for the following software
packages. You can still get support from the community.

If you have not enabled community maintained software (universe),
these packages will be suggested for removal at the end of the
upgrade.

Demoted:
console-common, console-data, evms, evms-ncurses, libasn1-6-heimdal,
libevms-2.5, libgssapi4-heimdal, libkrb5-17-heimdal, liblzo1, libpq4,
libroken16-heimdal, libttf2, reportbug


Demote(オフィシャルからサポートを外されて「降格」)されたパッケージの一覧を吐き出してくれるので、よくチェックしておく。
apt リポジトリのUniverseを使わないと、アップグレードのあとに上記を削除推奨されますよ、と。

6) 本当にやりますか?やっちゃうんですか?


11 packages are going to be removed. 133 new packages are going to be
installed. 299 packages are going to be upgraded.

You have to download a total of 189M. This download will take about
10 minutes with your connection.

Fetching and installing the upgrade can take several hours. Once the
download has finished, the process cannot be cancelled.

Continue [yN] Details [d]


dでなにが削除され、なにが新規インストールされ、なにがアップグレードされるか、をチェックできる。
一応みておいて、

Yでしょw

7) パッケージインストール中のため、しばし放置
もう、後戻りはできません。バックアップとってあるよね?(しつこい)

*これ以降はシステムの設定によって表示されない場合があります。
8)コンソールセットアップ
しばらくすると、Configuring Console setupという画面がでた

キーボードのレイアウトをnational(ローカル=106jpかな?それともFEPというかIMEのことかな?)とLatinレイアウトの変更のためのショートカットを選べと。
キーボードついてないし、sshだし、なんでもいいです、ハイw
デフォルトのalt+shiftにしておきました。

9) libc6の設定
さらにもう少しするとConfiguring libc6という画面。

一覧に表示されているサービスを再起動しますよ、とのこと。
気になるのはsshだが、一覧に無いので、大丈夫そう。念のため手順3で出てきたポート9004のsshdに接続しておくことにする。


$ ssh -p 9004 [サーバー名orIP]


問題なく入れたので、迷わずOK -> サービス再起動が始まる。

10) Configuring libpam0g
次に9と似たような画面がでてきた。

pam認証を使用しているサービスの再起動を行うらしい。sshは無いので、これも迷わずOKしてみた

11) Configuring libssl0.9.8
同様にlibsslにリンクしているサービスも再起動するらしい。sshには影響無とのこと。

OKをすると、再起動するサービスの一覧がでてくる。
ま、大丈夫そうならOKで

**この辺で

perl: warning: Please check that your locale settings:
LANGUAGE = "en_JP:en",
LC_ALL = (unset),


ワーニングなので、無視しておいてもよさそう。perlはこの機械では使わないしね。
一応、あとで 


$ sudo locale-gen
すればよいはずなので、放置。


12) 各種設定ファイルの更新
次に新しくなった設定ファイルの扱いを聞かれる。以下の例はdnsmasq:

Configuration file `/etc/dnsmasq.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : background this process to examine the situation
The default action is to keep your current version.
*** dnsmasq.conf (Y/I/N/O/D/Z) [default=N] ?


Y/I = パッケージメンテナのバージョンで置き換える
N/O = 今までどおりにしておく
D = diff表示
Z = とりあえず飛ばして、あとで設定する

このあたりは慎重にやりましょう。Dでよく確認することをおすすめします。

13) 再起動!
各種設定が終わったら、再起動してみましょう。
sshで入れたら・・・


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.04.1
Release: 8.04
Codename: hardy


よっしゃ。

あとは、各種サービスの設定を見直して、全て正常に動作するかを確認すること。

コメント

人気の投稿