I ♥ WordPress

High Availability Linuxの日本語サイトは、、、
2007/10/05 21:52 posted by kunkichi

昨日のエントリの続き。

Open Tech Press | NTTら4社、オープンソース・クラスタウェアHeartbeatの日本語サイトを開設

NTT、NTTデータ先端技術(NTT-DI)、VA Linux Systems Japan(VA Linux)、NECは10月4日、オープンソースのクラスタウェア、Heartbeatの日本語サイトを共同で開設すると発表した(サイトオープンは5日)。

匆々たるメンツだね、これじゃ出る幕ないか、爆

ま、これを機に情報が整理されて活用事例が増えるのであればよし。

High Availability Linuxの日本語サイトがオープン
2007/10/05 00:52 posted by kunkichi

おお!

Linux HA Japan

明日の朝オープんってことは日本語コンテンツはもう大体できあがってるってことだよねぇ。

くそぅ、翻訳とかやりたかったぞ(笑)

cobblerの日本語ドキュメントを公開しました。
2007/10/02 19:31 posted by kunkichi

ずいぶんと放置状態の「サーバの構築を簡単にする為のステップ」プロジェクト、通称「はてなのサーバ構築プロセスを完全解剖する」計画ですが、ちょこっと横道にそれて、cobblerを追っかけてるうちに、日本語の情報がないなぁということで、cobbler作者のMichael DeHaan氏に許可を頂いて、ドキュメントの日本語翻訳を始めました。以下で公開しています。

http://www.cafechantant.com/trac/wiki/cobbler_top

Yes!!! tracです。さくらに突っ込んでやりました。

で肝心の翻訳ですが、拙訳・意訳・超訳なんでもありな感じですので、ツッコミ大歓迎です。というか翻訳協力者募集中、爆

というのも、そんなこんなでcobblerもバージョンが0.6.2まで上がっているんだけど、ドキュメントがそれに追いついてなかったり、というところがチラホラ見られたりとか、あとkoan関係はほんと使ってないからわかんない。ま、まだ開発中だからしょうがないっていう面もあるのだけど。

そういう点も含めて、単なるドキュメント翻訳ということではなく、cobbler日本語サイトとしてやっていきたいので、協力して頂ける方はいつでもウェルカムです。

さて、そいや、このブログの過去記事もどっかで修正したエントリ書かないとなぁ。バージョンも上がってるし、いろいろいじってるうちに過去の記事のやり方がベストだと思えなくなりつつあるし。

で、頓挫中のプロジェクトですが、落ち着いたら必ず再開します。と公に宣言してみることで自分にプレッシャーをかけておきます。

さくらで CakePHP
2007/09/17 03:21 posted by kunkichi

ちょっと作りたいアプリケーションを思いついたので、最近流行の CakePHP をさくらインターネットで使ってみようと。その時のメモ。

ちなみにうちのディレクトリ構成はこんな感じ。+/home/example ・・・ ホームディレクトリ
  |
  +cake ・・・ cake ディレクトリ
  |
  +apps ・・・ CakePHPで作成するアプリケーション用ディレクトリ
  | |
  | +app1 ・・・ CakePHPで作成するアプリ1のappディレクトリ
  | | |
  | | +config, docs, libs, scriptsディレクトリとファイル
  | |
  | +app2 ・・・ CakePHPで作成するアプリ2のappディレクトリ
  |   |
  |   +config, docs, libs, scriptsディレクトリとファイル
  |
  +www ・・・ ウェブで公開されるディレクトリ(DocumentRoot)
    |
    +app1 ・・・  CakePHPで作成するアプリ1 の webroot
    |
    +app2 ・・・  CakePHPで作成するアプリ2 の webroot
    |
    +other ・・・  CakePHP以外のアプリを使う場合のディレクトリ
ちなみに以下のサイトを参考にさせてもらいました。

ディレクトリ構成的には、

  • 複数のアプリを同じcakeライブラリで使い回せるよう、cakeディレクトリを/home/UserName 配下に置く。

