Créer un serveur-miroir
Un article de Projet de documentation fug-fr .
Traduction avec l'aimable autorisation de l'auteur, d'un article intitulé Créating a Data Mirror de Dru Lavigne publié sur le site o'reilly dans la série sysadmin.
Samedi, je donnerais un cours sur l'installation, la sécurisation, et la mise à jour de FreeBSD au meetBSD 2005 à Cracovie, Pologne. L'essentiel de cet entretien consistera à expliquer comment obtenir un serveur opérationnel et correctement patché avec une installation minimale.
Comme il s'agit d'un manuel pratique, et que nous n'étions pas sûr d'un accès internet fiable dans le laboratoire, j'ai promis de "mirorer" les fichiers nécessaires à la démonstration sur mon ordinateur portable. Mon but étant de reproduire les possibilités d'Internet dans l'environnement d'une salle de classe. Par exemple, pkg_add -r devait fonctionner, ainsi que cvsup.
Je fournis ces notes, pensant qu'elles peuvent être utiles à d'autres, qui se trouvent avec des systèmes FreeBSD, derrière une connexion Internet lente ou intermittente.
Sommaire |
[modifier] Sur le système accueillant les fichiers:
J'ai d'abord expérimenté avec /usr/ports/net/cvsup-mirror, mais il a semblé disproportionné pour l'utilisation que je souhaite en faire. (Michael Lucas a écrit un how-to sur cet utilitaire, dans Big Scary Daemons .)
Mon ordinateur portable emploie déjà cvsup pour garder la collection des ports, et les mises à jour src. Je dispose donc de tous les outils requis pour créer un serveur miroir sans installer de logiciels supplémentaires.
En outre, les autres systèmes FreeBSD du laboratoire exigeront seulement les outils minimaux pour gérer les ports, mais auront surtout besoin de l'ensemble des sources afin de reconstruire le système, et compiler un noyau sur mesure. J'ai voulais être en mesure de contrôler quels fichiers les étudiants pourraient recevoir par l'intermédiaire de mon miroir.
J'ai commencé par créer un répertoire, pour stocker les deux fichiers de configuration nécessaires au serveur:
# mkdir -p /usr/meetbsd/sup/test # cd /usr/meetbsd/sup/test
# vi releases cvs list=list.cvs prefix=/usr
# vi list.cvs upgrade ports/Mk upgrade ports/Templates upgrade ports/Tools upgrade ports/Makefile upgrade src
Notez que les RELEASES devraient être appropriées, pour n'importe quel site souhaitant refléter quelque partie des fichiers contenus dans /usr.
list.cvs, doit contenir les sous-répertoires vous souhaitez rendre visibles par cvsup.
Pour rendre le miroir disponible, référez-vous simplement à votre base comme suit:
# cvsupd -b /usr/meetbsd
Préparez le client cvsup. Notez que le supfile est semblable aux exemples trouvés dans le manuel, excepté les sections que j'ai complétées. Substituez IP_address avec l'IP du système accueillant le miroir:
# pkg_add -r cvsup-without-gui # mkdir /usr/local/etc/cvsup
# vi supfile *default host=IP_address *default base=/usr/local/etc/cvsup *default prefix=/usr *default release=cvs delete use-rel-suffix
[modifier] Tester
L'on voudra également préparer les répertoires manquants:
# mkdir /usr/ports /usr/src # chmod 755 /usr/ports /usr/src
Puis, exécutez cvsup:
# rehash # cvsup -L 2 supfile
Là vous y êtes. Vous avez maintenant votre propre miroir personnalisé cvsup. Si vous désirer ajouter ou retirer des fichiers disponibles, éditez simplement votre list.cvs.
[modifier] Accueil des Paquetages
Ensuite, j'ai voulu préparer mon portable, pour accueillir les paquetages dont les étudiants auraient besoin dans la classe.
Sur le système accueillant les paquetages, créez le répertoire:
# mkdir /usr/ports/packages
Puis, rapatriez les paquetages désirés:
# cd /usr/ports/misc/cvsup-without-gui # make package-recursive
Note: Vous devrez d'abord désinstaller cette application, si elle est déjà installée sur le système sur lequel vous construisez les paquetages.
Une fois installé les paquetages nécessaires, vous voudrez configurer Anonymous FTP, puisque pkg_add se relie aux serveurs ftp. Ceci peut être facilement fait en utilisant sysinstall:
#sysinstall Configure Networking Anon FTP Yes ftp (group) /usr/ports/packages (FTP root directory) remove upload subdirectory 21 (for group ID) No (to welcome message)
Quand vous avez terminé, lancer le daemon du serveur ftp, pour l'accès anonyme en IPv4:
# /usr/libexec/ftpd -D -A -4
Note: Je n'ai pas expliqué comment créer un serveur ftp sécurisé. Cette voie concerne un usage interne du réseau local, où le ftp ne passe pas par un firewall. Si ce n'est pas votre cas, documentez vous sur la façon de sécuriser votre serveur FTP anonyme.
[modifier] Accès au dépôt de paquetages:
Sur les systèmes ou vous souhaitez installer des paquetages, changez l'environnement par défaut. De même, changez l' IP_address avec l'adresse IP du système accueillant les paquetages:
# setenv PACKAGESITE FTP://IP_Address/Latest/ # pkg_add -r cvsup-without-gui
Au lieu d'aller sur l'Internet, vos paquetages s'installeront directement à partir de votre propre serveur. Depuis leur création avec la commande make package-recursive, toutes les dépendances sont prises en compte.
Dru Lavigne enseigne les technologies Marketbridge à Ottawa, et participe à l'Open Ressource Protocole.

