Twitter Tools
CentOS 5.5 で lighttpd を使う
Virtual Host + SSL を使いたいのと、仕事だとアンパイな Apache ばかりで飽きたので、lighttpd を入れる。
■Fedora EPEL リポジトリを設定
Apache 勢力の陰謀なのか、lighttpd パッケージは CentOS で初期設定されているリポジトリにはなくて、Fedora EPEL リポジトリというところにおいてある。以下でリポジトリ設定をインストールし使えるようにする。
ちなみに 32bit 版のひとは x86_64 が i386 に変わるよ
[root@kvm1 ~]# wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm
[root@kvm1 ~]# rpm -Uvh epel-release-5-3.noarch.rpm
■lighttpd インストール
ってことで、素直に yum を使いインストール。
[root@kvm1 ~]# yum install lighttpd
■ファイアウォール設定
80と443を通すよう設定してiptables再起動。
[root@kvm1 ~]# vi /etc/sysconfig/iptables
[root@kvm1 ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@kvm1 ~]# service iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中filter [ OK ]
iptables モジュールを取り外し中 [ OK ]
iptables ファイアウォールルールを適用中: [ OK ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns [ OK ]
■他のPCなどからアクセステスト
紙飛行機のロゴが出てきたらOK。
WordPress 3.0
CentOS 5.5 で KVM
いや仮想化百花繚乱だよねー
■仮想化技術ってどんなのがあんのよ
VMware:いけてるんだけど、H/Wを選ぶしOSS臭ゼロだし。
VirtualBox:SunはすきだけどOracleになっちゃったんでちょっと。
Xen:準仮想化いい感じだけど親にも子にもXen用カーネルを要求したりするところがちょっと。
KVM:カーネルに標準でマージされてるんで今後のデファクトっぽいし。仕事でも使ってるし。
ってことで、KVMでいいや。
■KVMの前提条件だよ
使用にあたっては、CPUの仮想化支援機能が必要なんで、Intel の場合は BIOS SETUP で「Virtualization Technology 」をオンにする必要がある。 仮想化支援機能がないCPUでは動きまへん。
■で、まずはホスト(親)OSインストール
CentOS 5.5 (64bit) をフツーに。
固定IP。FirewallとSELinuxは切る。パッケージはGUIとかいらないんで「Base」と「エディタ」と「KVM」だけ。「仮想化」は競合の恐れがあるんで指定しない。(ry
■親)とりあえず全パッケージ最新化
[root@kvm0 ~]# yum -y update
■親)使わんサービスをとめる
[root@kvm0 ~]# chkconfig acpid off
[root@kvm0 ~]# chkconfig atd off
[root@kvm0 ~]# chkconfig auditd off
[root@kvm0 ~]# chkconfig avahi-daemon off
[root@kvm0 ~]# chkconfig bluetooth off
[root@kvm0 ~]# chkconfig cpuspeed off
[root@kvm0 ~]# chkconfig cups off
[root@kvm0 ~]# chkconfig gpm off
[root@kvm0 ~]# chkconfig hidd off
[root@kvm0 ~]# chkconfig ip6tables off
[root@kvm0 ~]# chkconfig irqbalance off
[root@kvm0 ~]# chkconfig mcstrans off
[root@kvm0 ~]# chkconfig microcode_ctl off
[root@kvm0 ~]# chkconfig mdmonitor off
[root@kvm0 ~]# chkconfig netfs off
[root@kvm0 ~]# chkconfig nfslock off
[root@kvm0 ~]# chkconfig pcscd off
[root@kvm0 ~]# chkconfig portmap off
[root@kvm0 ~]# chkconfig readahead_early off
[root@kvm0 ~]# chkconfig readahead_later off
[root@kvm0 ~]# chkconfig restorecond off
[root@kvm0 ~]# chkconfig rpcgssd off
[root@kvm0 ~]# chkconfig rpcidmapd off
[root@kvm0 ~]# chkconfig sendmail off
[root@kvm0 ~]# chkconfig smartd off
[root@kvm0 ~]# chkconfig xfs off
[root@kvm0 ~]# chkconfig yum-updatesd off
再起動。
■親)子供らを野ざらしにする準備
親NICにブリッジ設定。(これやらないと親子間はNAT設定になって子を外からアクセスさせるときメンドイ)
かつ、「virbr0」とかいうNAT用の仮想ブリッジが勝手に作られてるのでこれを消す。
[root@kvm0 ~]# yum -y install bridge-utils
[root@kvm0 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
[root@kvm0 ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
[root@kvm0 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
# Intel Corporation 82566MM Gigabit Network Connection
DEVICE=br0
BOOTPROTO=static
IPADDR=192.168.1.240
NETMASK=255.255.255.0
TYPE=Bridge
ONBOOT=yes
[root@kvm0 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@kvm0 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82566MM Gigabit Network Connection
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:01:80:68:5D:23
ONBOOT=yes
BRIDGE=br0
[root@kvm0 ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 br0
[root@kvm0 ~]# ifconfig virbr0
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)
[root@kvm0 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000180685d23 no eth0
virbr0 8000.000000000000 yes
[root@kvm0 ~]# virsh net-autostart default --disable
ネットワーク default の自動起動設定が解除されました
[root@kvm0 ~]# virsh net-destroy default
ネットワーク default は停止されました
[root@kvm0 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000180685d23 no eth0
■親)httpdインストール
理由はこのあと仮想マシン作成するときにkickstartで自動インストールをしたいため、ks.cfgファイル参照用に。
iptablesで「-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT」を追加。
ゲストOSへのパケット転送を許可する「-A FORWARD -i br0 -j ACCEPT」も追加。
[root@kvm0 ~]# yum -y install httpd
[root@kvm0 ~]# service httpd start
httpd を起動中: [ OK ]
[root@kvm0 ~]# chkconfig httpd on
[root@kvm0 ~]# vi /etc/sysconfig/iptables
[root@kvm0 ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -i br0 -j ACCEPT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@kvm0 ~]# service iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中filter [ OK ]
iptables モジュールを取り外し中 [ OK ]
iptables ファイアウォールルールを適用中: [ OK ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns [ OK ]
■親)kickstart設定ファイルを作成
IPとホスト名と、ストレージ設定がコメントアウトされてるんでそこを有効に。あと仮想マシンのディスクデバイスは「vda」なので「sda」を「vda」に書き換える。さらに「clearpart」に「–initlabel」オプションを追加。
[root@kvm0 ~]# cp anaconda-ks.cfg /var/www/html/kvm1-ks.cfg
[root@kvm0 ~]# chmod 644 /var/www/html/kvm1-ks.cfg
[root@kvm0 ~]# vi /var/www/html/kvm1-ks.cfg
[root@kvm0 ~]# cat /var/www/html/kvm1-ks.cfg
# Kickstart file automatically generated by anaconda.
install
url --url http://ftp.riken.jp/Linux/centos/5.5/os/x86_64
lang ja_JP.UTF-8
keyboard jp106
network --device eth0 --bootproto static --ip 192.168.1.241 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 8.8.8.8,8.8.4.4 --hostname (ホスト名)
rootpw --iscrypted (ここはパスワード)
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone --utc Asia/Tokyo
bootloader --location=mbr --driveorder=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=vda --initlabel
part /boot --fstype ext3 --size=100 --ondisk=vda
part pv.6 --size=0 --grow --ondisk=vda
volgroup VolGroup00 --pesize=32768 pv.6
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=5248
%packages
@base
@core
@editors
@japanese-support
keyutils
iscsi-initiator-utils
trousers
bridge-utils
fipscheck
device-mapper-multipath
■親)仮想マシン作成!
ホストのIPは192.168.1.240。子は前述のkickstart設定ファイルの通り192.168.1.241ね。
[root@kvm0 ~]# virt-install \
--connect qemu:///system \
--name kvm1 \
--ram 1024 \
--vcpus=1 \
--file /var/lib/libvirt/images/kvm1.img \
--file-size=100 \
--nographics \
--os-type=linux \
--os-variant=virtio26 \
--accelerate \
--location='http://ftp.riken.jp/Linux/centos/5.5/os/x86_64' \
--extra-args='ks=http://192.168.1.240/kvm1-ks.cfg console=tty0 console=ttyS0,115200n8'
あとはコーヒーでもすすりながら自動インストールされるのを待つ。
最近の派手なGUIインストーラと違ってキャラクタベースのインストール進行の様子はなかなかレトロでほのぼのするね。
ActiveScaffoldのAJAXフォーム上にあるコンボボックス2つを親子連携させる
タイトルに書いたことを実現するのに、Railsだとobserve_fieldっていうのを使うと楽勝なんだけど、これがActiveScaffoldで動的ロードするFormにあるコンボボックスだと、AJAXでロードする情報のなかにJavaScriptを書くことになってしまい動かないっていう罠。
AJAXのレスポンスをinnerHTMLにぶち込んでごにょごにょとかそういう話もググれたんだけど、ActiveScaffoldだけにその辺自由度なく微妙。
そこで苦肉の策として、Helperに「連動元コンボボックスのカラム名_form_column(record, field_name)」メソッドをオーバーライドしてSELECTタグを上書きしつつ、onchangeイベントでコンボボックスの中身をJavaScriptで強制書き換えするっていう何ともいえない香ばしい方法で対処する。
ActiveScaffoldのドキュメントのそれっぽいところには「send_form_on_update_column」とかいかにもなメソッドがあるんだけど、悲しいかな 2.4以降に実装予定ということみたいだ。
いやActiveScaffold超便利なんですけどね。用意された枠内でやってる分には。
情報処理学会が将棋連盟に挑戦状 米長会長、「いい度胸」と受けて立つ
情報処理学会は、トッププロと戦えるコンピュータ将棋が完成したとし、日本将棋連盟に公開対局を望む挑戦状を手渡した。将棋連盟は「いい度胸をしていると」受けて立つ構えだ。
情報処理学会の白鳥則郎会長は4月2日、トッププロと戦えるコンピュータ将棋が完成したとし、日本将棋連盟の米長邦雄会長に公開対局を望む挑戦状を手渡した。将棋連盟は「いい度胸をしていると」受けて立つ構え。対戦は秋ごろの予定。
情報処理学会の白鳥会長は、「漸くにして名人に伍する力ありと情報処理学会が認める迄に強いコンピューター将棋を完成致しました」などと筆文字で書いた挑戦状を、将棋連盟の米長会長に手渡した。米長会長は「いい度胸をしているとその不遜な態度に感服仕った次第」など筆文字の手紙で返答。清水市代・女流王位が受けて立つという。
対局では、複数のソフトを疎結合で並列計算させ、それらの意見を集約して次の一手を決める合議アルゴリズムを使う予定。「GPS将棋」「Bonanza」「激指」「YSS」「TACOS」「柿木将棋」などから、実験をもとに最適な組み合わせを採用する。合議より単独が強ければ単独の可能性もあるという
計算機には、東京大学、京都大学、筑波大学などの並列処理大規模計算機環境のグリッドを使う方向。バックアップとして、Xeonマシンを複数並列につないだ環境も整備する予定だ。プログラムと計算機は、対戦1カ月前までに決定する。
コンピュータ側が勝利すれば、半年から1年ごとにプロ4段からトッププロ、最終的には名人か竜王と対戦する計画だ。
情報処理学会が将棋連盟に挑戦状 米長会長、「いい度胸」と受けて立つ(2010年04月02日 ITmedia News)
なかなか茶目っ気があっていいと思うな。
ISAPI_Rewrite
とあるシステムで、ISAPI_Rewriteなるものを使っている。
Ruby on Rails のアプリを開発して Mongrel で稼働させ、Windows Server (IIS6) 経由で呼び出そうというもの。
なんでこんなことをやりたいかっていうと、IISでWindows統合認証を行い、認証済みのユーザだけがアプリを使え、かつWindows認証アカウントをアプリ側でもアカウントとして利用するという構成をとったため。
最初はIIS6 上で FastCGI を使って RoR を動かそうと思ったんだけど、なんか安定してなさそうなので、IIS を Proxy にしようと。(Apache使えよとかいうつっこみはいったん流して)
IISそのものには Proxy 機能は装備されていないのだが、IIS 用のアドインとして ISAPI_Rewrite というものが Helicon Tech 社から提供されている。これはもともと Apache で言うところの mod_rewrite 相当のURL書き換え機能を提供するもの。
ISAPI_Rewrite には2種類のラインナップがあって、完全フリー版では Proxy はできないのだが、シェアウェア版(45日トライアル版あり。$99くらい)だと Proxy としても使える機能がある。
そこで今回はシェアウェア版を購入して、Proxy として使うことにした。
ダウンロード&インストールは極めて簡単なので省略。
で、Mongrel が http://localhost:3000/ で動いており、これをIIS側の http://localhost/ で受けてポート3000に流す。
設定はIISマネージャのWebサイトプロパティにISAPI_Rewrite設定タブがあるので、そこから設定エディタを開き「RewriteProxy /(.*) http\://localhost\:3000/$1 [A,I,U]」と記述。
文法は mod_proxy準拠(微妙に違うところもあるらしいが)。末尾の鍵括弧内はフラグだが、ここに「A」オプションをつけると、認証したユーザアカウント情報を httpヘッダに付加してくれる。たまにWWWで見かける Apache における方法と違うので、最初これが分からなくてあせった。
(落ち着いてドキュメントを読めばちゃんと書いてあったのだが)
あとライセンスキーの設定方法も最初分からなかったが、README を読んだら書いてあった。
インストール時に引数指定する、設定エディタに書く、の2種類があるようだ。
設定してみたが45日後にちゃんと効いているかちょっとドキドキする。
UQ WiMAX がいい感じに
こんなに便利だったなんて…試してわかったWiMAXの本当の魅力(2010年01月31日 らばQ)
UQ WiMAX のサービスエリアが拡大―47都道府県417市区町村で開局(2010年2月26日 japan.internet.com)
UQ コミュニケーションズ株式会社は2010年2月26日、同社が提供する UQ WiMAX サービスの提供エリアが拡大したことを発表した。
今回の発表では、新たに水戸市、つくば市、前橋市、高崎市、長野市、大津市、松江市、佐賀市、長崎市、熊本市、大分市、宮崎市の中心部で、利用可能場所が充実したとのこと。
現在、上記サービスエリアを含め47都道府県、417市区町村で基地局が開局し、WiMAX サービスを提供している。
基地局とアンテナの裏側も披露――”UQの中”はこうなっている(2010年02月26日
ITmedia +D モバイル)同社がUQ WiMAXのトライアルサービスを開始したのは、ちょうど1年前の2009年2月26日。その後7月1日に本格サービスをスタートさせ、10月1日に「 UQ 1 Day」と「UQ Wi-Fi」を開始。12月18日に2段階制のパケット定額サービス「UQ Step」を導入した。
UQ WiMAXの基地局はトライアルサービス開始時は500局だったが、2010年2月末に5985局、3月末までに合計で7000局になる予定で、順調に増設を進めている。2月には関東地方(水戸、つくば、前橋、高崎)、中部地方(長野)、近畿地方(大津)、中国地方(松江)、九州地方(佐賀、長崎、熊本、大分、宮崎)もエリア化され、3月には47都道府県と県庁所在地すべてをカバーする予定。
なんかいい感じになってきたWiMAX。最初はどうなることかと思ったが。少なくともEMOBILEからは乗り換えたい。
Recent Comments