辺りのところは、I Love PHP さんとこで紹介されているのと同じポリシーなんだけど、

  • セキュリティ的な観点から、appディレクトリはDocumentRoot(さくらの標準では、/home/UserName/www)からは見えないところに置く。DocumentRootに配置するのは、webrootディレクトリのみ。
  • CakePHPで複数のアプリを作成するので、appディレクトリはアプリごとにコピーして配置。
  • 同様に、webrootディレクトリもアプリごとにコピーして配置。各アプリへのアクセスは、http://www.○○○.com/app1/ みたいな感じでアクセス。
    CakePHP以外のアプリをインストールする場合も同様のポリシー。

というところを追加してみました。

最近はホスティングもドメインも安くなってきたけど、それでもやっぱり余計な出費は抑えたい、一つの契約でいろいろやりたい、というお金がない人向けの設定(笑)。でも結構ニーズあるかと。

手順は以下。

ソースのダウンロードと展開
# cd ~/tmp
# wget http://cakeforge.org/frs/download.php/502/cake_1.1.17.5612.tar.gz
# tar zxvf cake_1.1.17.5612.tar.gz
# cd cake_1.1.17.5612

CakePHPライブラリの配置
# cp -r cake /home/example/.

アプリ用ディレクトリにappディレクトリを配置
# mkdir /home/example/apps
# cp -r app /home/example/apps/app1

公開ディレクトリにwebrootディレクトリを配置
# mv /home/example/apps/blog/webroot /home/example/www/app1

設定ファイルの編集
# vi /home/example/www/app1/index.php変更箇所は以下。CakePHPのマニュアルによると、ディレクトリのパスは’/abc/def’と指定するより、DS.’abc’.DS.’def’が推奨と書いてあるので、それに併せてます。
・・・
define('ROOT', DS.'home'.DS.'UserName'.DS.'apps');
・・・
define('APP_DIR', 'app1');
・・・
define('CAKE_CORE_INCLUDE_PATH', DS.'home'.DS.'UserName');
・・・

mod_rewriteの設定
# vi /home/example/app1/.htaccess
    RewriteBase   /app1

データベースの設定
# cd /home/example/apps/app1/config
# cp -pi database.php.default database.php
# vi database.php
変更箇所は以下。
・・・
class DATABASE_CONFIG
{
    var $default = array( 'driver'   => 'mysql',
                          'connect'  => 'mysql_connect',
                          'host'     => 'mysqlXX.db.sakura.ne.jp',
                          'login'    => 'UserName',
                          'password' => 'password',
                          'database' => 'UserName',
                          'prefix'   => 'app1_');
 
    var $test = array('driver' => 'mysql',
・・・
}

prefixをつけているのは、複数のアプリを作る場合にややこしくなりそうなので。

あ、そうそう、うちではビルドしたphp5で確認してます。さくら標準のphp4でも同様に動くかどうかは不明。

ではぼちぼち作っていきます。

ファイルがどのパッケージに含まれているかを確認するrpmコマンド
2007/09/09 00:08 posted by kunkichi

いっつも忘れてしまって、もう100回ぐらい調べてます、、、僕の記憶力、orz

# rpm -qf ファイル名

これでもう忘れない、と思いたい、、、

サーバの構築を簡単にするためのステップ (その6:Cobber編 Part2 )
2007/09/05 12:42 posted by kunkichi

ということで前回のエントリからまたもやえらく経ってしまったのだけど引き続き Cobbler の設定。

前回まででインストールと基本設定はできているので、いよいよここから実際のネットワークインストールサーバの運用に絡んだお話。逆に言うと前回の手順で行った1〜3の作業については(大幅な設定変更とかしない限り)もう意識する必要はなくなる。

(more…)

CentOS5 で Subversion+Trac
2007/08/27 21:24 posted by kunkichi

またもや前回のエントリから時間が経ってしまったのだけど、いろいろ検証しているうちにキックスタート設定ファイルやら構築手順やらのファイル管理が必要な気がしてきた。

のちのちはアプリ開発環境も構築していきたいということもあって、ちょっと脱線して、前からやってみたかった Subversion+Trac を CentOS5 に導入してみました。

ちなみに、前提条件はこんな感じ。

