hns - 日記自動生成システム - Version 2.19.7

void GraphicWizardsLair( void ); //

otsune GWL
FreeBSD, AfterEffects, RETAS, animo, DigitalAnime, Linux, Mac OS, Win2k

[Who is otsune?] [title] [message] [Policy] [注目エントリー] [top]
Twitter Status :


Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい

検索式:

先月 2004年06月 来月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30


2004年06月19日() [長年日記]

#1 [unix][www] はてなダイアリー - 【で】にっき「サーバは10台近く管理してるけどあんまり違いが実感できてなかったり。」_

大規模ホストの管理ノウハウは、おそらく大学とか企業のシステム部で受け継がれているのでは無いかと想像しています。
ちなみに私は直接FreeBSDの師匠となる人は居なかったので、Googleと専門誌とmanとMLで得たノウハウしかありません。
どっかの雑誌で「FreeBSD・中規模サイトの管理ノウハウ」という記事でものらねぇかな。
というわけで「凄い人に見られたら初歩的すぎたり的外れで恥ずかしいことでも、平気で書いちゃうずうずうしさ」が重要だと考えているオレなので、書いてみよう。
さて、私がやっていることといえば。
  • IPv4で届くところでcvsup-mirrorを立ち上げ。管理下のホストはこのミラーに対してSUPHOSTを設定する。念のために2台立ち上げてDNSラウンドロビンしている。
  • UltraSCSI320でXeon Dualの一番処理速度の速いホスト(以下「portsサーバー」)で、portsdb -uUをして/usr/ports/INDEX.dbとINDEX.localを毎日生成
  • portsupgrade -Faでdistfilesをfetchしておく
  • /usr/ports/以下をApache等でhttp公開
  • /etc/make.confでDEPENDS_TARGET= packageとFORCE_PACKAGE=yesとMASTER_SORT_REGEX?= ://[^/]*\.jp[/.]
  • devel/ccacheをインストールして/etc/make.confでCC=/usr/local/bin/ccache ccとCXX=/usr/local/bin/ccache c++を指定。~/.ccacheは速いスライスに確保しておく。
んで各ホストで設定していることといえば
  • /usr/local/etc/pkgtools.confのPKG_SITESでportsサーバーを指定。ENV['PORTS_INDEX'] ||= ENV['PORTSDIR'] + '/INDEX.local'も指定。MAKE_ARGSも。
  • /usr/local/etc/periodic/999.cvsup等でportsをcvsupしてportsサーバーから/usr/ports/INDEX.{db,local}をfetch
  • /etc/make.confでMASTER_SITE_OVERRIDEをportsサーバーに指定
あと/etc/make.confで
WITHOUT_X11=yes
WITHOUT_GUI=yes
WITH_IPV6=yes
WITH_APACHE2=yes
とか統一knobを指定していたり。
portsサーバーが各ホストの/etcと/usr/local/etcのCVSROOTサーバーも兼用している。ssh経由でのアクセスなのでpserverは使わない。管理を忘れがちなのが/usr/src/sys/i386/conf以下のカーネル設定ファイルだけど。このあたりはシンボリックリンクとかで。
新しいホストを作るときはPXEブートで立ち上げてkick startを……というのが理想だけど、あんまり上手く行かなかったり。
各ホストのメンテはportupgrade -Pでpackagesを利用してアップデートをする。
/etc/rc.confと/etc/rc.conf.localを使えば共通している設定とホスト固有の設定を分離できるのでメンテが楽。
/boot/loader.confと/boot/loader.conf.localも同様。
他には何があったかなぁ……。
というか他にももっと効率の良い管理方法があるっぽい。

1 portsサーバー続き:

まずportsサーバーをホストとするjailでApacheサーバーを作る。
mount_nullでJail内に公開用のportsツリーをマウントする。
/etc/fstabで
/usr/ports	/path/to/jail/http_server/usr/ports	null	ro	0	0
などと書いておく。
/usr/local/etc/apache2/http-ports.confとかを
Alias /ports/ "/usr/ports/"
などど書いてhttpd.confでIncludeしておく。
IPv6で公開したいときはホスト側でApacheを動かすしかないかなぁ。
thttpdとかでもいいかもしれない。

1 クライアントの管理について:

isc-dhcp3-serverをインストールして、/usr/local/etc/dhcp.confでIPを振る。
Webアクセスはwww/squidを使っている。
プロクシ設定をクライアントに効率よく適用するために前述のJail Apacheサーバーでproxy.pacを作成。
wpad.datとwpad.daとproxy.paとしてハードリンクしておく。(Windows98のバグ対策)
dhcp.confで
option wpad code 252 = string;
option wpad "http://wpad.EXAMPLE.co.jp/proxy.pac";
などと書いておけば「設定を自動的に検出する」でproxy.pacを読み込む。
proxy.pacの書き方は省略。検索してちょ。
ただしreturn "DIRECT";をすると、イントラネットゾーンとしてIEがアクセスするというおせっかいな仕様があるので大注意。やめてくれーMicrosoftよ。
DHCPサーバーはセカンダリマシンがあるのならfailover peerで運用してもいいかも。
んでLAN内にSambaホストを構築してドメインマスター&WINS Serverにしている。
そのばあいはdhcp.confで
option netbios-name-servers 192.168.foo.bar;
というかんじに各Windowsクライアントに設定。
Active DirectoryとかKerberosとかは「大規模サイト」の範疇で勉強中。よくわからん。
option ntp-serversとoption domain-name-serversとoption routersは適度に。
Permalink: http://www.otsune.com/diary/2004/06/19/1.html#200406191
trackback
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2004-06-19 00:00:00 By otsune