Utilisation avancée de FreeNAS

Cette page est la suite directe du tutoriel de configuration de FreeNAS. Nous allons à présent aborder des fonctionnalités un peu plus avancées pour l’utilisateur à domicile, car FreeNAS est capable de chose bien plus puissantes que ce que nous voyons ici mais si vous êtes à ce niveau vous n’avez pas besoin d’un tuto !

Au programme cette fois :

  1. Installation des mises à jour
  2. Les plugins : installation de la jail
  3. Installation et configuration de minidlna
  4. A définir…

NB: tout comme le premier tuto, celui ci est publié au fur et à mesure de l’écriture et de mes avancées personnelles, soyez donc patient, la suite arrive petit à petit.

 Etape 1 : Installation des mises à jour

Téléchargement de l’image GUI_Upgrade

Dans la première partie du tuto j’ai installé la version 8.04, car c’était la version stable du moment. Ensuite durant la rédaction, la version 8.2 est sortie et la 8.3 est en version beta3 au moment où j’écris ces lignes… FreeNAS évolue, de nouvelles fonctions sont régulièrement ajoutées, des bugs corrigés, de nouveaux matériels sont supportés,… En bref, pour en profiter il faut faire des mises à jour. Nous allons effectuer les mises à jour depuis l’interface graphique.

Les téléchargements se font sur cette page de sourceforge, où toutes les versions sont disponibles, puis à l’intérieur de chacune les sous-versions (beta,  release candidate, stable). Je vous déconseille les versions autres que les stables sur votre NAS contenant vos données, sur une machine virtuelle pour test par contre c’est le but ! Pour la mise à jour depuis l’interface graphique il faut télécharger les images GUI_Upgrade.

Petit piège : les images GUI_Upgrade sont disponible en 2 formats : xz et txz. Si vous mettez à jour depuis une version antérieur à la 8.2 BETA3 il faut télécharger le fichier au format xz, qui se termine donc par .GUI_Upgrade.xz. Si vous mettez à jour depuis une version 8.2 BETA3 ou plus récente il vous faut le format txz.

Il vous faut également télécharger le fichier texte contenant le hash SHA256 correspondant à votre image, cela permet au système de recalculer le hash et vérifier l’intégrité de l’image avant de l’installer.

Sauvegarde des paramètres

Il est primordial de télécharger la base de données contenant tous vos paramètres avant de débuter, en effet en cas de problème lors de la mise à jour il suffira de faire une installation normale puis restaurer la sauvegarde au lieu de tout reparamétrer… à moins que vous soyez fan de mon tuto au point de le recommencer du début ! ;-)

Donc dans System -> Settings on clique en bas sur le bouton Save Config et on télécharge le fichier .db. C’est tout !

Sauvegarde de la configuration

En cas de besoin il suffit de partir d’une installation de FreeNAS toute vierge, d’aller directement dans System -> Settings et de faire Upload Config.

Mise à jour proprement dite

Avant de lancer la mise à jour il faut commencer par désactiver tous les services : dans Services -> Control Services on passe tous les interrupteurs sur OFF.

Après ces étapes préliminaire on se rend dans System -> Settings puis l’onglet Advanced et on clique en bas sur le bouton Firmware Update

FreeNAS - mise à jour système

On choisi un emplacement temporaire pour l’upload de l’image, la racine du pool proposée par défaut fait un bon choix. On clique sur Apply Update.

FreeNAS - mise à jour système

Dans la fenêtre suivante on sélectionne l’emplacement de l’image téléchargée et on fait un copier-coller du contenu du fichier texte .sha256.txt avant de cliquer sur Apply Update. Ensuite il faut être patient : l’image est uploadée, le hash est vérifié, l’image décompressée et copiée sur la clé usb puis le système va rebooter 2 fois.

Méé, heu ça marche pas, jfais quoi ?

Si comme moi vous avez un message d’erreur très explicite, du style « an error occured », sans autre explication rapidement après avoir cliqué sur Apply Update alors vous avez peut être un problème de droits d’accès au pool. Après avoir pas mal tatonné, j’ai découvert que « les autres » doivent avoir le droit d’exécution, autrement dit les droits du pool doivent être positionnés au moins comme ceci :

Mise a jour - positionnement des droits

 Etape 2 :Les plugins, installation de la jail

Avant tout quelques brèves explications car il est toujours plus intéressant de comprendre ce que l’on fait. Une jail c’est quoi ? L’environnement jail (prison en français) est une fonctionnalité avancée des systèmes BSD (FreeNAS est basé sur FreeBSD) qui permet d’installer des applications sur votre système en toute sécurité. L’environnement jail est en fait une partie virtualisée du système, ainsi pour un processus installé dedans tout est comme si il était installé directement dans le système sauf que si ce processus devient malveillant il ne pourra pas compromettre le système car il compromettra un système virtuel. En gros la jail est un système virtuel indépendant dans le système.

Si vous voulez toutes les infos imaginables sur les jails lisez donc ceci, c’est le manuel FreeBSD en français et c’est très intéressant.

Téléchargement de la jail

