バーチャル山中家

インターネット上にある我が家です。他愛もない事を書いています。

HP ML110 G5にFreeBSD 7.0-RELEASEを導入する(4)

前回までの記事は、以下の通りです。

後は、Webサーバの移行だけになりました。
が、これが結構大物。
というのも、バーチャル山中家にはMovable Typeがあるので、mysqlのデータベースも一緒に移動させるからです。
でも、そろそろ家族から 「ここんとこコンピュータばっかり触ってる」 と苦情がきているので、今回で一気にやっちゃいましょう。

11.Webサーバの移行 11.1.mysqlのインストール

山中家では、Movable Type のバックエンドに MySQL サーバを使っているので、まずはそれをインストールします。

portinstall databases/mysql50-server

11.2.Apacheのインストール

Apache はバージョン2を採用しました。

portinstall www/apache22

11.3.Movable Type のインストール

Movable Type も ports からインストールします。

portinstall www/MT

依存関係で、たくさんの ports がインストールされます。
気長に待ちましょう。
というわけで、ここでお昼ご飯を食べに行きます。
(続く)

HP ML110 G5にFreeBSD 7.0-RELEASEを導入する(3)

前々回前回の続きです。

8.再起動不能のとりあえずの対策

Google先生に色々聞いてみたところ、またまた おうちサーバ入れ替えというページに行き着きました。
なので、暫定対応として、/boot/loader.conf に ipmi_load="YES" を記述して、/root/.cshrc に alias reboot 'watchdog -t 60; /sbin/reboot' を記述することで、無理やり再起動させることにしました。

9.日本語マニュアルの導入

必須ではないんですが、旧サーバでも入れていたので。
portinstall japanese/man を実行します。
そして、fetch http://home.jp.freebsd.org/%7Ekogane/JMAN/ja-man-doc-7.0.20080530.tbz してから pkg_add ja-man-doc-7.0.20080530.tbz しました。
jless が入ったので、.cshrc の setenv PAGER more を setenv PAGER jless に変更しました。

10.qmail+vpopmailの導入

まずは、portinstall mail/qmail する。
SMTPAUTHPATCH と LOCALTIMEPATCH と DISCBOUNCESPATCH と RCDLINK にチェック。
次に、portinstall mail/vpopmail する。
さらに、portinstall mail/qmailadmin する。
起動用スクリプトを旧サーバからコピーして、起動確認。
ここで新旧サーバのqmail関連をすべてストップ。
旧サーバの /usr/local/vpopmail/domains を tarボールにして新サーバにコピーし、展開。
vadddomain にてバーチャルドメインを作成。(postmasterの作成でエラーが出るが気にしない)
ルーターのメール関連ポート振り向け先を新サーバに変更。
DNSサーバのメールサーバアドレスを新サーバに変更。
なんやかんやして、無事移行を完了。

HP ML110 G5にFreeBSD 7.0-RELEASEを導入する(2)

前回の続きです。

7:dns関連の設定

バーチャル山中家のサーバは、

  • バーチャル山中家ローカルのdnsサーバ
  • インターネット向けのdnsサーバ
  • バーチャル山中家の各マシンに対するdnsリゾルバ

を担います。
好みの問題もあり、面倒なBINDではなく、シンプルなdjbdnsを使用します。

まず、portinstall sysutils/daemontools します。
終わったら /etc/rc.conf に svscan_enable="YES" と追記します。
mkdir /var/service して /usr/local/etc/rc.d/svscan.sh start してみると、Starting svscan. と表示されました。OK、OK。
ps -aux | grep svscan してみると、

root 49425 0.0 0.1 3104 600 ?? S 6:19AM 0:00.00 /usr/local/bin/svscan /var/service

となりました。

さて、山中家ではdnsサーバを2つ起動する予定なので、IPアドレスを2つ用意します。
/etc/rc.conf に ifconfigbge0="inet 192.168.1.1 netmask 255.255.255.0" のような行があるはずです。(bge0の部分はネットワークインターフェースの違いで変わります。)
この行の下に、ifconfig
bge0_alias0="inet 192.168.1.201 netmask 255.255.255.0" という感じで追記します。
すると、この1つのインターフェースに2つのIPアドレスが割り当てられます。
山中家では192.168.1.1を内部用、192.168.1.201を外部用としました。
外部からのDNSリクエストは、ルーターにて192.168.1.201に向けられます。

次に、portinstall dns/djbdns します。依存性にて sysutils/ucspi-tcp もインストールされます。
/etc/passwd ファイルに

