@mbarberot 🐿️

Serveur de backup : Samba

09 avril 2019

Cet article fait suite à celui de l'installation sur un Raspberry Pi d'une distribution Raspbian Lite (sans UI) et de Docker. Vous pouvez retrouver cet article ici.

Sans grande originalité, j'ai donc décidé de transformer mon Pi en serveur de fichier pour faire mes sauvegardes et accéder à mes données depuis n'importe quelle PC du réseau local. Le "challenge" sera de le faire uniquement avec des conteneurs !

Dans cette première partie, nous allons voir comment faire la partie partage avec Samba.

Matériel

1/ Connecter le disque dur externe

Tout d'abord on va brancher le disque en USB sur le Pi. Etant formatté en NTFS pour pouvoir l'utiliser avec Windows, le Pi est capable de le monter nativement mais uniquement en lecture seule.

Pour pouvoir déposer des fichiers sur le disque dur, on va devoir le monter différement. Pour cela nous allons avoir besoin du paquet ntfs-3g :

sudo apt-get install ntfs-3g

Ensuite, on va devoir trouver le disque dur. Pour cela, je regarde habituellement dans /dev/disk. Dans mon cas, le disque dur était /dev/dsb. Je peux alors le monter via la commande :

sudo mount -o rw,uid=1000,gid=1000,umask=0077 \
    -t ntfs-3g \
    /dev/sdb /media/share

Notes :

2/ Lancer Samba avec Docker

Pas besoin de réinventer la roue, un conteneur Samba existe déjà sur Docker Hub : dperson/samba. Le conteneur dispose d'un script permettant de facilement configurer les utilisateurs et partages.

Voici la commande que j'ai utilisé :

docker run \
	--name samba \
	-d \
	--rm -it \
	-v /media/share:/mnt/share \
	--network host \
	dperson/samba:armhf \
	-n \
	-g "interfaces = 192.168.1.150" \
	-u "myuser;mypassword" \
	-s "Share;/mnt/share;yes;no;no;myuser;myuser" \
	-w "workgroup"

Je vous laisse regarder la documentation qui explique bien ce que font les options -u, -s et -w pour me concentrer plutôt sur les autres options.

D'une part pour Docker :

D'autre par pour le conteneur :

3/ Améliorations

Monter automatiquement le disque dur au démarrage du Pi

Comme nous avons fait le montage en ligne de commande, il sera perdu au prochain redémarrage. Pour éviter cela, nous allons l'ajouter dans /etc/fstab.

Tout d'abord, il faut trouver l'UID du disque dur :

$ sudo blkid
# [...]
/dev/sdb : LABEL="MyBackup" UUID="1E3BEA7C1AEA5087" TYPE="ntfs" PARTUUID="00015c12-01"
# [...]

Ensuite, on peut modifier /etc/fstab pour ajouter une ligne contenant les mêmes informations que la commande de mount.

# <uid> <mount point> <format> <options> <dump> <pass>
UUID="1E3BEA7C1AEA5087" /media/share	ntfs-3g	uid=1000,guid=1000,umask=0077	0	0

Lancer automatiquement Samba au démarrage du Pi

Dans la commande Docker, remplacer -rm par --restart=always.

Profit

Le partage Samba devrait être accessible depuis la section "Réseau" de l'explorateur de fichier. Si ce n'est pas le cas, vous pouvez également utiliser le chemin suivant : smb://192.168.1.150