Konfiguracja serwera push

Konfigurowanie serwera w metodzie push składa się z dwóch podstawowych kroków: skonfigurowania dostępu przez rsync (jak dla normalnego tworzenia serwera lustrzanego, typu pull) oraz skonfigurowania mechanizmu spustowego ssh (aby umożliwić inicjowanie tworzenia serwera lustrzanego metodą push).

(Aby uzyskać więcej informacji na temat serwerów push przeczytaj wyjaśnienie tworzenia serwerów lustrzanych metodą push.)

Konfiguracja rsync

Zainstaluj rsync 2.1.1 lub nowszy. Jeśli Twój serwer używa systemu Debian, po prostu zainstaluj najnowszą wersję pakietu rsync.

Utwórz plik rsyncd.conf i wpisz do niego taką (lub zbliżoną) zawartość:

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

Dodaj wpis dla każdego serwera, z którym się łączysz metodą push w pliku /etc/rsyncd/debian.secrets:

authorized_account1:a_password
authorized_account2:another_password
authorized_accountN:password

W ten sposób dałeś serwerom podrzędnym dostęp do swojego komputera.

Prawdopodobnie będziesz chciał uruchamiać demona rsync z inetd. Aby to osiągnąć, musisz dodać usługę rsync do pliku /etc/services (jeśli jeszcze jej tam nie ma) w następujący sposób:

rsync           873/tcp

Aby uaktywnić demona przez inetd, dodaj następujący wpis do pliku /etc/inetd.conf:

rsync      stream      tcp         nowait      root /usr/bin/rsync rsyncd --daemon

(Pamiętaj, aby wysłać sygnał HUP do inetd, aby poinformować go, żeby odczytał ponownie swój plik konfiguracyjny po jego modyfikacji.)

Konfiguracja mechanizmu spustowego ssh

Utwórz nowy klucz ssh dla konta, którego używasz do tworzenia obrazu lustrzanego Debiana. Upewnij się, że nie nadpiszesz swojego poprzedniego klucza ssh poprzez dodanie opcji -f, na przykład:

ssh-keygen -f ~/.ssh/identity.mysite

Upewnij się, że nowy klucz publiczny (~/.ssh/identity.mysite.pub) zawiera na początku następujący wpis, gdzie IPADDRESS to IP nadrzędnego serwera:

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

Musisz utworzyć skrypt, który będzie się kontaktował z serwerami podrzędnymi. Plik tarball ftpsync zawiera skrypt runmirrors, który wykonuje wszystkie zadania. Wystarczy dodać do pliku ftpsync.conf ustawienie HUB=true, skopiować runmirrors.conf.sample do runmirrors.conf, runmirrors.mirror.sample do runmirrors.mirror oraz skonfigurować plik konfiguracyjny odpowiednio do swojego systemu. Następnie w pliku runmirrors.mirror należy wypisać wszystkie swoje serwery podrzędne a skrypt ftpsync/runmirror odwali za ciebie ciężką robotę.

W wyniku tych działań system spróbuje zalogować się poprzez ssh do serwerów podrzędnych, po tym jak sam zostanie zaktualizowany, aby rozpocząć ich aktualizację. To wymaga abyś przekazał właścicielom serwerów podrzędnych klucz ssh, który wskazałeś dla runmirrors, aby dodali go do swoich ~/.ssh/authorized_keys jak opisano powyżej.

Jeśli będziesz miał z tym jakiekolwiek problemy, skontaktuj się z nami.