Mettre en place un serveur de repoussage

Mettre en place un serveur de repoussage se résume à effectuer deux tâches relativement simples : mettre en place un accès rsync (comme pour faire un miroir par aspiration standard) et mettre en place un mécanisme déclencheur utilisant SSH (pour déclencher la mise à jour du miroir par repoussage).

Pour plus d'information sur ce qu'est un serveur de repoussage, merci de lire l'explication des miroirs par repoussage.

Mettre en place rsync

Installez rsync 2.1.1 ou une version supérieure. Si votre site tourne sous Debian, installez simplement le dernier paquet rsync.

Créez un fichier rsyncd.conf et mettez quelque chose comme ceci dans celui-ci :

uid = nobody
gid = nogroup
max connections = 25
socket options = SO_KEEPALIVE

[debian]
  path = /srv/debian/mirror
  comment = L'archive Debian (~250 Go)
  auth users = compte_autorisé1,compte_autorisé2,compte_autoriséN
  read only = true
  secrets file = /etc/rsyncd/debian.secrets

Pour chaque site dont vous faites un miroir par repoussage, ajoutez une entrée au fichier /etc/rsyncd/debian.secrets :

compte_autorisé1:un_mot_de_passe
compte_autorisé2:autre_mot_de_passe
compte_autoriséN:_mot_de_passe

Vous avez alors donné accès à l'archive se trouvant sur votre machine aux miroirs clients de votre machine.

Vous voudrez probablement lancer le démon rsync depuis inetd. Pour cela, vous devez d'abord ajouter le service rsync dans le fichier /etc/services (s'il n'y est pas déjà), comme ceci :

rsync           873/tcp

Pour lancer le démon avec inetd, ajoutez ce qui suit à votre fichier /etc/inetd.conf :

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

N'oubliez pas d'envoyer à inetd un signal HUP pour lui dire de relire son fichier de configuration après que vous l'avez modifié.

Mettre en place un mécanisme déclencheur ssh

Créez une nouvelle clé SSH pour le compte que vous utilisez pour faire un miroir de Debian. Faites attention à ne pas écraser votre clé SSH originale et pour cela utilisez l'option -f, par exemple :

ssh-keygen -f ~/.ssh/identite.monsite

Vérifiez que la nouvelle clé publique (~/.ssh/identite.monsite.pub) contient ceci au début du fichier, avec ADRESSEIP l'IP de votre miroir amont :

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

Vous devez aussi mettre en place le script qui contactera les miroirs clients. L'archive de ftpsync contient le script runmirrors qui s'occupe de toute les tâches ingrates à votre place. Modifiez simplement ftpsync.conf pour intégrer le réglage HUB=true, copiez runmirrors.conf.sample vers runmirrors.conf et runmirrors.mirror.sample vers runmirrors.mirror, et adaptez le fichier de configuration au système. Ajoutez alors la liste de tous les miroirs clients dans runmirrors.mirror, ainsi ftpsync et runmirror se chargeront de tout à votre place.

Par conséquent, une fois le miroir mis à jour, le système essayera de se connecter par SSH aux miroirs clients, pour qu'ils puissent commencer à se mettre à jour. Cela suppose que vous avez donné aux responsables des miroirs clients la clef SSH configurée pour runmirrors et qu'ils l'ont ajoutée à leur propre ~/.ssh/authorized_keys comme décrit précédemment.

Si vous avez le moindre problème avec ce qui précède, contactez-nous.