  • Subversion のレポジトリは /home/develop/svn 配下にプロジェクト毎にディレクトリを分けて作成。

    例)
        /home/develop/svn/project1
        /home/develop/svn/project2
        /home/develop/svn/project3

  • Trac のプロジェクト用ディレクトリは /home/develop/trac 配下にプロジェクト毎にディレクトリを分けて作成。

    例)
        /home/develop/trac/project1
        /home/develop/trac/project2
        /home/develop/trac/project3

  • Subversion へのアクセスは HTTP経由のみ。svn はセキュリティ的にありえないし、svn+ssh は複数で使う場合にパーミッションの問題が面倒な気がしたので。HTTP なら apache ユーザの権限つけとけば済むのでシンプル。
  • Subversion へのアクセス制限はBASIC認証。またコミット時はこれがコミットしたユーザとして登録される。HTTPS はある程度環境ができてから。
  • Trac へのアクセス制限は Subversion のアクセス制限設定と同じファイルを使う。
  • OS は CentOS5 を最小構成で入れた状態。
  • 【追記】2007/9/7:SELinuxとFirewallはOFF。

では手順。

・Subversion のインストール

CentOS5 では subversion を HTTP 経由 で使うのに必要なパッケージが全部揃っているので、yumで subversion、httpd、mod_dav_svn をインストールすればオーケー。コマンド的には↓で全部必要なものが入ります。
# yum install mod_dav_svn
subversion のレポジトリを作成。プロジェクト名は”test”とします。
# mkdir -p /home/develop/svn
# svnadmin create /home/develop/svn/test

トランク、タグ、ブランチ用のディレクトリを作成。
# svn mkdir file:///home/develop/svn/test/trunk file:///home/develop/svn/test/tags file:///home/develop/svn/test/branches -m "init repository layout (trunk,tags,branches)"
apacheからファイルの読み書きが出来るようにパーミッションを変更。
# chown -R apache.apache /home/develop/svn/test
BASIC認証の設定。
# htpasswd -c /home/develop/.htpasswd kunkichi
apache の設定変更。/etc/httpd/conf.d 以下に subversion.conf が出来ているのだけど、全てコメントアウトされているので、必要な箇所のコメントアウトを外して、リポジトリ、BASIC認証用パスワードファイルのパスを変更。
# vi /etc/httpd/conf.d/subversion.conf
最終的にはこんな感じ。
<Location /svn>
   DAV svn
   SVNParentPath /home/develop/svn
 
   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL
 
      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /home/develop/.htpasswd
      Require valid-user
   </LimitExcept>
</Location>

最後にapacheを再起動+自動起動設定。
# service httpd start
# chkconfig httpd on

ブラウザで確認。トランク、タグ、ブランチ用のディレクトリを作成した時にリビジョンが上がっているので”Revision 1: /”と表示されればOK。

・Tracのインストール

続いて Trac のインストール。

こちらも yum でササッと行きたいところだけど、CentOS5 の標準リポジトリに Trac は含まれていない。あとTrac が依存しているライブラリも同様。でもサードパーティーのレポジトリである DAGレポジトリ(rpmforge) でちゃんとパッケージ化されているのでこれを使えばオーケー!

、、、なんだけど、DAG の Trac パッケージは日本語化がされていない。個人的には英語でもなんら困らないし、むしろサーバのパッケージ管理を考えるとこっちの方がベターなんだけど、初のTrac ということもあるので、今回は依存ライブラリを DAG から、Trac 本体はインタアクト株式会社のウェブサイトで提供されている日本語化されているものを使う。

DAGレポジトリの追加。
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

DAGレポジトリは標準でOFF。必要なときのみONとする。DAGレポジトリの設定ファイルを開いて
# vi /etc/yum.repos.d/rpmforge.repo
・・・
enabled = 1
・・・
これを
・・・
enabled = 0
・・・

