|
push サーバの設定は、基本的に 2 つの作業からなります。 ひとつは rsync 接続 (通常の "pull" ミラー) の設定、 もうひとつは ssh のトリガ機構 (pull ミラーを "push" するためのもの) の設定です。
(push サーバに関する詳細はpush ミラーの説明 をご覧ください。)
rsync
2.1.1 以降をインストールします。
もし Debian を使っているサイトでしたら、単に
rsync
パッケージの最新版をインストールするだけです。
rsyncd.conf
ファイルを作り、
以下のような内容を追加します。
uid = nobody gid = nogroup max connections = 25 syslog facility = daemon socket options = SO_KEEPALIVE [debian] path = /org/ftp.debian.org/ftp comment = Debian FTP Archive (~24 GB) auth users = authorized_account1,authorized_account2,authorized_accountN read only = true secrets file = /etc/rsyncd/debian.secrets [debian-web] path = /org/www.debian.org/debian.org comment = Debian Web Site (~400 MB) auth users = authorized_account1,authorized_account2,authorized_accountN read only = true secrets file = /etc/rsyncd/debian.secrets
push する各サイトに対応するエントリを、
/etc/rsyncd/debian.secrets
ファイルに追加します。
authorized_account1:a_password authorized_account2:another_password authorized_accountN:password
これで下流のミラーに、あなたのマシンのアーカイブへの 接続を許したことになります。
rsync デーモンは inetd から起動することになるでしょう。
これにはまず、/etc/services
ファイルに
次のような rsync サービスを (まだなければ) 追加します。
rsync 873/tcpデーモンを inetd から起動させるには、次の行を
/etc/inetd.conf
ファイルに加えます。
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon(修正後に inetd に HUP シグナルを送り、 修正された設定ファイルを読み込ませるのを忘れないこと)
Debian のミラーに用いるアカウントの ssh 鍵を新しく作ります。 すでにある自分の鍵を上書きしないよう、-f オプションを用いましょう。 たとえば次のようになります。
ssh-keygen -f ~/.ssh/identity.mysite
公開鍵 (~/.ssh/identity.mysite.pub) の先頭に、 次の内容を追加してください。
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/websync &"
("websync" は適宜 "ftpsync", "ftpsync-non-US" など、 ミラーを開始するコマンドに書き換えてください)
次に、下流のミラーに接続するスクリプトを書きます。
signal
という名前のファイルを作り、
以下の内容を書き込みます。
#!/bin/sh # This script is called to signal the remote host that it is time to # mirror the archive. echo Signalling $1 ssh -o"BatchMode yes" -o"user $2" "$1" -i $HOME/.ssh/identity.mysite sleep 1
このスクリプトは先に作った専用の ssh 鍵でリモートホストにログインします。 このスクリプト自身はリモートでなんら作業を行いませんが、 鍵の設定によってリモートでは ~/websync (あるいは ~/ftpsync や ~/ftpsync-non-US) が実行されます。
実際にミラーを開始させるには、
./signal #O <site> <username>
という行を websync
スクリプトの末尾に追加します。
あるいは別のスクリプトに書いて、そのスクリプトを websync
から呼び出す形の方が便利なら、それでもかまいません。
この新しいスクリプト runmirrors
は、
次のような内容になるでしょう。
#!/bin/sh # This script is called by websync to signal the downstream mirrors. ./signal some.other.site archvsync ./signal and.another.site othersiteaccount
こうすると、あなたのサイトが上流からのミラーを終えると、 すぐさま下流への push を開始することになります。
もし問題が起こったら、 連絡してください。
私たちとコンタクトを取る際には、コンタクトページの情報をご覧ください。
最終更新: 2004 年 2 月 19 日 (木) 19:39:36 UTC
Copyright © 1997-2004
SPI; ライセンス条項をご覧下さい。
Debian は Software in the Public Interest, Inc の登録商標です。