dnscache::71:71::0:0:DNS cache:/noexistent:/usr/sbin/nologin dnslog::72:71::0:0:DNS log:/noexistent:/usr/sbin/nologin tinydns:*:73:71::0:0:DNS server:/noexistent:/usr/sbin/nologin

を追加します。
/etc/group ファイルに

dns:*:71:

を追加します。

7.1:内部用DNSサーバの設定

tinydns-conf tinydns dnslog /usr/local/etc/tinydns-i 127.0.0.1 を実行して、内部用設定を作成します。
/usr/local/etc/tinydns-i/root/data を編集して、アドレスの一覧を作成します。
保存したら make し、data.cdb を作成します。
最後に、ln -s /usr/local/etc/tinydns-i /var/service/tinydns-i を実行して、起動用のシンボリックリンクを作成します。

7.2:外部用DNSサーバの設定

tinydns-conf tinydns dnslog /usr/local/etc/tinydns-o 192.168.1.202 を実行して、外部用設定を作成します。
/usr/local/etc/tinydns-o/root/data を編集して、アドレスの一覧を作成します。
保存したら make し、data.cdb を作成します。
最後に、ln -s /usr/local/etc/tinydns-o /var/service/tinydns-o を実行して、起動用のシンボリックリンクを作成します。

7.3:dnscacheの設定

dnscache-conf dnscache dnslog /usr/local/etc/dnscache 192.168.1.2 を実行して、リゾルバ用設定を作成します。
山中家のローカル(192.168.1.*)からの問い合わせに答えるように、

cd /usr/local/etc/dnscache/root/ip touch 192.168.1

します。
また、ローカル内の問い合わせについては、ローカルで処理するように、

cd /usr/local/etc/dnscache/root/servers echo 127.0.0.1 > yamanakake.com echo 127.0.0.1 > yamanakas.net echo 127.0.0.1 > wty.dyndns.org echo 127.0.0.1 > 1.168.192.in-addr.arpa

さらに、flets については flets に聞くように、

echo 10.60.21.72 > flets

それ以外はプロバイダに聞くように、

cd /usr/local/etc/dnscache/env echo 1 > FORWARDONLY cd ../root/servers ee @

202.224.32.1 202.224.32.2 ・・・

とします。
最後に、ln -s /usr/local/etc/dnscache /var/service/dnscache を実行して、起動用のシンボリックリンクを作成します。
(2008/06/19 18:00より、DNSサービスを新サーバに移行しました。)

HP ML110 G5にFreeBSD 7.0-RELEASEを導入する(1)

山中家にやってきたHP ML110 G5サーバにFreeBSD 7.0-RELEASEを導入していく作業について、ここにメモを公開します。

1.FreeBSDのCDを作成

まずは、FreeBSDのftpサイトのどこかからISOイメージファイルを持ってきて、CD-Rに書き込むという作業です。
一応、disc1, disc2, disc3 の3枚を作成しました。

2.CDから起動してインストール

作成したdisc1をCD-RWドライブに差し込んで立ち上げると、インストーラーが起動します。
そんなに難しい作業ではないので、詳細は省略しますね。
標準装備のHDDに、

  • 1024MBを/
  • 3072MBをswap
  • 2048MBを/var
  • 2048MBを/tmp
  • 残りを/usr

という感じで作成しました。

追加したHDDは、

  • 全体を/data

という感じで作成しました。

ports collectionは、どうせ後でいれるので、ここではパスしました。

3.ネットワークを認識させる

HP ML110 G5サーバのオンボードNICは、そのままでは認識しないので、以下の手順でカーネルを作り直します。

  • /usr/src/sys/dev/bge/ifbgereg.hの「#define BCOMDEVICEIDBCM5721 0x1659」という行の次に、「#define BCOMDEVICEID_BCM5722 0x165A」を追加
  • /usr/src/sys/dev/bge/ifbge.cの「{ BCOMVENDORID, BCOMDEVICEIDBCM5721 },」という行の次に、「{ BCOMVENDORID, BCOMDEVICEID_BCM5722 },」を追加
  • cd /usr/srcしてmake buildkernelしてmake installkernelしてreboot

なんだけど、実は再起動しようとするとハングアップする。
このハングアップの問題は、現時点で解決できていない。

4:.cshrcの編集

これは、現行サーバと操作感が変わるとやりにくいから。
個人的な好みなので、「なんで?」というツッコミは無しの方向で。

  • setenv EDITOR vi を setenv EDITOR ee に
  • # An interactive shell -- set some stuff up の次に set prompt = '[%n@%m]%B%~%b%# ' を追加