Comme d’habitude, cela se passe sur sourceforge, dans le dossier de la version 8.3, ou plus récente. Puis le dossier correspondant à votre architecture (32 ou 64 bits) et plugins. On télécharge le fichier FreeNAS-8.x.xxxxx.Plugin_Jail.pbi.

Emplacement d’installation

La jail et les plugins vont être installés sur le pool ZFS et non sur la clé USB contenant le système freeNAS. Pour que cela soit plus simple à gérer par la suite nous allons donc créer 2 datasets : un pour la jail et un pour les différents plugins. Cela se passe donc dans Storage ->Volumes -> votre volume -> Create ZFS Dataset, on sait faire je ne re-détaille pas tout, si ce n’est pas le cas jetez un œil à la première partie du tuto. Dans mon cas j’ai créé un dataset « Jail » et un dataset « Plugins ».

2 contraintes cependant :

  • Les datasets doivent faire au moins 2Go et
  • Le chemin doit faire moins de 88 caractères de long : /mnt/pool1/Jail par exemple

Création de la jail

On se rend dans Services -> Plugins -> Management -> Settings. Comme pour une mise à jour on choisit un emplacement temporaire pour uploader la jail téléchargée (voir dans l’étape 1 ci-dessus pour les problèmes de droits sur le volume si jamais votre upload se bloque à 1%).

Ensuite dans la boite de dialogue suivante il y quelques paramètres à rentrer :

Installation de la Plugin Jail

D’abord le dataset où installer la jail, puis un nom pour notre jail, ici dans un élan d’inspiration j’ai mis « Jail ». Ensuite c’est important : il faut assigner une adresse IP et un masque à notre jail, et oui on a dit que c’est comme un système indépendant qui est virtualisé et il doit donc avoir un accès au réseau. Cette adresse doit être accessible depuis freeNAS, donc sur le même réseau et ne doit pas être utilisée par un autre poste sur votre réseau. Un bon plan est donc de mettre une adresse fixe en dehors de la plage de votre DHCP par exemple…  On termine par le chemin du dataset où seront installés les plugins.

On valide puis dans la dernière boite de dialogue il suffit de faire parcourir… et sélectionner le fichier de la jail précédemment téléchargé, puis une dernière validation et après un petit peu de patience la jail est installée.

Démarrage de la jail

Pour l’instant elle est installée mais pas activée, pour cela il faut se rendre dans Services -> Control Services et passer sur ON le bouton correspondant au service Plugins. Cela permet de « démarrer » le système virtuel dans la jail et est nécessaire pour l’installation et le fonctionnement de tous les futurs plugins.

Une fois le bouton sur ON, la jail est installée, vous devriez être en mesure de la « pinguer » depuis le NAS (via l’accès au Shell depuis l’interface graphique) ou même depuis n’importe quel poste du réseau.

Pour le ping depuis freenas on utilise la commande ping avec l’argument « -c » en précisant le nombre de ping (ici j’ai mis 2) sinon il faudra l’arrêter avec Ctrl + C.

Ping de la jail

Ajouter des points de montage

La jail étant un système virtualisé, les plugins que l’on va installer dedans n’auront donc évidemment pas d’accès au reste de l’arborescence du système… sauf que ça nous pose un problème : nos données étant sur le pool de stockage, comment faire pour que (par exemple) minidlna diffuse à la télévision un contenu auquel il n’a pas accès ?

C’est là qu’interviennent les points de montage, on va créer une sorte de lien dans la jail permettant de lier un dossier vers un autre présent à l’extérieur de la jail. Les données ne sont physiquement présentes qu’une seule fois mais accessibles depuis 2 endroits différents de l’arborescence. Attention : effacer des fichiers depuis le point de montage dans la jail les efface réellement du dossier source.

Dans l’optique de rendre nos données multimédias disponible à la diffusion par un plugin, on va donc créer un point de montage de notre dataset Medias vers la jail, c’est à dire que je monte /mnt/pool1/Medias en tant que /mnt/Medias dans la jail (donc en vrai : /mnt/pool1/Jail/Jail/mnt/Medias).

Le dossier cible (dans la jail) doit obligatoirement exister, soit vous montez donc vers un dossier qui est déjà présent soit vous en créez un comme ceci :

Dans le shell on utilise les commandes suivantes :

jls

pour lister les jails présentes et récupérer le numéro d’ID de celle que l’on veut (bon, là y’en a qu’une, ça devrait aller :D )

puis :

jexec 1 csh

pour lancer le shell csh dans la jail numéro 1. Un fois dans la jail, ce qui confirmé par le prompt : nomdevotrejail# on utilise mkdir pou créer un dossier :

mkdir /mnt/Medias

Et voilà, on quitte avec exit et c’est tout. Ca doit donner un truc comme ça :

Créer un dossier dans la jail

Ensuite on se rend dans Services -> Plugins -> Management -> Mount Points -> Add Mount Points

Ajouter un point de montage

et l’on sélectionne simplement avec les boutons Browse les dossiers source (hors jail) et cible (dans la jail). La case Mounted cochée indique que l’on veut l’activer, elle doit donc être cochée sinon ça ne fonctionne pas.

Maintenant que la jail est installée, on est libre d’y mettre tous les plugins que l’on veut !

Source