スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

インフラ整備の練習とメモ

  • Sun
  • 01:41
  • OS
来年以降サーバを使う機会が多そうなので、BSDの取り扱い練習をしてみた。
色々調べて触っていたら考え事が溜まったので、その整理を。

- Apache2
- Python
- MySQL
- FTP
- SSH
- NTP
- wget
- pico
-bash
- emacs
- useradd
- pw groupadd
- (Trac)

まず手作業で、ソースコードから全部makeしてみた。
恐ろしく時間がかかるのな。
バイナリ配布のありがたみが良く分かった。
あと、通常のDevelopperディストリ+上の構成だけで3.1GB以上もHDD容量を喰うので、貧弱なシステムでは一部の機能しか使えない。
…まぁコンパイルしてインストールする度に余分なバイナリをクリアすれば良いのだけれど、コンソールだけのシステムでコレ程容量を喰うとは予想外。

基本的にmake/make install で時間がかかる作業は全部終わりなのだけれど、その後各アプリケーションがきちんと動作するように適切な設定を行う必要がある。
この辺は何かスクリプトを作っておきたいところ。

いずれコマンド一発で環境整備を全部済ませられるようにしたいので、各アプリケーションのインストールから実際に利用可能な環境設定までにどれだけの手順が必要なのか一度試してみる必要があった。
今後は以下のプログラムの設定もそれぞれ試してみて、またそれぞれ適切な汎用設定を作り出しておきたいところ。

- Django
- jdk/jre/(Tomcat)
- NFS
- (PHP)
- 日本語環境一般
- Gnome2
- samba
- g4u

ヘッドレスシステムを想定しているので、リモートでの完全な制御を出来るようにしておく必要がある。
また、定期的なデータのバックアップ(ローカル/リモート)やディレクトリの整備(daily)も一通り試してみたい。
PHPは、一般的なUnix系OSの監視ツールでよく使われているので候補に挙げておく。
Tomcatは個人的にjava servletが(慣れの関係で)perlより使いやすいので挙げておく。
日本語環境、Gnome2 はヘッドレスでないノードを作成するときのための練習。
Sambaはその中でマルチOS環境で利用予定なので優先順位は下。

基本的な、環境整備のための読み書きの自動化には以下のステップを踏むつもり。

- ネットワークインストール
  1:sysinstall install.cfgの設定
  2:pxebootを利用したネットワークブート(スイッチを入れるだけでリモートにカーネルを読みに行く)
  3:必要なオプションを記したスクリプトの実行
  4:汎用のカーネルチューニング(明らかに必要なさそうなオプションを外しておく)

- 汎用ディスクイメージの作成
  5:インストールではなく、インストール済みのディスクイメージのコピーによって1~4を省略する

1は、sysinstall install.cfg はBSDに固有のOSのインストール情報を記述するスクリプト。
2は、pxebootはディスクレスでのOS起動が必要になった場合に備えて試しておく。特に、インストール用のスクリプトを勝手に読みに行くようにしておくと幸せかも。NFS,FTP辺りは必須ぽい。
(pxeとは、Intel版Wake On Lanみたいなもの。インストールの終了を知らせるシグナルの発信は出来ないだろうか…)
3は、一般的なアプリケーションの配備のための設定をスクリプト化したら、他のOSでもまんま使える状態にしておくのが望ましい。
5はできたらいいなといった感じ。g4uというシステムのゴーストを作成するソフトがあるのでそれでシステムのイメージをフロッピー起動で渡せる。3との違いは、これだと最低一回はコマンドを打つ必要があるという事。

完全自動化した環境構築の場合、特にネットワークアドレスは最初はDHCPによって自動で割り振っておく。
その後汎用のアプリケーションのインストール段階で自動で自分の位置を固定すれば何も触らないですむか…?

んで、ここまでやって、それぞれの機能がきちんと動作するようになったら次。
システムの監視とセキュリティの強化、パフォーマンス改善の勉強。

特に、障害時のデータの復旧、ディスクスライスの再割り当ての練習は特にしておく必要がある。
今日の練習でディスク容量が枯渇する事故があった。
こういう場合のディレクトリ構成の再割り当てをどうするのか良く調べておかないと色々困りそう。



当面は、これらを実験用のサンドボックスとしてVMwareの仮想マシンを利用して必要なスクリプトのテストを行う。
その後、有効なスクリプトを利用した環境のコピーをするための仮想マシンをもう一台作成して、必要が生じた時にそこからネットワーク経由で他のマシンに直接環境を構築するようにする。

うまく出来た仮想マシンは、DVDにでも焼いておけば他のヒトがその仮想マシンイメージを使うことが出来る。
またOSの基本部分のインストールの自動化をOS毎に作り分けておけば、その上で動作するプログラムのスクリプトもそのまま再利用できる。はず。


ローカルのDNS、メールサーバ、IP電話サーバ(Asterisk)も時間があったら試しておきたい。
セキュリティに関しては、オーソドックスなアクセス制御、侵入検知の仕方が攻撃に対してどの程度の威力があるのか、(各種田代砲やゲイツ砲、Apache砲による負荷攻撃やバッファオーバーフロー攻撃、ポートスキャン→侵入)実際試してみないことには分からないので、PCが汚染される危険はあるがサンドボックスでrootkitを探してきて試してみようと思う。

ロードバランサによるリクエストの分散化とファイルシステムの多重化、起動終了・日常タスクの自動化辺りが出来るようになるのが当面の目標。

容量的なスケールアップの下地が出来たら、次はリクエストではなくプロセス・タスクの並列・分散化の勉強がしたい。
コンピュータクラスタ、グリッドまでたどり着けると良いんだが...。

まぁ取らぬ狸の皮算用。
期末試験の勉強が先だね。
とりあえず頭の中が整理できた。
スポンサーサイト

カウンター

プロフィール

Hatabon

Author:Hatabon
日々精進。
基本的に管理人はゆるやかな人です。
コメントへの返信もゆるやかです。

Twitter on FC2

最新記事

最新コメント

月別アーカイブ

カテゴリ

検索フォーム

全記事表示リンク

RSSリンクの表示

リンク

  • pagetop
Copyright © Hatabon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。