に変更。

Tracが依存しているライブラリをDAGからインストール
# yum --enablerepo=rpmforge install -y python-clearsilver
ついでにmod_pythonもインストールしておく。こっちは標準レポジトリから。
# yum install -y mod_python

日本語化Tracのインストール
# wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
# unzip trac-0.10.4-ja-1.zip
# cd trac-0.10.4-ja-1
# python setup.py install

Tracプロジェクト用ディレクトリの作成
# mkdir /home/develop/trac
Tracプロジェクトの作成。こちらも subversion のプロジェクト名と同じように”test”とします。
# trac-admin /home/develop/trac/test initenv
trac-admin 〜 initenv するといろいろ聞かれるので以下のように回答していきます。

まずプロジェクト名。”test”と入力。
Project Name [My Project]> test
Tracのデータベース接続詞を設定。今回はお手軽に デフォルトのsqlite を使うのでそのままENTER。
Database connection string [sqlite:db/trac.db]>
レポジトリのタイプを指定。subversion がデフォルトなのでそのままENTER。
Repository type [svn]>
subversionのレポジトリパスを指定します。
Path to repository [/path/to/repos]> /home/develop/svn/test
Tracのテンプレートパスを指定。とりあえずデフォルトで。そのままENTER。
Templates directory [/usr/share/trac/templates]>

完了したら動作確認。Trac付属の簡易HTTPサーバを起動。
# tracd --port 8000 /home/develop/trac/test
ブラウザで http://サーバのIP:8000/プロジェクト名 にアクセスして画面が表示されればとりあえずOK。

Tracd で動作確認が出来たら Ctrl+C で止めて今度はapacheで動作するように設定。まずパーミッションを変更。
# chown -R apache:apache /home/develop/trac/test
次にtrac用のapache設定ファイルを作成。
# vi /etc/httpd/conf.d/trac.conf
内容はこんな感じ。
<Location /trac>
   SetHandler mod_python
   PythonDebug On
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir /home/develop/trac
   PythonOption TracUriRoot /trac
</Location>
 
<LocationMatch "/trac/.*/login">
   AuthType Basic
   AuthName "trac"
   AuthUserFile "/home/develop/.htpasswd"
   Require valid-user
</LocationMatch>

設定が終わったらapacheを再起動して設定を反映。
# service httpd restart
ブラウザで http://サーバのIPアドレス/trac/test にアクセスして確認してみます。
Trac
こんな画面が表示されたらこれで一応完了です。

あと、やりたいこととして

  • HTTPSでのアクセス。
  • Subversion のコミットとTracのチケットの連携。
  • Subversion でコミットが行われたり、Trac でチケットが登録された時にメールで通知。

とかあるんだけどこれは後々。

【追記:2007/9/8】

このエントリを参照していただいたサイトで以下のエントリがありました。

■[CentOS]CentOS5でsubversionを入れる時に詰まったことのメモ

  CentOS5 で Subversion+Trac | cafe chantant blog

VMware Serverを導入したので、CentOS5を入れていろいろと試そうということで上記のページを参考にSubversionのインストールしました。

