Le contexte...
Quel bon geek n'a jamais eu envie d'avoir son petit serveur pour partager musique, vidéos, photos et permettant de gérer ses sauvegardes Time Machine ou autres divers back-up ? C'est ce que j'ai voulu mettre en oeuvre sans passer par des solutions de Nas tous prets mais en me tournant vers une config home made low profile. J'ai donc monté une carte mère mini-itx équipée d'un atom et de 1Go de ram.
Pour des raisons de puissance et de compatibilité il n'était pas prévu de faire tourner OSX server mais Freenas, une solution gratuite et efficace pour se faire un Nas utilisant freeBSD, et offrant en plus plusieurs services et outils permettant une intégration parfaite à un réseau de machines sous OSX (partage AFP, découverte de réseau par Bonjour, Serveur Time Machine, Serveur iTunes). Malheureusement Freenas n'a pas été à la hauteur de mes attentes, surtout concernant le Power-Management. Après quelques recherches j'ai découvert qu'il était possible d'activer les mêmes fonctions sur une installation Linux ; j'ai choisi Xubuntu 10.10 plus précisément.

Il s'agit d'un tutoriel de configuration de Ubuntu/Xubuntu 10.10, il marche peut être sur des versions antérieurs ou d'autres distributions à base de Debian... ou peut être pas
Pour suivre ce tutoriel, ll est donc nécessaire d'avoir une machine sous Ubuntu ou Xubuntu 10.10 à jour, et savoir utiliser un minimum l'editeur nano intégré au shell.
L'article comprend 5 parties :
1. Installer et configurer Netatalk
2. Installer et configurer Avahi
3. Installer et configurer le partage d'écran
4. Configurer Time Machine
5. Configurer le serveur iTunes
1. Installer et configurer Netatalk

PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no
Ensuite il faut editer un autre fichier :
sudo nano /etc/netatalk/AppleVolumes.default
trouver la ligne
# By default all users have access to their home directories.
~/ "Home Directory"
et ajouter en dessous :
emplacement/du/répertoire/partagé "NomduVolume" allow:@groupname options:usedots,upriv
ce qui donne par exemple chez moi, pour le répertoire où seront stockées mes sauvegardes Time Machine:
/home/jimmy/Time_Machine "Time Capsule" allow:@jimmy options:usedots,upriv,tm
Attention de ne pas mettre d'espace dans le nom des répertoires, ce n'est pas un problème pour le "NomduVolume" qui sera annoncé sur le réseau. Pour partager plusieurs répertoires ajouter autant de lignes que nécessaire. @groupname correspond au groupe d'utilisateur (Ubuntu) que vous voulez autoriser à accéder au partage.
Une fois la configuration terminée, redémarrer le service avec la commande :
sudo /etc/init.d/netatalk restart
Pour vérifier que le service est fonctionnel, se rendre dans le menu du finder de la machine sous OSX qui utilisera le partage: Menu Aller > Se connecter au serveur > afp://IP.du.serveur
Comme ceci:

Vous remarquez que le serveur n'est pas encore visible dans le volet du finder, c'est parce que le service Bonjour n'est pas encore géré. C'est le service utilisé par Apple pour la mise en réseau local automatique des machines ; Bonjour est une implémentation à la sauce Apple des protocoles Zeroconf. Fort heureusement il existe une implémentation libre et utilisable sous debian de ces protocoles, il s'agit de la bibliothèque logicielle Avahi.
2. Installer et configurer Avahi

Voici la commande d'installation :
sudo apt-get install avahi-daemon libnss-mdns
Ensuite il faut éditer le fichier /etc/nsswitch.conf :
sudo nano /etc/nsswitch.conf
et ajouter “mdns” à la fin de la ligne de la ligne comme ceci :
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
Pour que Avahi annonce le service AFP il faut créer le fichier /etc/avahi/services/afpd.service avec la commande
sudo nano /etc/avahi/services/afpd.service
Ajouter ces lignes et sauvegarder :
<?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>
Petit truc cosmétique, il est possible de changer le type d'appareil annoncé en remplaçant Xserve par Macmini, iMac, MacPro, Xserve, MacBook, MacBookPro ou MacBookAir ce qui changera l'icone visible dans le finder
Redémarrer le service avec la commande :
sudo /etc/init.d/avahi-daemon restart
Maintenant le serveur est annoncé par le protocole Zeronconf/Bonjour, il est ainsi visible dans le finder et les répertoires partagés peuvent être montés par simple click

3. Installer et configurer le partage d'écran

