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. Si votre site tourne sous Debian, installez simplement le paquet rsync.

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

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

[debian]
  path = /srv/debian/mirror
  comment = L'archive Debian (https://www.debian.org/mirror/size)
  auth users = *
  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 :

site1.example.com:un_mot_de_passe
site2.example.com:autre_mot_de_passe
site3.example.com:mot_de_passe

Vous avez alors donné accès à l'archive se trouvant sur votre machine aux miroirs clients de votre machine. Si vous voulez donner un accès rsync à tout le monde, omettez les réglages auth users et secrets file dans rsyncd.conf. Vous n’avez nul besoin de fichier secrets.

Vous voudrez probablement lancer le démon rsync depuis inetd. Pour autoriser le démon, ajoutez ce qui suit au 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 en utilisant ssh-keygen. Si votre compte possède déjà une clef pour d’autres buts, vous pouvez désirer en créer une nouvelle et la stocker dans un fichier différent en utilisant ssh-keygen -f ~/.ssh/identité.monsite

Vos miroirs aval auront alors besoin d’ajouter

command="~/bin/ftpsync",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <contenu de votre fichier ~/.ssh/<clef>.pub>

à leur fichier ~/.ssh/authorized_keys.

Vous devez configurer votre processus de recopie pour contacter les miroirs clients lorsque celui-ci est terminé. La suite ftpsync contient le script runmirrors qui s'occupe de toutes les tâches nécessaires à 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.