FreeBSD 10.4→11.2: サーバーOSアップデート

FreeBSD10.4で稼働中のサーバーOSを 11.2へ更新しました。FreeBSD11系のトラブルの多さに嫌気が差して11系に上げることをためらっていましたが回避策が見つかり、ようやくサポート切れ環境からサポート環境へ移行することが出来ました。FreeBSDの場合、だいたい M.0 とか M.1 はトラブります。できれば M.2 とかM.3あたりから使い始めたいものです。(Mは9や10のメジャーバージョン)できることなら M.0 は使いたくない。あと1年くらい、10.4 のサポート期間があればスムーズに移行できると思うんですけどねぇ。

過去に何度も書いていますが、OSのサポート切れになったからといって、慌ててOSを更新する必要はないと考えています。要はサーバー運用の仕方。非公開サーバーやクローズ環境の場合は、ロギングとレポートさえしっかり行っておけば、サポートの有無なんて気にする必要はありません。
公開でも、例えば、Webサーバー専用として稼働させており、ポート80,433以外は全て閉鎖しているようなサーバー。こういうサーバーでは、HTTPサーバーのセキュリティーだけ気にしていれば、OSのバージョンは気にする必要はありません。(アプリだけ最新バージョンに上げておけば良いということではなく、何が脅威なのかを把握する必要があります。)

Webの他、関連するサービスを提供していて複数ポートを開いているようなケース。HTTPサービスを行っている場合、メンテナンスに ftp や ssh を開いていることが多く、レポート用に SMTPを使っているなどしていると、サービスパッケージのメンテナンスに労力を割くことは避けられず、できることならバイナリーメンテナンスで解決したいところです。FreeBSDの場合、サポートが切れるとバイナリーパッケージでのメンテナンスがだんだんと出来なくなってきます。それでもソースビルドからのメンテナンスはしばらくの間可能で、ソースメンテナンスで運用すればいいのですが、それもビルド中のエラー発生したりでやがて出来なくなってきます。メインサービス用パッケージがメンテナンスできなくなってくると不都合が出て来ます。サポート切れから数ヶ月後にはOSを更新せざるを得ない状況になることが普通です。

私の場合、ラジコの自動録音が出来なくなるという問題を回避できたため、freebsd-update コマンドで運営環境を保ったまま 10.4から11.2 へ更新しました。

今回のアップデート手順は、いつもの freebsd-update -r コマンドで実行。

10.4から11.2へバージョンアップしたのですが、パッケージを更新するまでは、libcrypto と libssl のシンボリックリンクを作らなくて手も、rtmpdump が動きました。(rtmpdump は10.4で固定中)

www:/lib> ll libcrypt*
-r--r--r--  1 root  wheel    57784  2月 16 21:26 libcrypt.so.5
-r--r--r--  1 root  wheel  2055072  1月  4 16:28 libcrypto.so.7
-r--r--r--  1 root  wheel  2542360  2月 16 21:26 libcrypto.so.8
www:/lib> ll /usr/lib/libssl*
-r--r--r--  1 root  wheel  834478  2月 16 21:28 /usr/lib/libssl_p.a
-r--r--r--  1 root  wheel  807574  2月 16 21:28 /usr/lib/libssl.a
lrwxr-xr-x  1 root  wheel      11  2月 16 21:28 /usr/lib/libssl.so -> libssl.so.8
-r--r--r--  1 root  wheel  443488  1月  4 16:28 /usr/lib/libssl.so.7
-r--r--r--  1 root  wheel  470352  2月 16 21:26 /usr/lib/libssl.so.8

ラッキーと思ったのは短い間だけ。freebsd-update で更新した場合、OS更新の後、インストール済みパッケージを更新するため、

pkg upgrade

を実行し、再度

freebsd-update install

を行います。この時、旧ライブラリ、libcrypto.so.7 と libssl.so.7 を消されてしまうので、シンボリックリンクで libcrypto.so.8 と libssl.so.8 を .7 に見せかける必要があります。
freebsd-update install を行わなければよかったのかな????

この他、WordPress を動作させるためのPHP環境が、7.1→7.2 に替わっていて、またまた php7 のモジュール環境を消されてしまい、WordPress が動かなくなってしまいました。WordPressパッケージをインストールして、PHP7.2モジュールが道連れインストールされることを期待しましたが、プラグインとの関係か、それだけでは動かず。

過去ログを見ながら、以下のモジュールをインストールしたら動作するようになりましたが、本当に必要なモジュールが何なのかわかりません。もうPHP7.1の時とモジュールが違ってますからね。

> pkg info|grep php72
mod_php72-7.2.15               PHP Scripting Language
php72-7.2.15                   PHP Scripting Language
php72-ctype-7.2.15             The ctype shared extension for php
php72-curl-7.2.15              The curl shared extension for php
php72-filter-7.2.15            The filter shared extension for php
php72-ftp-7.2.15               The ftp shared extension for php
php72-gd-7.2.15                The gd shared extension for php
php72-hash-7.2.15              The hash shared extension for php
php72-json-7.2.15              The json shared extension for php
php72-mbstring-7.2.15          The mbstring shared extension for php
php72-mysqli-7.2.15            The mysqli shared extension for php
php72-session-7.2.15           The session shared extension for php
php72-simplexml-7.2.15         The simplexml shared extension for php
php72-tokenizer-7.2.15         The tokenizer shared extension for php
php72-xml-7.2.15               The xml shared extension for php
php72-zip-7.2.15               The zip shared extension for php
php72-zlib-7.2.15              The zlib shared extension for php

一応、サーバーOSを FreeBSD 10.4→11.2 に上げる作業は終了。
この後、何もなければいいんですけどねぇ〜。

コメントを残す