Le but de cette manipulation est de pouvoir lancer un partage d'écran/VNC avec le client natif de mac OSX à partir du bouton "partage d'écran" dans le finder sous l'icone du serveur AFP que nous venons de configurer. Il ne sera donc pas nécessaire d'installer de logiciel tiers sous osx.
Normalement le serveur VNC VINO est préinstallé sur ubuntu/xubuntu 10.10, mais je nai pas réussi à l'utiliser pour se connecter avec un client osx, c'est pourquoi j'utilise TighVNCserver qui marche parfaitement. Pour l'installer taper :
Créons ensuite le fichier ~/.vnc/xstartup avec la commande :
sudo nano ~/.vnc/xstartup
Ajouter ce lignes dans le fichier et enregistrer :
#!/bin/sh
unset SESSION_MANAGER
sh /etc/X11/xinit/xinitrcAprés avoir enregister taper :
chmod a+x .vnc/xstartup
Il faut aussi que Avahi annonce le service VNC à la machine cliente sous OSX via Bonjour/Zeroconf, pour cela il faut créer le fichier /etc/avahi/services/rfb.service avec la commande :
sudo nano /etc/avahi/services/rfb.service
le remplir avec ces lignes et sauvegarder :
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_rfb._tcp</type>
<port>5901</port>
</service>
</service-group>
Ensuite taper cette commande :
vncserver :1 -depth 16 -geometry 800x600
Vous devriez alors pourvoir vous connecter avec le bouton "partage d'écran" du finder d'OSX.
Attention, si vous redémarrez le serveur, la connexion ne sera plus active, il faudra retaper la dernière commande pour lancer le serveur VNC. Il est possible de le faire rapidement via SSH, c'est probablement la façon la plus secure. Toutefois si certains préfèrent que le serveur VNC se lancent automatiquement au démarrage, il existe plusieurs méthodes. J'ai choisi une tâche Cron pour lancer VNC au démarrage. Pour ce faire j'ai utilisé l'utilitaire "Tâche Cron" du Web Interface Webmin que je vous recommande d'installer. Il suffit alors de créer une tâche Cron qui se lancera au démarrage en éxécutant le script startVNC.sh que vous aurez créé comme ceci :
mkdir MyScripts
sudo nano ~/MyScripts/StartVNC.sh
Et ajouter ces lignes :
#!/bin/sh
echo "JOB RUN AT $(date)"
echo "============================"
echo ""
/usr/bin/vncserver -geometry 1280x1024 -depth 24
Dans l'interface de Webmin : Système > Tâches Cron > Créer une nouvelle tâche cron programmée
Dans "S'éxécuter en tant que" choisir l'Utilisateur que vous voulez utiliser pour la connexion VNC
Dans "Commande" saisir :
/home/NOM_S'UTILISATEUR/MyScripts/StartVNC.sh >/dev/null Choisir la "description" qui vous convient, puis cocher "Planification simple" et dans le menu déroulant choisir "Au boot du système" et ne pas oublier de cliquer sur "créer". Vous pouvez ensuite tester le script en clicant sur "Executer maintenant".

4. Configurer Time Machine
Maintenant que le partage AFP et la découverte par Bonjour fonctionnent au poile, rien de plus simple que de configurer Time Machine afin que les back ups se fassent sur votre serveur Ubuntu. Il suffit de monter dans le finder le répertoire que vous voulez utiliser pour stocker les sauvegardes puis d'ouvrir les préférences Time Machine, d'aller dans "Choisir un disque" et de choisir le volume distant que vous voulez utiliser.


Une fois le volume choisi et la première sauvegarde ammorcée vous pourrez remarquer qu'un nouveau volume intitulé "copie de sauvegarde Time Machine" est monté dans le finder. De même si vous vous rendez dans le répertoire choisi pour stocker les sauvegardes vous remarquerez l'image nommée "XXX.sparsebundle". C'est dans cette image/volume que seront accumulées les sauvegardes, de la même manière que pour les Time Capsule vendues par Apple.

Désormais, même si le serveur est déconnecté ou éteint, à la prochaine connexion, Time Machine retrouvera tout seul le répertoire des sauvegardes à travers le réseau et montera le volume automatiquement.
5. Configurer le serveur iTunes
Lancer cette commande :
sudo apt-get install mt-daapd
Puis celle ci pour relancer le service
sudo /etc/init.d/mt-daapd start
et celle ci pour s'assurer que le service se lancera au démarrage
sudo update-rc.d mt-daapd defaults
Si tout fonctionne, il est alors possible de se connecter au Web Interface qui gère le serveur mt-daapd à cette adresse :
http://IP.DU.SERVEUR.XX:3689/index.html
Le login et le mot de passe par défaut sont tous les deux "mt-daapd"
Vous pourrez alors régler le serveur comme bon vous semble, changer son nom, les mots de passe et bien sur spécifier le répertoire dans le quel se trouve la musique que vous voulez partager.
Une fois le service réglé vous pourrez alors accéder à la musique dans le menu "Partagé" d'iTunes comme ceci :

J'espère que je n'ai rien oublié, bon courage, avec un switch gigabit on atteint des vitesses de transfert de 60 mo/s en AFP, ca en vaut donc vraiment la peine...



Commentaires
Merci beaucoup. Pour ta contribution.
Cordialement JP
Je suis encore un null du tux, et ce tuto m'a permit de mon serveur.
Merci!
et qui roule sur une linuxmint édition debian.
J'ai bien suivi les 2 premières parties du post sans soucis.
Toutefois impossible d'avoir le disque partagé visible pour time machine ?
Alors que j'arrive bien à accéder via le finder au serveur Time Capsule créé.
Est ce que tu aurais une idée ?
merci
PS: je suis sous Ubuntu 9.10
PS2: Sachant que je vais me faire railler pour ma version d'ubuntu , je migre ...en 10.10 :-)
Alors, as tu résolu ton problème ?
Est ce que le serveur est visible dans le volet de Finder ? N'aurais tu pas des protection en lecture/écriture sur le répertoire concerné ?
defaults write com.apple.systempreferenc es TMShowUnsupport edNetworkVolume s 1
Je n'ai pas eu besoin de faire cette manip perso, c'est pour ca que je ne l'ai pas précisé. Il y a un tuto de Sonotone :
darwinx86.net/.../...
J'ai réussi merci bcp . toutefois (par défis simplement), j'ai passé ma machine (carte mere ZOTAC ION ) sous Snow Leopard Server (10.6.4). Mais impossible d'avoir le son via le cable HDMI. (j'utilise aussi cette machine comme media center avec XBMC)
Donc je retourne sous Ubuntu et je vais re-suivre ton tuto.
merci en tout cas