ここを参照しクローンを作る。 次にこのサーバーにマウントする領域を設定していくが、このWEBサーバーの構成は vda: ここにさらに領域が作られ、ルートが出来ている。 vdb: SWAP領域 vdc: /Downloadにマウントされる、他のサーバーと共有している。ここまではクローンで出来ている vdd: /webdataにマウント、ここにWEBコンテンツ、mysqlのデーターなどが保存される。 vde: /homeにマウント、メールデーター(IMAP)の保存場所でもある 元のサーバーとIPなどがダブっているが、参照先にその変更方法もあるので済まして置く。 次にサーバーを起動し、/etc/fstab を設定、下記を最後に追記
/dev/vdd /webdata ext4 defaults 0 0
/dev/vde /home ext4 defaults 0 0
新しいdirectoryの作成とアトリビュートの設定 # mkdir /webdata # chmod 777 /webdata そして設定の反映 # mount -a 次は本来ならapacheの設定だが、私はサーバーのマイグレーションをやろうとしているので、データーのコピーが必要。 色々考えたがrsyncを使うことにした。今はテストの段階だが、いずれデーターが必要なのでrsyncで同期をして置くことにした。 完全にテストが終わり、マイグレーションを実施する直前に再度 rsysnc で同期を取る。 rsyncの使い方はここに詳しく解説がある rsyncデーモンをコピー元で動かすか、コピー先で動かすか迷ったが、コピー先つまりこのサーバーで動かすことにした。 CentOSではrsyncのデーモン動作はxinetd経由で動かすのだが、インストール済みである。また/etc/xinetd.d/rsync もxinetdのインストール時に出来ている。service rsync
{
disable = no ← noに変更
# flags = IPv6 ← ここはよく分からない
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
flags=IPv6の設定の意味がよく分からない。これを行うとIPv4とIPv6の両方アクセプトするのか(多分この意味と思うが)、IPv6だけで通信を行うのか不明なのでコメントアウトしておいた。 次にrsyncの設定ファイルを作る # gedit /etc/rsyncd.conf# Global options
uid = root
gid = wheel
use chroot = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.xx.xx/24
hosts deny = *
dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png
# Module options
[webdata]
comment = rsync server
path = /webdata
auth users = root
secrets file = /etc/rsyncd.secrets
read only = no
[home]
comment = rsync server
path = /home
auth users = root
secrets file = /etc/rsyncd.secrets
read only = no
hosts allow = で接続出来るホストをローカルネットワークに限定している。(xx.xx は環境に合わせる) パスワードファイルの設定 /etc/rsyncd.secrets
ユーザー名:パスワードのように設定。 私はrsyncd.confに別のユーザーを指定したが出来なかった。rootにすると出来るようになった。又、このパスワードはOSのパスワードとは関係ない、勝手に決めてよい。 xinetdを再起動すればRQが来た時、動作する # service xinetd restart xinetdの再起動までやったが、ここはdaemonモードでやりたいので、rsyncをデーモンでスタートする # rsync --daemon ちなみに停止はPIDを調べてkillする # ps auxww | grep 'rsync --daemon'root 2183 0.0 0.0 107624 536 ? Ss 12:52 0:00 rsync --daemon
root 2328 0.0 0.0 107464 892 pts/0 S+ 13:03 0:00 grep rsync --daemon
# kill 2183 *************** ここからはコピー元のサーバーの設定。 パスワードファイルを作る。これはなくてもパスワードを聞いてくるのですが、スクリプトを組、cronで定期的に実行するにはパスワードを聞いて来ては困るので、それに備え作っておく。 # gedit /etc/rsync.passwd
とパスワードだけを書いておくそうな。 rsyncのデーモン動作の解説WEBには複数のユーザー設定もあるが、ユーザー名の指定が無いがどう動作するのかなー? 早速コピーをするが、万が一コピー元とコピー先を間違えると全部消えるので、まずはドライラン(実際にコピーはせずテストのみする) rsyncの書式は rsync オプション コピー元 コピー先なので # rsync -avn --password-file=/etc/rsync.passwd /webdata/ rsync;//192.168.xx.xx/webdata ← xoopsが悪さをするので : を ; に変えてある もし、ユーザー認証で跳ねられる時は、rsync.passwd とrsyncがデーモンで動いているホストの rsyncd.secrets のパーミッションが600になっているか確認。 大丈夫そうなので # rsync -av --password-file=/etc/rsync.passwd /webdata/ rsync;//192.168.xx.xx/webdata ← xoopsが悪さをするので : を ; に変えてある もちろんIPは今制作中のホスト。 最初はrsyncd.confの auth users = root と secrets file = /etc/rsyncd.secrets をコメントアウトし、テストした方が問題が切り分けやすい。 もちろん --password-file=/etc/rsync.passwd は付けない 同様に/homeもコピーするがその前に元のWEBサーバーに登録してあるユーザーをこのサーバーにも登録しておく。ただしUIDを同じにしないといけない。 書式:useradd オプション 登録するユーザー名 私はこのWEBサーバーにFTPで接続を許すユーザーがおり、homeディレクトリーが違う。そのようなユーザーには # useradd -u 元のWEBと同じUID -d 指定するディレクトリー ユーザー名 新規ユーザー作成ではGIDも指定したUIDと同じだが、usermodでUIDを変更したら、group IDも変更しておく # groupmod -g 元のWEBと同じGID グループ名 次に作ったユーザーのパスワードを設定 書式:passwd ユーザー名 で2回同じパスワードを入れ設定する。 必要であれば所有者の変更(UIDが違う場合) 書式:chown -R ユーザー名:グループ名 設定するdirectoryのフルパス その後rsyncで/homeをコピーする **************** その後、制作中のホストに戻っておく。
|