朝から
「remedieというものがあるらしいけど、ニコ厨ってだけで致命的なのに、あんな便利そうなものを使い出したらおれは仕事をせずに餓死するから使いません。」
という話をしたら、rono23が熱心に仕事してる振りしてMacにremedie入れて俺に自慢してきた。
そんなもん見せられて入れないでいることができるわけがない。もし俺が餓死したらあんた殺人者だぞ。
ということでremedie入れてみた。
Debian etchにremedie
gitは入ってるのでclone(etchで新しいgitを使う場合はこちら)
git clone git://github.com/miyagawa/remedie.git
LibXML2関係に必要なのでlibxml2-devを入れる。
sudo apt-get install libxml2-dev
CPAN祭り(HTTP::Engineだけテスト通らなかったのでforce)
sudo perl -MCPAN -e shell
install Bundle::CPAN
install Module::Install
install Feed::Find
install FindBin::libs
force install HTTP::Engine
install Image::Info
install JSON::XS
install Log::Log4perl
install MIME::Types
install MooseX::ConfigFromFile
install MooseX::Getopt
install Path::Class
install Rose::DB
install Rose::DB::Object
install String::CamelCase
install XML::RSS::LibXML
install DBD::SQLite
install Log::Dispatch
install File::Find::Rule
install XML::Atom
install XML::Feed
install Template
install DateTime::Format::ISO8601
install MooseX::ClassAttribute
install File::Find::Rule::Filesys::Virtual
install HTML::ResolveLink
install HTML::Selector::XPath
install YAML::Syck
install Cache::FileCache
install Web::Scraper
install HTML::Scrubber
install Path::Class::Unicode
install Text::Tags::Parser
install String::ShellQuote
install XML::OPML::LibXML
install Module::Install::AuthorTests
install Date::Parse
install XML::LibXML::Simple
install DBI
DBD::SQLiteがおかしいのでDBD::SQLite::Amalgamationを使う。
svn co http://svn.coderepos.org/share/lang/perl/DBD-YASQLite/trunk/ ./DBD-YASQLite
cd DBD-YASQLite
cat PLEAAAAAAAAAAASEEEEEE_READDDDDDDDDDDDDDD_MEEEEE
THIS IS FORK VERSION OF DBD::SQLite, DBD::SQLite::Amalgamination.
I want to use it, but DBD::SQLite doesn't maintained by maintener.
DBD::SQLite has a lot of known bugs.
perl Makefile.PL
make
make test
sudo make install
心の叫びを無視して続けます。
cd ../remedia
perl Makefile.PL
make
make test
perl -Ilib ./bin/remedie-server.pl
http://localhost:10010 で起動した。 ワーオ。
Apacheからremedieに転送
ローカルではApache使ってるのでremedieからlocalhost:10010にmod_proxyで飛ばす設定をしました。
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo vi /etc/apache2/sites-avalable/remedie
<VirtualHost *:80>
ServerName remedie
DocumentRoot /var/www/
CustomLog /var/log/apache2/remedie-access.log combined
ErrorLog /var/log/apache2/remedie-error.log
ProxyPass / http://localhost:10010/
ProxyPassReverse / http://localhost:10010/
</VirtualHost>
sudo a2ensite remedie
sudo /etc/init.d/apache2 reload
mod_proxy_httpをロードしなければいけないというところでハマりました。
あとproxy.confでAllow from allしておく。 (coLinuxの中なのでWindowsからしかアクセスできないので適当)
いぃぃやっほう! アクセスし易くなった。
自動起動
ローカルなので自動起動して欲しい。 本来デーモン化して/etc/init.d/skel を元に起動スクリプトちゃんと書くところだけど面倒だし終了時は毎回シャットダウンなので適当なスクリプトを置きました。
(多分daemonizeみたいなのがあって簡単にdaemon化できるんだとおもうんだけどperlスキルが大昔で止まっているのでいじれない・・・)
sudo vi /etc/init.d/remedie
#!/bin/sh
cd /home/komagata/works/remedie/
nohup perl -I/home/komagata/works/remedie/lib /home/komagata/works/remedie/bin/remedie-server.pl &
sudo update-rc.d remedie defaults 99 1
これでcoLinux野郎も安心。 全体を通してremedie を remedia だと思ってたところが一番ハマりました。(何て発音すんの?)
このページをブラウザのトップに設定するのは仕事に深刻な影響が出そうです。
とはいってもあまりにも便利過ぎる。俺は餓死するだろう。
参考今日は朝から溜まった年金を払いに郵便局に行った。
瀕死の重傷を負った。おれは餓死する。
郵便局のサービスは良かった。銀行より気持ち荒々しく素早く客をさばいてくれた気がする。好感持ちました。
最近発見した買い物に便利なヒューリスティクスを紹介します。
「嗜好品の満足度は6000円に近づくほど上がる」
これを6000円の法則といいます。
もっと安い価格帯が普通のものでも、高いモノでも、満足度の高い商品は6000円に収束します。
最近の観測
電子レンジ:6,836円![]() |
|
![]() |
|
![]() |
|
ライフチェンジングな商品はいつも6000円なんですよ! 理由はさっぱりですが。
最近、新しいパソコンとか素敵な靴とか欲しいんですけど、
果たして自分にとって、
ホカホカご飯を提供してくれるあのデバイスや、冬場の安眠を大いにサポートしてくれた驚異の寝具や、コンピューターに対する考え方を一変させたバイブル*ほどの価値があるのか?と考えてしまってなかなか買えません。
6000円なら買うんだけど・・・。
以前、オリジナルのscaffoldジェネレーターを作るのがびっくりするほど簡単なことを知って、次のプロジェクトを始める時には必ずそれ用のscaffoldを作ってから始めようと思ってました。
プラグインの雛形を作る。名前は適当です。(YetAnotherScaffold)
script/generate plugin ya_scaffold
デフォルトのscaffoldをコピる。(下記の場所はDebianの場合)
mkdir -p vendor/plugins/ya_scaffold/generators
cp -r /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails_generator/generators/components/scaffold \
vendor/plugins/ya_scaffold/generators/ya_scaffold
ファイル名とクラス名を変える。
cd vendor/plugins/ya_scaffold/generators/ya_scaffold
mv scaffold_generator.rb ya_scaffold_generator.rb
これだけで同機能、別名のscaffoldジェネレータができる。
script/generate ya_scaffold Foo name:string ...
名前が変わっただけ。
中身を見ると、何を変えたらいいのか一目瞭然なので思う通りに変えられます。ジェネレートされるファイルのテンプレはERBなのでそれを弄るだけでも随分違います。
今回のプロジェクト用に吐かれるHTMLを弄ったり、new, editから共通の_formを使うようにしたり、i18nやpaginate入れたり、scaffold.cssやlayoutを作らないようにしたりと極簡単な変更しかしてないですが、作業の手間はかなり短縮できて嬉しいです。
こんな簡単だったらさっさと試してみればよかった。まことに遺憾です・・・。
年末に実家に帰って設置したサーバー。無事設置出来たと思ったんですが、アパートに帰ってから接続しようとするとできない。
何が問題になったんだろう?と不思議に思いましたが仕方が無いので週末早々にも実家に戻って調査しなければと思い、実家にもその旨をメールしておきました。
すると実家の両親から留守電が。
「パソコンの音が五月蝿いと思って電源を切っていたけれど、また付けたので確認してみてください。」
つながるようになりました・・・。
実家を出るとき、口をすっぱくして電源を切らないように。コードを抜かないようにと言い含めてきたはずなんですが・・・。
xen関連インストール
sudo apt-get install xen-linux-system-2.6.26-1-xen-686 \
linux-headers-2.6.26-1-common-xen \
libc6-xen \
xen-tools \
bridge-utils
xenの設定
後で書く。(設定ファイルみれば大体分かる)
domainU作成コマンドの設定
後で書く。(設定ファイルみれば大体分かる)
domainUが起動途中で固まる
設定ファイルに extra=’xencons=tty’ を追加するといける。設定ファイルのテンプレートである下記のファイルに書いておくと楽。
# /etc/xen-tools/xm.tmpl
extra = 'xencons=tty'
domainU内で時間関係のメッセージが出まくる
ntpdateを設定する。
ロケール・タイムゾーンを設定する。
sudo dpkg-reconfigure locales
sudo tzconfig
sshでdomainUに接続できない
「stdin is not a tty」と出てつながらないのでudevを入れる
sudo apt-get install udevRAN ONLINE■ペットシステムとは?
RAN ONLINEの世界では、ペットカードを購入し、ペットを召還することができます。 服を着せてお散歩したり、戦いのお手伝いもしてくれる可愛くて小さなお友達を、お供させてみませんか?
安サーバー構築記のソフトウェア設定編です。 (ハード組み立て・回線契約編はこちら)
ハード
ハード面をまとめると、こんな感じです。
- HP ProLiant ML115 G5
- メモリ8GB
- HDD 3.16TB(1.5TBx2, 160GBx1)
- 固定IP8
ソフト構成
- Xen3.2でDebian Lenny(testing)をDomain0としてDebian etchをいっぱい立てる。
- LVMを使ってみる。
- ファイルシステムにXFSを使ってみる。
OSインストール
ここ数年サーバー関係に事なかれ主義といいますか、適当にパーテーション切ってDebian stable入れておしまい、という感じでした。久しぶりなので使ったことがなかった上記3つにチャレンジしてみました。(勉強になりました!)
ML115 G5についてるオンボードのNICのBroadcom BCM5722は手持ちのインストーラー(debian4.0r5)だと認識されませんでした。新しいインストーラー(debian4.0r6 etch-and-a-half)だと認識しました。
Debian JP Project – リリース情報安定版(stable)
(略)その代わり、セキュリティや致命的な不具合の修正でない限り、安定版の更新が行われることは基本的にありませんでした (たとえば新しいハードウェアへのインストーラやウィンドウシステムの対応など)。しかし、Debian 4.0r4 から「etch-and-a-half」と呼ばれる変更版も追加され、これによって新しいハードウェアへの対応が行われました。最もお勧めするリリースバージョンです。セキュリティアップデートなどをまとめた形で、定期的にマイナーリビジョンアップ (r番号) が行われることがあります。
安定版でもセキュリティ以外に追加があるリビジョンがあるんですね。
Debian—debian-volatile プロジェクトdebian-volatile とは何ですか?
spam フィルタリングやウイルススキャンといった一部のパッケージは、変化し続ける目標を狙っており、データパターンを更新し続けたとしても、安定版リリースの間本当にずっと働き続けられるとは言えません。 volatile の主目標は、選択されたパッケージに対して不安定版を使うという不利益を被ることなく、システム管理者がシステムをより良く首尾一貫したやり方で更新できるようにすることです。このため、debian-volatile は、安定版のプログラムへの、機能を保持し続けるために必要な変更のみを含んでいます。
aptのsources.listにdebian-volatileという見かけないリポジトリのパスが追加されてるなと思ったら、こういうことなんすね。
LVM
今までややこしそうで避けてきたLVMを勉強してインストールしてみました。
普通のパーテーション: /boot, ext3, 100MB 物理ボリューム(PV): 上記以外全部(sda2, sdb1, sdc1) ボリュームグループ(VG): vg0(物理ボリューム全部) 論理ボリューム(LV): /(ルートパーテーション), arial-disk, xfs, 16GB スワップ, arial-swap, swap, 512MB
とりあえず16GBほど使ってインストール。
arial-xxxxというのはマシン名から取りました。使える固定IP5個のマシン名は読み辛いフォント名シリーズということで、arial(アリアル), lucida(ルーシダ), courier(クーリエ), verdana(ベルダナ), helvetica(ヘルベティカ)にしました。
参考:フォントって声に出さないから調べてみた。 – Orbium そらのたま
XEN
これまた避けてきたXenを勉強して入れてみました。(単体でメモリ8GB全部(4GB以上)を認識させるにはlinux-image-xxxxxx-bigmemなどのカーネルを使う必要があります)
etchにあるxenのカーネルというかモジュールは2.6.18-4なんですが、これだとまたオンボードNICを認識しないのでメーカーサイトからドライバを持ってくる必要がありました。
参考:作業日報 | 【Debian】ML115_G5 NICドライバ(BCM5722)
xen-create-image(+ debootstrap)コマンドを使ってdomainUのイメージを作り、立ち上げてみると・・・Invalid Argument?とかいうエラーで速攻で立ち上がらない。
いろいろ時間を費やした結果、わからないのでDebian Lenny(testing)で再インストールすることに・・・。
Debian Lenny
lennyのxenは3.2.1、xen入りカーネルは2.6.26。 これで勝つる! etchのdomainUのイメージを作って起動してみたら行けました。
そもそも糞遅いドリホの移行先と2TBのファイルサーバーを作ろうというのが目的だったので2つしかいらないんですが、いろいろと試してみようと思います。(細かいハマリがいっぱいあったので別エントリでちょこちょこ上げていきたいと思います。)
sudo lvdisplay -C
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
arial-disk vg0 -wi-ao 14.90G
arial-swap vg0 -wi-ao 488.00M
courier-disk vg0 -wi-ao 200.00G
courier-swap vg0 -wi-ao 2.00G
lucida-disk vg0 -wi-ao 2.00T
lucida-swap vg0 -wi-ao 2.00G
verdana-disk vg0 -wi-ao 200.00G
verdana-swap vg0 -wi-ao 2.00G
安サーバーを設置してみての感想
今回は個人(実家)にサーバーを設置してみましたが、ベンチャーなどでもほぼそのまま使えるかと思います。(rsyncでバックアップを追加すればよいかと)
残念だったこと
- プロバイダーのZOOTは転送量を40GB/月ぐらいを目安と言ってること。
- 同じくOBP25B。
- オンボードNIC
- Domain0がetchで動かなかったこと。(なぜ意地でもDebianしか使わないのかは謎)
- Domain0は今後KVMに置き換わっていくらしいこと。
- アレがついてなかったこと。
- 年内に終わらなかったこと。
良かったこと
- LVMが便利だったこと。
- Xenが便利だったこと。
- メモリ、HDDが糞安かったこと。
- 固定IPが便利だったこと。
- Lennyのインストーラーが再起動前にsources.listのCDの行をコメントアウトしてくれるようになったこと。
- 意外と場所を取らなかったこと。
- 意外と静かだったこと。
- 仕事に色々と役立ちそうだったこと。
- 色々勉強になったこと。
- おもろかったこと。
デフォルトだとlvm入ってない。
sudo apt-get install lvm2
コマンドは使えるようになるが、ブロックデバイスとか見えない。
sudo modprobe dm-mod
Device Mapperモジュールを有効にすればOK。
sudo lvdisplay -C
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
arial-disk vg0 -wi-ao 14.90G
arial-swap vg0 -wi-ao 488.00M
courier-disk vg0 -wi-ao 200.00G
courier-swap vg0 -wi-ao 2.00G
lucida-disk vg0 -wi-ao 2.00T
lucida-swap vg0 -wi-ao 2.00G
verdana-disk vg0 -wi-ao 200.00G
verdana-swap vg0 -wi-ao 2.00G





