aboutsummaryrefslogtreecommitdiffstats
path: root/japanese/mirror/push_server.wml
blob: 94451eda67bbb4fc862f4f5a107e75bec66b198e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#use wml::debian::template title="push サーバを設定する"
#use wml::debian::translation-check translation="be191e77facf8c0d489cfd320232517e5233a3e2"
#use wml::debian::toc

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

<p><small>
(push サーバに関する詳細は <a href="push_mirroring">push ミラーの説明</a>
をご覧ください。)</small>
</p>

<toc-display />

<toc-add-entry name="rsync">rsync の設定</toc-add-entry>

<p><code>rsync</code> 2.1.1 以降をインストールします。
もし Debian を使っているサイトでしたら、単に
<a href="https://packages.debian.org/stable/net/rsync">rsync</a>
パッケージの最新版をインストールするだけです。
</p>

<p><code>rsyncd.conf</code> ファイルを作り、
以下のような内容を追加します。
</p>

<pre>
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
</pre>

<p>push する各サイトに対応するエントリを、
<code>/etc/rsyncd/debian.secrets</code> ファイルに追加します。
</p>

<pre>
authorized_account1:a_password
authorized_account2:another_password
authorized_accountN:password
</pre>

<p>これで下流のミラーに、あなたのマシンのアーカイブへの
接続を許したことになります。
</p>

<p>rsync デーモンは inetd から起動することになるでしょう。
これにはまず、<code>/etc/services</code> ファイルに
次のような rsync サービスを (まだなければ) 追加します。
</p>

<pre>
rsync           873/tcp
</pre>

<p>
デーモンを inetd から起動させるには、次の行を
<code>/etc/inetd.conf</code> ファイルに加えます。
</p>

<pre>
rsync      stream      tcp         nowait      root /usr/bin/rsync rsyncd --daemon
</pre>

<p>
(修正後に inetd に HUP シグナルを送り、
修正された設定ファイルを読み込ませるのを忘れないこと)
</p>

<toc-add-entry name="sshtrigger">ssh トリガ機構の設定</toc-add-entry>

<p>Debian のミラーに用いるアカウントの ssh 鍵を新しく作ります。
すでにある自分の鍵を上書きしないよう、-f オプションを用いましょう。
たとえば次のようになります。
</p>

<pre>
ssh-keygen -f ~/.ssh/identity.mysite
</pre>

<p>公開鍵 (~/.ssh/identity.mysite.pub) の先頭に、
IPADDRESS をあなたの上流ミラーに置き換えて、次の内容を追加してください。
</p>

<pre>
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/bin/ftpsync",from="IPADDRESS"
</pre>

<p>次に、下流のミラーに接続するスクリプトを書きます。
ftpsync の tarball に含まれる <code>runmirrors</code>
スクリプトが必要な作業を全て処理します。ftpsync.conf を
<code>HUB=true</code> の設定を含めるように簡単に変更し、
<code>runmirrors.conf.sample</code><code>runmirrors.conf</code>
に、<code>runmirrors.mirror.sample</code><code>runmirrors.mirror</code>
にコピーして設定ファイルをあなたのシステムに合うように設定します。
それから下流ミラーの一覧を runmirrors.mirror 中に書けば ftpsync/runmirror
が後は全てやってくれます。
</p>

<p>これが何をするのかというと、
自分のミラー更新が終わったらシステムは下流ミラーに ssh 接続を試み、
それによって下流は更新を開始できます。これは上で説明したように、
下流ミラー管理者に runmirrors で使う ssh 鍵を通知し、
下流側でそれを ~/.ssh/authorized_keys に追加していることを前提としています。
</p>

<p>もし問題が起こったら、
<a href="mailto:mirrors@debian.org">連絡してください</a></p>

© 2014-2024 Faster IT GmbH | imprint | privacy policy