Publié le :
In on Technolgies | afp | apple | avahi | debian | linux | mac | netatalk | timecapsule | timemachine | tuto | ubuntu | unix

Tuto: Comment créer votre serveur Time Capsule sous Debian

J'en ai parlé auparavant, j'ai maintenant un serveur Debian à la maison. En en parlant à droit et à gauche, et suite à quelques mails de lecteurs, j'ai remarqué qu'un bon nombre de personnes souhaitent créer eux aussi leur serveur de sauvegarde compatible avec Time Machine... Fred, ce tuto est pour toi!

Deux avantages à cela: le coût qui est moindre et aussi la souplesse que cela apporte (une machine Linux ou Windows pourra aussi utiliser ce serveur de sauvegarde, en utilisant Rsync par exemple)

Voici comment j'ai procédé, en partant d'une installation simple de Debian.

debian_splash

Note: Vous verrez dans tous les exemples de commande que j'utilise nano pour éditer mes fichiers, cela n'a aucune importance... C'est tout simplement que je n'ai jamais compris comment utiliser vi et qu'étant en ligne de commande exclusivement, je n'ai pas accès à gedit et les autres...

Note 2: ce tutoriel est l'adaptation française et simplifiée du travail de Matthias Kretschmann

1/ Installation de netatalk

netatalkNetatalk est l'implémentation open source du protocole AFP d'Apple. Mais pour fonctionner correctement avec Mac OS, il faut appliquer une sur couche de cryptographie, alors petit internaute, avec moi, tu vas t'amuser à créer notre propre installation de Netatalk. Pour cela, c'est relativement simple. Sur le serveur Debian, tu ouvres un terminal et tu tapes ceci:

sudo apt-get build-dep netatalk
sudo apt-get install cracklib2-dev fakeroot libssl-dev
sudo apt-get source netatalk

Puis tu entres dans le dossier créé par apt-get en tapant: cd netatalk-2*

Là, tu lances la création de ton petit paquet Debian personnel en tapant:

sudo DEB_BUILD_OPTIONS=ssl dpkg-buildpackage -rfakeroot

Plein de choses vont se passer sur l'écran, mais c'est normal. Suivant la rapidité de ta machine, cela peut prendre 2min comme 25min sur mon NSLU... ZZzzZZzz... Normalement, il va vous mettre quelques warning par ci par là, mais rien d'alarmant, ni de bloquant.
Ton paquet est enfin créé! Alors tape ceci pour l'installer!

sudo dpkg -i ~/netatalk_2*.deb

Dès que c'est terminé, tu as donc maintenant une installation de netatalk compatible avec Mac OS. Mais il va falloir le configurer netatalk maintenant!

2/ Configuration de Netatalk

netatalkNetatalk arrive avec un lot de services de partage qui peuvent avoir leur utilité, mais on va essayer de configurer l'outil pour l'utilisation que l'on veut en avoir et donc avoir des temps de réponse les plus courts possibles.

On va donc éditer notre fichier de configuration en tapant (toujours dans un terminal): nano /etc/default/netatalk

En cherchant le paragraphe, "#Set which daemons to run", on va remplacer les valeurs par défaut avec :

ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no

