注意: 原文はこの翻訳よりも新しくなっています。
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 socket options = SO_KEEPALIVE [debian] path = /srv/debian/mirror comment = The Debian Archive (~250 GB) 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) の先頭に、 IPADDRESS をあなたの上流ミラーに置き換えて、次の内容を追加してください。
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/bin/ftpsync",from="IPADDRESS"
次に、下流のミラーに接続するスクリプトを書きます。
ftpsync の tarball に含まれる runmirrors
スクリプトが必要な作業を全て処理します。ftpsync.conf を
HUB=true
の設定を含めるように簡単に変更し、
runmirrors.conf.sample
を runmirrors.conf
に、runmirrors.mirror.sample
を runmirrors.mirror
にコピーして設定ファイルをあなたのシステムに合うように設定します。
それから下流ミラーの一覧を runmirrors.mirror 中に書けば ftpsync/runmirror
が後は全てやってくれます。
これが何をするのかというと、 自分のミラー更新が終わったらシステムは下流ミラーに ssh 接続を試み、 それによって下流は更新を開始できます。これは上で説明したように、 下流ミラー管理者に runmirrors で使う ssh 鍵を通知し、 下流側でそれを ~/.ssh/authorized_keys に追加していることを前提としています。
もし問題が起こったら、 連絡してください。