Configuration CentOS 6 as a TimeMachine server

Ce guide explique comment configurer les services necéssaires pour configurer Linux (CentOS 6) comme serveur de sauvegardes automatisés pour les postes de travail Apple (iMac, Macbook, etc).

  1. Ajouts dépendances CentOS

  2. Installation de Berkeley DB NetaTalk

  3. Configuration du service Avahi (ZeroConf/Bonjour)

  4. Configuration client sauvegardes

  5. Références

Ajouts dépendances CentOS

Pour pouvoir recompiler les composants requis, on doit s'assurer que les bonnes librairies sont disponibles. Dans une console, tapez cette commande pour les installer:

yum install cracklib-devel quota-devel tcp_wrappers-devel \
libgcrypt-devel avahi-devel libacl-devel avahi-devel pam-devel krb5-devel \
openldap-devel libgpg-error tcp_wrappers-libs nss-devel nss-util-devel \
nspr-devel cyrus-sasl-lib cyrus-sasl-devel cyrus-sasl-md5 cyrus-sasl

Installation de Berkeley DB NetaTalk

On procède ensuite à la compilation de Berkeley-db qu'on télécharge du site d'Oracle:

tar -xvzf db-5.3.21.tar.gz cd db-5.3.15/build_unix 
../dist/configure --enable-cxx  --prefix=/usr/local/db-5.3.21 
make 
make install 
cd ../../  

Maitenant, on passe à la compilation de Netatalk:

tar -xvzf db-5.3.21.tar.gz 
cd db-5.3.15/build_unix 
../dist/configure --enable-cxx  --prefix=/usr/local/db-5.3.21
make
make install
cd ../../ 

Il est très important de désactiver le 'ZeroConf' lors de la compilation de Netatalk. On ne veut pas doubler ce service... On va configurer ZeroConf (Bonjour) avec le service 'Avahi' (voir ci-bas).

Notre volume de backup dans ce guide se trouve dans '/store/backup' et on veut utiliser le compte 'tmbackup' pour le gérer. Alors, on doit modifier les permissions du dossier en question:

chown -R tmbackup:tmbackup /store/backup
cd /store/backup; touch .com.apple.timemachine.supported
chmod -R 700 /store/backup   

Pour le serveur AFP Netatalk, on doit configurer le fichier '/usr/local/netatalk/etc/afpd.conf' en remplaçant le défaut à la fin du fichier avec cette ligne:

- -transall -uamlist uams_dhx2_pam.so,uams_dhx_pam.so -nosavepassword -mimicmodel "Xserve"  

Avec un Mac, cette configuration fait qu'on voit une icone de serveur Apple 'Xserve' dans le 'Finder' en utilisant la directive 'mimicmodel'.

Dans le ficher '/usr/local/etc/netatalk.conf' on assure que certains protocols sont désactivés:

 ATALKD_RUN=no 
PAPD_RUN=no 
TIMELORD_RUN=no 
A2BOOT_RUN=no 
#ATALK_ZONE=@zone 

Et finalement, on désactive les 'homes' des utilisateurs et on configure le partage du dossier 'Time Machine' dans le fichier '/usr/local/etc/netatalk/AppleVolumes.default':

#~  
/store/backup "Time Machine" allow:tmbackup options:usedots,upriv,tm cnidscheme:dbd 

On limite la taille de disque virtuel avec la directive 'volsizelimit' à 150Go. De cette manière, aucun client de sauvegardes risque de remplir le disque. Par défaut, le client 'Time Machine' va tenter d'utiliser l'entièreté de l'espace du disque fourni.

Il faut maitenant activer le service:

/sbin/chkconfig netatalk on 
/sbin/service netatalk start  

Configuration du service Avahi (ZeroConf/Bonjour)

Pour que le service de backup soit complètement disponible, on doit configurer le service 'avahi-daemon' qui utilise le protocol 'Bonjour' ou autrement appelé 'Zercoconf' qui annonce la disponibilité du service de sauvegardes sur le réseau. Le nom du serveur doit être configuré dans le fichier '/etc/avahi/avahi-daemon.conf':

[server] 
host-name=viking 
#domain-name=dgi.polymtl.ca 
browse-domains=gi.polymtl.ca,dgi.polymtl.ca

On prend en note l'ID du volume qui se trouve dans le fichier /usr/local/etc/netatalk/afp_voluuid.conf' et on l'inscrit dans le fichier '/etc/avahi/services/adisk.service':

<?xml version="1.0" standalone='no'?><!--*-nxml-*--> 
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"> 
<service-group> 
<name replace-wildcards="yes">%h</name> 
<service>  
<type>_adisk._tcp</type>  
<port>9</port>  
<txt-record>sys=waMA=00:50:56:34:7C:22,adVF=0x100</txt-record>  
<txt-record>dk0=adVF=0xa1,adVN=Time Machine,adVU=1ED6C316-B795-4DE4-CCF0-C7D34E3CEFBE</txt-record> 
</service> 
</service-group> 

L'addresse MAC de la carte réseau du serveur 'waMA=00:50:56:34:7C:22'.

Voici la définition du service AFP '/etc/avahi/services/afpd.service':

<?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-group> 

Et dans le fichier '/etc/avahi/services/deviceinfo.service' on configure le type de machine annoncé:

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

Voici le dernier fichier de configuration d'Avahi '/etc/avahi/services/ssh.service':

<?xml version="1.0" standalone='no'?><!--*-nxml-*--> 
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"> 
<service-group>   
<name replace-wildcards="yes">%h</name>   
<service>     
<type>_ssh._tcp</type>     
<port>22</port>   
</service> 
</service-group> 

On active le service 'avahi-daemon':

/sbin/chkconfig avahi-daemon on 
/sbin/service avahi-daemon start 

Et voilà, on peut maitenant utiliser CentOS comme si c'était un serveur Apple pour les sauvegardes automatisés 'Time Machine'.

Configuration client sauvegardes

Pour la configuration du client, on doit se connecter au volume en sélectionnant 'Aller' dans le menu principal et ensuite, 'Se connecter au serveur':

On tappe ensuite l'addresse du serveur:

Le nom d'usager et le mot de passe doit être conservé en cochant l'option 'Conserver ce mot de passe dans mon trousseau':

On ouvre une console 'Terminal' et on tappes ces commandes pour créer l'image de disque de sauvegardes:

cd /Volumes/Time Machine 250Go
./mkBackupImage.sh -p /Volumes/Time Machine 250Go -s250g 

On ajoute ces lignes dans le fichier '/etc/hosts':

132.207.169.48 viking.dgi.polymtl.ca viking.local viking 

On retire le 'mount' du volume:

cd / 
sudo umount /Volumes/Time Machine 250Go 

À partir du menu principal, on sélectionne les préférences de 'Time Machine':

Et finalement on sélectionne le disque:

Maintenant les sauvegardes automatiques sont configurés sur le poste en question.

Références

  1. AFP With Time Machine

  2. Time Machine with Linux

  3. Time Machine Size Limits

  4. HowTo: Make Ubuntu A Perfect Mac File Server And Time Machine Volume

LucLalonde/TimeMachine (last edited 2012-08-29 18:18:56 by LucLalonde)