修正が終わったら、source .cshrc します。

5:portsを持ってくる

最終的にはcvsupで定期的に更新するつもりだけど、まずはインストール時点の最新をtarボールで持ってきて展開。

6:必要なソフトをportsからインストール

まずは、ports-mgmt/portupgrade。
これを入れたら、/usr/local/etc/pkgtools.conf を修正して、ログの取得などを設定しておく。

PORTUPGRADE_ARGS = ENV['PORTUPGRADE'] || \ '-v -L /var/log/ports/%s.%s.log'

もちろん、こう書いたら、mkdir /var/log/ports しておく必要あり。
次に、portinstall shells/fd (笑)
あとは、大物なので、別ページにて。

サーバ構築、やり直し

今日はお休みだったので、色々と作業をしたんですが、だんだんわけがわからなくなってきて、ご破算しちゃいました。
過去の構築日誌は、以下のとおり。

  1. サーバ構築日誌(2008-06-14)
  2. サーバ構築日誌(2008-06-15)
  3. サーバ構築日誌(2008-06-16)
  4. サーバ構築日誌(2008-06-18)

これについては、忘れてください(笑)

ご破算した理由は、

  • そもそも現行のサーバのHDDが160GBなのに、新サーバが80GBっていうのはどうよ?
  • 長年かけて構築してきたいろいろなサービスについて、もう一度整理しないといけないね
  • 記録がずさんになってきて、構築日誌がいい加減になってきているかな?

という感じかな(笑)

なので、HDDを増設して、CD-ROMでFreeBSD 7.0-RELEASEを入れるところからやり直しています。

サーバ構築日誌(2008-06-18)

昨日はちゃんと仕事をしていたので、サーバ構築はお休みしました(笑)

今日は、朝からおきだして、「そうだ、sambaを入れよう」と思い立ったけど、graphics/jpegのインストールでこけてしまう。
どうもjpegexiforient.cがもって来れないらしい・・・
とりあえずsambaは後回し。

と思ったら、他のportsもインストールできない・・・
色々調べてみると、DNSで名前が引けていないことが判明。
よく考えたら、tinydnsとdnscacheを同じマシンで起動しているのだから、/etc/resolv.confにnameserver 127.0.0.1なんて書いちゃ駄目だ(笑)
nameserver 192.168.1.1に直して、無事動くようになりました。
なので、気を取り直してnet/samba3をインストール。
さすがにPentium3(1GHz)のjiroからすれば格段に早いわ。
とはいえしばらくかかるので、部屋の掃除して歯医者にGO。

(続き)
歯医者終わって、散髪して、帰ってきました。
まずは、jiroにあるwww.yamanakake.comのコンテンツを丸々taroにコピーして、動作確認。
そのためにphp5、mod_fastcgiをインストール。
jiroの/data/Web/com/www以下をtarボールにして、taroの/data/Web/com/wwwに展開。

サーバ構築日誌(2008-06-16)

昨日は、再起動時に問題があるものの、とりあえず動き出したサーバにApacheを入れたところで時間切れになった。
サーバ構築日誌(2008-06-15)

今日は仕事が修学旅行だったので、朝早くに出勤して、夕方早くに帰ってきた。
引き続き、必要なサービス関連のインストールやセットアップを行う。

まずは、DNSまわり。
daemontoolsのインストールはportsからインストールなので、特に問題なし。
rc.conf に svscan_enable="YES" を追記して、サービス用のディレクトリを作成し、svscanを起動。
djbdnsのインストールもportsからインストールなので、特に問題なし。
依存関係でsysutils/ucspi-tcpもインストールされた。
必要なユーザーを作成

  • dnscache
  • dnslog
  • tinydns

必要なグループを作成
  • dns

DNSは内側向けと外側向けの2つ起動する予定。なので、
  • tinydns-conf tinydns dnslog /usr/local/etc/tinydns-i 127.0.0.1
  • tinydns-conf tinydns dnslog /usr/local/etc/tinydns-o 192.168.1.201

してから、
  • /var/service/tinydns-i -> /usr/local/etc/tinydns-i/
  • /var/service/tinydns-o -> /usr/local/etc/tinydns-o/

というリンクを作成。
dnscacheも設定。
  • dnscache-conf dnscache dnslog /usr/local/etc/dnscache 192.168.1.1

してから、
  • /var/service/dnscache -> /usr/local/etc/dnscache/

というリンクを作成。

