2009年02月28日

さくらレンタルサーバでDebianを使う (環境構築編)

livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

さくらレンタルサーバでDebianを使うの続き

chroot環境構築時の方針は下記のものとする

  • host環境は可能な限り手をつけない
  • デーモンプロセスはdaemontoolsで管理する物とする
  • host環境用sshとguest環境用sshをそれぞれ用意する

作業内容

作業対象を明確化するため、プロンプトで示す

プロンプト内用
debianDebianがインストールされている別サーバ
hostchroot呼び出し元
guestchroot環境下

chroot環境構築下準備
debian環境にてchrootツリーを作っておく

debian$ mkdir sid
debian$ sudo /usr/sbin/debootstrap sid sid
debian$ sudo tar zcvpf sid.tar.gz sid
debian$ scp sid.tar.gz admin@192.0.2.205:~/

host環境にてchroot用ディレクトリ作成

host$ su
host# cd /home
host# mkdir -p chroot/debian
host# cd chroot/debian

debianツリーを伸長

host# tar zxvpf sid.tar.gz

子環境用に必要な物をマウント

host# mount -t proc proc /home/chroot/debian/sid/proc
host# mount -t devpts devpts /home/chroot/debian/sid/dev/pts
host# mount -o bind /dev /home/chroot/debian/sid/dev
host# mount -o bind / /home/chroot/debian/sid/mnt

リゾルバ設定

host# cp -pi /etc/resolv.conf sid/etc/.

パッケージを更新

guest# export PATH=/bin:/usr/bin:/sbin:/usr/sbin
guest# apt-get update
guest# apt-get dist-upgrade

daemontools起動設定

guest# apt-get install daemontools
guest# exit
host# vi /etc/inittab
SV:123456:respawn:/usr/sbin/chroot /home/chroot/debian/sid /usr/bin/svscanboot
host# /sbin/telinit q

親環境のhttpdを停止

host# /sbin/chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
host# /sbin/chkconfig --del httpd
host# /sbin/chkconfig --list httpd
service httpd supports chkconfig, but is not referenc

OpenSSH設定

guest# apt-get install openssh-server
guest# apt-get install ucspi-tcp
guest# cd /etc/service
guest# ./addsv.sh ssh
guest# cd .ssh; pwd
guest# vi run

※addsv.shはdaemontoolsの/service/に、サービスを追加するスクリプト「addsv.sh」 を参照。

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
export PATH

exec 2>&1
sleep 3

exec envdir ./env sh -c '
  /usr/bin/tcpserver -HRDl0 -x ./tcp.ssh.cdb \
  -u 0 -g 0 0 ${PORT:-2022} /usr/sbin/sshd -i -e
'
guest# mkdir env
guest# echo 2022 > env/PORT
guest# echo :allow > tcp.ssh
guest# tcprule ./tcp.ssh.cdb ./tcp.ssh.tmp < ./tcp.ssh
guest# cd ../; pwd
guest# mv -i .ssh ssh

これ以降の作業は2022番ポートを指定してssh接続。
必要に応じてパッケージをインストールして行く。


まとめ

  • hostのinittabにてguestのsvscanを実行するのがポイント
  • chrootのツリーを他サーバへ持っていけば簡単に論理移転可能と言うメリットがある


半袖 at 17:15│Comments(0)TrackBack(0)サーバ管理 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