インストールを終えてブラウザから動作の確認をしたのですが、「Could not open the requested SVN filesystem」と表示され、うまくいっていませんでした。(public static void main

テスト環境だったのでSELinuxとかFirewallはOFFにしてたのですが記述してなかったので追記しました。

サーバの構築を簡単にするためのステップ (その5:Cobber編 Part1 )
2007/08/09 01:58 posted by kunkichi

ちょっと間が空いたけど前回の続き。

ステップ3とステップ4で、OSの自動インストールの仕組みについて説明した。それぞれの設定はそんなに難しくはないと思うんだけど、kickstart、dhcp、tftp、ファイルサーバと設定箇所が多岐にわたっていてかつ手動で設定するのは、ちょっと規模が大きくなると厳しい感じもする。

ということで上で一通りあげたツールを全部まとめて簡単にインストール・設定・管理ができる、Cobbler というツールがあることを知ったのでちょっと脱線するけど試してみる。

(more…)

データセンターの消費電力が5年後には倍になる
2007/08/08 00:35 posted by kunkichi

Open Tech Press にこんな記事が載っていました。

Open Tech Press | データセンター:総消費電力が5年で倍増 米環境保護局調査

米環境保護局(EPA)は8月3日(米国時間)、米国内の全データセンターが消費する総電力が5年間で倍増し、2011年には年間1000億キロワット時(kWh)超になるとの予想を発表した。これを賄うには、新たに10基の発電所が必要になるという。
Open Tech Press

うーん、やっぱりこういう流れになるよねー。

このニュースはアメリカ全体っていうマクロなレベルだけど、データセンターの収容効率とかっていうレベルでも消費電力は重要だよね。

そういや、はてなのサーバは風力で動いてるらしい。
はてな - グリーン電力化への取り組み

サーバの構築を簡単にするためのステップ (その4)
2007/08/02 17:30 posted by kunkichi

前回の続き。

PXEブート対応のNICがないということで、完全な無人インストールはできないということだったのだけど、BIOSの設定を見直してみるとありました、、、調査不足、俺、orz

ということで早速設定変更してやってみました。

4. PXEブートで起動。全てのデータをネットワーク上に置く。

まず、PXEブートに対応しているNICがついていてBIOS設定で有効にしておくことが大前提。

まずインストール対象のサーバがインストールプログラムをネットワークから取得できるようにtftpサーバを立てる。
# yum install tftp-server
tftpサーバはxinetd越しに起動するのでxinetdも併せてインストールされると思います。ただしデフォでは無効になっているので、これを有効にする。
# chkconfig xinetd on
# chkconfig tftp on
修正後、xinetdのリスタートもお忘れなく。
# service xinetd restart

次にPXEブート用のブートイメージをCD/DVDからtftpで公開しているディレクトリにコピー。
# mkdir /tftpboot/linux-install
# cp -pi /export/nfs/iso/images/pxeboot/initrd.img /tftpboot/linux-install/.
# cp -pi /export/nfs/iso/images/pxeboot/vmlinuz /tftpboot/linux-install/.

次にPXEブート用のブートローダであるpxelinux.0をtftpで公開しているディレクトリにコピー。
# cp -pi /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install/.

PXEブート用の設定ファイルを作成する。pxelinux.0と同じ階層にpxelinux.cfg というディレクトリを作成し配下にdefaultという名前でファイルを作成する。
# mkdir /tftpboot/linux-install/pxelinux.cfg

中身はこんな感じで。
default centos5
prompt 0
 
label centos5
kernel vmlinuz
append ks=nfs:192.168.0.254:/export/nfs/ks/ load initrd=initrd.img devfs=nomount

で、最後にdhcpd.confの設定変更。これまではDHCPでIP取得と併せてキックスターと設定ファイルのパスを取得していたのだけど、PXEブートではIP取得と併せてまずブートローダを取得しないといけないので、DHCPではブートローダのファイル名を渡すようにする。そのかわり、PXEブート用設定ファイルの中でブートローダの引数にキックスタートファイルのパスを指定する、ということかな。
        filename "/export/nfs/ks/"; これを
        filename "/linux-install/pxelinux.0";に変更して、DHCPを再起動する。
# service dhcpd restartでサーバの電源をオン。

これで終了〜。ブートCD/DVDのメディアもいらないし、起動時のプロンプトも入力する必要なし、電源入れるだけで勝手にインストールが始まります。

ちなみにうちの余っていたDELLのデスクトップ(CPU: Pen3 1GHz、MEM: 512MB)で試してみた感じでは、トータル15分程度で完了。これはマシンスペックやネットワークの帯域、あとインストールするパッケージ数にもよると思うだけど、
最近のマシンはCPUもディスクも早いと思うのでもっと短くなるかもしれないね。

このページの先頭へ