Ftpsync

De Wiki doc

Révision datée du 20 décembre 2020 à 17:21 par Ycharbi (discussion | contributions) (Page créée avec « Category:miroir_apt La réalisation d'un miroir de dépôts pour le gestionnaire de paquet APT peut se faire de différentes manières. Personnellem... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)


La réalisation d'un miroir de dépôts pour le gestionnaire de paquet APT peut se faire de différentes manières. Personnellement, j'ai beaucoup utilisé APT-mirror qui permet de ne récupérer qu'une partie d'un dépôt distant. Seulement cette solution souffre de trop nombreux problèmes liés à une synchronisation erratique causant régulièrement des erreurs sur les clients. Afin de bénéficier d'une solution stable, il est plus sûr de passer à la méthode préconisée (et utilisée) par le projet Debian : ftpsync.

Cette outil permet de cloner un dépôt via l'utilitaire Rsync, ce qui est beaucoup plus sérieux que les requêtes GET HTTP d'APT-mirror. Il faut cependant prendre en compte que ftpsync ne permet pas de sélectionner une partie des branches d'un dépôt. Sa granularité s’arrête aux architectures processeur. Ainsi, il est seulement possible de ne choisir de copier que certaines architectures et non de prendre uniquement la branche stable par exemple. Si vous désirez bénéficier d'une synchronisation Rsync tout en profitant d'une granularité au niveau des branches, il faudra vous tourner vers debmirror (recommandé par Debian si vous ne voulez pas faire un clone de leur dépôt).

En outre, l'espace disque nécessaire à un miroir réalisé avec cet outil est à prendre en compte. À titre d'exemple, un test effectué le 20 décembre 2020 avec les dépôts debian et debian-security en amd64 a occupé 358Go de données (qu'il faudra presque doublé si vous y ajoutez l'i386). Vous pouvez vous faire une idée en avance de phase de la taille requise via le tableau mis à jour régulièrement par le projet Debian tout en gardant en tête que vous n'avez généralement besoin que des dépôts cités précédemment et non de la totalité du miroir (les besoins réelles en seront donc amoindris).

Installation et préparation

Installation des dépendances

apt install --no-install-recommends rsync apache2

Création d'un utilisateur dédié à la synchronisation

useradd --system --home-dir /opt/ftpsync/ --user-group ftpsync

Téléchargement du script ftpsync

wget -qO- https://ftp-master.debian.org/ftpsync.tar.gz | tar xzvf - -C /opt --transform 's/^distrib/ftpsync/' && chown -R ftpsync:ftpsync /opt/ftpsync

INFORMATION

ftpsync est présent dans les dépôts Debian mais impose des dépendances inutiles alors qu'il ne s'agit que d'un script Bash... Le télécharger depuis le site officiel permet de garder un système minimaliste. Cela nous permet d'effectuer un tar stylé par la même.

Création des répertoires d'accueil

mkdir -p /var/www/dépôts/{debian,debian-security} /var/log/ftpsync/
chown -R ftpsync:ftpsync /var/www/dépôts/{debian,debian-security} /var/log/ftpsync/

Fichiers de configuration

L'outil a besoin d'un fichier de configuration par dépôt à synchroniser. Nous en créerons donc deux : un pour le dépôt debian, l'autre pour debian-security, le tout en amd64.

cat << '_EOF_' > /opt/ftpsync/etc/ftpsync-debian.conf
# Répertoire de destination
TO="/var/www/dépôts/debian/"

# Adresse du dépôt distant
RSYNC_HOST=ftp.fr.debian.org

# Répertoire distant du dépôt
RSYNC_PATH="debian"

# Architecture à synchroniser
ARCH_INCLUDE=amd64

# Emplacement des journaux
LOGDIR=/var/log/ftpsync/
_EOF_