サーバ構築日誌(2008-06-15)

昨日は仕事の日だったので、あまり時間が取れなかったけど、とりあえずネットワークのドライバを入れてカーネルの再コンパイルをして、無事起動するところまでは確認した。
サーバ構築日誌(2008-06-14)

今日は仕事が休みの日なんだけど、日曜日なので家族も休みだ。
こんな日にサーバばっかりさわっていると、何かと支障が出るので(笑)、早朝トイレに起きたのをいいことに、その後再び寝ずにサーバをさわっている。
で、起動メッセージを見ると、無事ネットワークインターフェースが認識されたようなので、sysinstallを起動してネットワークの設定を行った。
(最初、/stand/sysinstallとタイプして「そんなもの無い」と言われたのは秘密でもなんでもない)

その後、jiroに直結していたLANケーブルをHUB経由に戻し、taroも接続。
pingして届いたので一安心。
電算室での作業は、一旦終了。後は居間からssh越しに作業できるから。

さて、まずは.cshrcを編集して、エディタの設定、ページャーの設定、プロンプト表示を変える。
nobuoとrootの両方。
その後、cvsupでportsツリーを最新に。

  • /usr/local/sbin/cvsup-ports.shを作成
  • /usr/local/etc/cvsup/ports-supfileを作成

さらに、cvsupでソースを最新に。
  • /usr/local/sbin/cvsup-releng_7_0.shを作成
  • /usr/local/etc/cvsup/releng_7_0-supfileを作成

すると、昨日修正したネットワークドライバのソースが戻っちゃうので、再び修正。
  • /usr/src/sys/dev/bge/if_bge.c
  • /usr/src/sys/dev/bge/if_bgereg.h

さて、コンパイルだ。
  • chflags -R noschg /usr/obj/usr
  • rm -rf /usr/obj/usr
  • cd /usr/src
  • make -j4 buildworld
  • make buildkernel
  • make installkernel
  • shutdown -r now

無事再起動したら、続き。
  • cd /usr/src
  • make installworld
  • shutdown -r now

無事再起動したら、完了です。

ちなみに、shutdown -r now しても、シャットダウンした後固まってしまう状態です。
再起動してくれないと、居間から電算室に降りるのが面倒くさいな。
これについては、また後ほど。

サーバ構築日誌(2008-06-14)

箱からサーバを取り出す。
マウスとキーボード、電源ケーブル、説明書やCDを出すと、本体が現れた。
なかなかコンパクトで、かわいい。

まずは、FreeBSD7.0のインストール準備として、ISOイメージをダウンロード。
CD-Rに書き込む。
一応、disc1、disc2、disc3を作成。
いつもはマジックで「FreeBSD 7.0 disc1」とか書いてたけど、せっかくなのでプリンタで印刷。
(すでに、パワーのかけどころを誤っている感あり)

disc1を差し込んで起動。
スムースにインストール作業が進んでいく。
が、オンボードのネットワークインターフェースを認識しないね。
これは、後からなんとかしよう。

usyWikiというサイトのPowerEdge/T105を参考にして、

rootにて

# cd /usr/src/sys/dev/bge
# vi if_bgereg.h
#define BCOM_DEVICEID_BCM5721 0x1659

の下に

#define BCOM_DEVICEID_BCM5722 0x165A

を追加

# vi if_bge.c
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5721 },

の下に

{ BCOM_VENDORID, BCOM_DEVICEID_BCM5722 },

を追加。

# cd /usr/src
# make buildkernel
# make installkernel
# reboot

してみました。
動作確認は、明日以降になります。

新しいサーバについて

Sofmap.comのWebサイトで、うっかり(笑)クリックしたのが12日。
13日には佐川急便さんが届けてくれました。早い。
ところが、あいにく留守だったので、翌14日午前中指定して、無事到着しました。

新しいサーバは、コンピュー太郎(四世)として、taro.yamanakake.comのホスト名を与える予定です。
サーバOSとしては、現在のサーバ(コンピュー次郎)がFreeBSDの6.2なので、FreeBSDの7.0にて構築しようと思います。
すべてのサービスが稼動することを確認したら、次郎から太郎に政権交代させるとしましょう。
メールなどをすべて吸い出せたら、次郎には引退してもらうとしましょうか。

HP ProLiant ML110 G5にFreeBSDを導入する(した)事例として、作業手順をここで公開していこうと思います。
参考になればよいのですけど。
なお、仕事の合間に作業しますので、じれったいほど進まないと思います。
気長に待ってやってください。