Fais ctrl+x et répond "y" au message d'avertissement.
Puis nous allons éditer le fichier de configuration propre à afp en tapant:
sudo nano /etc/netatalk/afpd.conf Tout en bas de ce fichier, tu vas rajouter (en faisant bien attention qu'il n'y ai pas de # devant):

--transall -uamlist uams_randnum.so,uams_dhx.so -nosavepassword -advertise_ssh

Fais ctrl+x et répond "y" au message d'avertissement. Bravo! Netatalk est maintenant configuré, il nous reste plus qu'à définir les volumes ou répertoires que nous souhaitons partager!

3/ Configuration des volumes partagés

Partage réseauJ'espère que si tu es arrivé jusque là, tu sais au moins ce que tu veux partager sur ta machine! Personnellement, il s'agit de mon disque dur USB (Western Digital MyBook) monté sur /mnt/usbdisk/

Il faut donc expliquer à netatalk de proposer sur le réseau le disque /mnt/usbdisk/. Pour cela, il faut aller éditer le fichier de définition des volumes à partager en tapant:sudo nano /etc/netatalk/AppleVolumes.default

Va tout en bas du fichier et commente la dernière ligne en rajoutant un # à son début. Elle devrait alors ressembler à ça:

#~/ "Home Directory"

Et à la ligne suivante, rajoute cela:

/mnt/usbdisk/ "TimeMachine Server" allow:pierre cnidscheme:cdb options:usedots,upriv

allow:pierre veut dire que "pierre" (qui est mon nom d'utilisateur sur le serveur) a le droit d'utiliser ce repertoire de partage. Time Machine me demandera alors mon mot de passe pour "pierre" lorsqu'il essayera de se connecter pour la première fois, mais il l'enregistrera ensuite dans mon trousseau et ne me le demandera plus. Je serais donc le seul à pouvoir accéder à cet espace. L'option usedots est capitale! Elle permet à Mac OS de pouvoir enregistrer des fichiers cachés comme sur son propre système, sinon tous vos fichiers cachés le seront plus et commenceront par :2e (interprétation AFP du point). Faites ctrl+x et répondez y au message d'avertissement. Le reste des options, tu les mets, ça ne te fera pas de mal, ça optimise la compatibilité avec les Mac OS plus vieux. Fais ctrl+x et répond "y" au message d'avertissement.

Enfin, relance netatalk pour prendre en compte tout ton travail en tapant:
sudo /etc/init.d/netatalk restart Maintenant, ton beau serveur est accessible depuis ton Mac en sélectionnant "Se connecter au serveur" dans le menu "Aller" du Finder: image-21Tape l'adresse IP de ton serveur préfixé de afp:// (moi c'est afp://192.168.0.10) et magie, on te demande ton login/mot de passe de ta session du serveur debian. (mon login est "pierre").

Et là, je t'entends grommeler derrière ton écran petit internaute : "mais c'est pourri de devoir faire Aller->Se connecter à un serveur". Oui c'est pourri, c'est tout simplement du au fait que les serveurs qui apparaissent automatiquement sur la barre de droite de ton Finder, son ceux qui ont le protocole Bonjour (d'Apple) d'installé et d'activé. Le but de la section d'après, est de faire en sorte que notre serveur apparaisse dans cette barre magique.

4/ Configuration de Avahi

AvahiJe t'entend encore grommeler petit internaute: "il nous cause de Bonjour, et ensuite il nous fait installer Avahi!". Et bien figure toi que Avahi est l'implémentation Open Source du protocole Bonjour! Donc c'est bien ça qui nous intéresse! On reprend donc notre petit terminal et on tape:

sudo apt-get install avahi-daemon
sudo apt-get install libnss-mdns

Quand apt-get a terminé son petit bazard, tape:
sudo nano /etc/nsswitch.conf Le fichier de configuration s'ouvre et cherche la ligne:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 Rajoute mdns à la fin, ce qui devrait donner:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns Fais ctrl+x et répond "y" au message d'avertissement.
T'inquiètes, on touche à la fin! Encore un peu et on y sera!

5/ Publication des services Avahi

Avahi

Maintenant qu'Avahi est sur le serveur, il faut qu'on lui explique quel protocole prendre en charge et diffuser. Comme on a déjà tout configuré AFP, on va juste lui dire de publier le service AFP!

Donc de retour sur ton terminal favori, tape:
sudo nano /etc/avahi/services/afpd.service

Le fichier qui s'ouvre est vide, c'est normal... Pour une fois! Et là tu copies colles, TOUT le paragraphe qui est en dessous!

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>

En gros, on lui explique via ce fichier (ouiiiii, tu as remarqué que c'était du XML!?), que l'on veut publier AFP via TCP, le port, etc.
Note juste, petit internaute, qu'en changeant la valeur de model=Xserve, cela impactera juste le picto que prendra ton serveur dans la barre de droite. Voilà les valeurs que tu peux lui attribuer et donc l'image qu'il prendra:

Xserve, PowerBook, PowerMac, Macmini, iMac, MacBook, MacBookPro, MacBookAir, MacPro, AppleTV1,1, AirPort

L'image de Xserve est celle là -> image-5

C'est quand même bien fait non? Bon aller, fais ctrl+x et répond "y" au message d'avertissement.
Puis redémarre le service Avahi en tapant:
sudo /etc/init.d/avahi-daemon restart Et là! Le hasard comme par hasard monsieur l'internaute?! Regarde la barre de Finder de ton mac, l'icône tant espérée apparaît! La preuve chez moi! ;-)

[Preuve que ça marche!

Pour résumer, on a maintenant un beau serveur de partage de fichier qui me permet de bénéficier de l'espace de stockage de mon serveur par le réseau... Le serveur de sauvegarde Time Capsule n'est qu'à un pas!

6/ Configuration de Time Machine

Là on revient sur le Mac!
Disque TimeMachineUne fois connecté sur le serveur, fait un glisser déposer de ton dossier de partage (qui s'appelle "Time Machine Server" chez moi) vers la barre de gauche du Finder, à côté du disque de ton Mac. Ton dossier de partage est donc maintenant accessible comme un vulgaire volume local...

Ouvre TimeMachine, essaye de choisir un disque... Et là, malheur! Tu ne vois pas ton répertoire pourtant monté comme Volume! La faute à qui? Apple a simplement désactivé l'accès à TimeMachine pour les serveurs de fichiers du réseau non reconnus.

Comme maintenant, tu gères trop le Terminal, tu peux en lancer un sur ton Mac (Applications/Utilitaires/Terminal.app) et tape cette commande:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 Donc maintenant TimeMachine est capable de voir les volumes réseau même s'ils ne sont pas siglés Apple!

Refait ta manipulation de plus haut et là (normalement) ça va marcher!

Forcément, pour certains malchanceux (comme moi), TimeMachine nous répond tristement qu'il n'a pas pu créer l'image disque sur le volume réseau... Une astuce existe pour palier à ce problème qui n'a lieu qu'à la création d'une sauvegarde. Ensuite TimeMachine fonctionne absolument normalement.

Lance l'utilitaire de disque (Applications/Utilitaires/Utilitaire de disque.app) et appuie sur le bouton "Nouvelle image" dans la barre du haut. Dans la case du nom de l'image rentre précisement ce qui suit:
MAC-PDELACEL_00224125d496.sparsebundle Sachant que MAC-PDELACEL est le nom réseau de ma machine (visible dans les Préférences Système->Partage) suivi d'un underscore "_" suivi de l'adresse MAC de ma carte Ethernet (visible dans Préférences Système->Réseau->Ethernet->Avancé->Ethernet, c'est la suite de chiffre en face de "ID Ethernet") puis de l'extension sparsebundle.

Pour le nom de volume, mets ce que tu veux, pour la taille, essaye de dimensionner ça en fonction de la place qu'il y aura sur ton disque. Les autres paramètres laisse ceux par défaut, change juste le dernier "Format d'image" pour sélectionner Image Disque SparseBundle.

Donc en résumant, l'écran qui est en face de toi doit ressembler à ça:

Création du sparsebundle

Enregistre cette image sur ton bureau. L'Utilitaire de disque va mettre quelques secondes à créer l'image et quand c'est fini copie colle là dans ton dossier réseau. (pour moi TimeMachine Server)

Copie SparseBundle

Une fois qu'elle est copiée, recommence la configuration de TimeMachine et la première sauvegarde devrait se déclencher... Cela prend son temps au travers du réseau, même local... Personnellement, il m'a fallu 18h pour sauvegarder 75Go. Maintenant, les sauvegardes ne se font que sur le différentiel de données, et c'est donc beaucoup plus rapide!

7/ Consulsion

Voilà petit internaute, nous voici rendu au terme de notre grande aventure! J'espère que tout fonctionne comme prévu de ton côté!

N'hésite pas à déposer un commentaire si ça t'a aidé, mis dans mouise, ou encore si tu as un soucis sur la mise en place de ces services!

Allez salut!


comments powered by Disqus