Debian プロジェクト
お近くのサーバをお選び下さい:

Debian について ニュース Debian を入手する サポート 開発者のコーナー サイトマップ 検索

push サーバを設定する

push サーバの設定は、基本的に 2 つの作業からなります。 ひとつは rsync 接続 (通常の "pull" ミラー) の設定、 もうひとつは ssh のトリガ機構 (pull ミラーを "push" するためのもの) の設定です。

(push サーバに関する詳細はpush ミラーの説明 をご覧ください。)

rsync の設定

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 シグナルを送り、 修正された設定ファイルを読み込ませるのを忘れないこと)

ssh トリガ機構の設定

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 を開始することになります。

もし問題が起こったら、 連絡してください


Debian プロジェクトホームページに戻る。
このページは以下の言語でもご覧になれます
English 
デフォルトの言語を設定するには

私たちとコンタクトを取る際には、コンタクトページの情報をご覧ください。

最終更新: 2004 年 2 月 19 日 (木) 19:39:36 UTC
Copyright © 1997-2004 SPI; ライセンス条項をご覧下さい。
Debian は Software in the Public Interest, Inc の登録商標です。