1. Introduction : Qu'est-ce que le cloud ?

Le cloud computing ou informatique dans les nuages peut être vu comme la dématérialisation totale ou partielle des systèmes informatiques.

C'est un terme qui regroupe beaucoup de choses, rendant ses aspects flous comme les nuages formant du brouillard. Le but de ce tutoriel est de sortir de ce brouillard concernant le cloud.

Le cloud computing est donc un ensemble de services vous fournissant pour l'aspect grand public :

  • un hébergement web (Apache/PHP/MSQL) ;
  • l'hébergement de vos mails/contacts/agendas ;
  • un espace de stockage/synchronisation partagé ou non ;
  • une application métier.

Pour l'aspect professionnel :

  • des serveurs virtuels avec redondance, répartition de charge et possibilité d'augmentation de puissance (temporaire ou non) pour supporter une montée en charge ;
  • des espaces de stockage en mode bloc ou en mode objet ;
  • des espaces de stockage et de bases de données distribués pour le big data notamment.

Dans les deux cas, toutes les ressources seront virtualisées, sauf dans le cas où vous louez un emplacement de baie dans un datacenter pour y placer vos propres machines.

Vos services fonctionneront en général sur une ferme de serveurs dont les capacités allouées peuvent changer avec le temps (en termes de puissance, d'espace de stockage, de bande passante). Ces serveurs peuvent être répartis ou répliqués dans plusieurs centres de données (data-center), c'est même indispensable pour les services de haute disponibilité.

Ceci vous permet de louer des services externalisés et/ou du matériel et ainsi de ne pas avoir à les gérer.

Avec le cloud, on ne vous fournit pas du matériel (bien que ce soit possible), mais plutôt de la ressource d'accès à celui-ci.

Ce tutoriel est composé de quatre parties :

  • une présentation des services cloud grand public les plus connus ;
  • une présentation des services cloud professionnels ;
  • une présentation de solutions d’autohébergement pouvant être utilisées (ou non) en mode cloud ;
  • une présentation des différentes briques constituant le cloud vous permettant une meilleure compréhension et éventuellement une mise en place de solutions adaptées à votre besoin.

1-1. Pourquoi ai-je besoin du cloud ?

Vous aurez besoin de services cloud si vous souhaitez avoir un accès permanent à vos services depuis n'importe où, ou si vous souhaitez avoir une sauvegarde sur Internet permanente.

Pour accéder par exemple à un serveur de fichiers dans une entreprise, il n'est pas forcément nécessaire d'utiliser une solution cloud, un VPN permettant d'entrer sur le réseau interne de l'entreprise pouvant suffire. Une solution cloud sera justifiée si vous souhaitez dématérialiser vos serveurs internes.

1-2. Nomenclature

Vous trouverez ci-dessus une définition des termes qui reviendront régulièrement dans ce tutoriel.

  • Datacenter : un datacenter ou centre de données est un lieu où vont être regroupés des serveurs installés dans des baies informatiques. À cela viendra s'ajouter une infrastructure réseau, un système de climatisation adapté, des systèmes anti-incendies, anti-intrusions, une alimentation électrique redondante et sécurisée par groupe électrogène. Vous y louerez soit des serveurs soit un emplacement (un quart, un tiers de baie) pour y placer vos équipements et vous permettant de bénéficier de l'infrastructure (réseau, électrique, climatisation).
  • Virtualisation : en informatique, la virtualisation consiste en une abstraction des ressources. Une machine virtuelle contient un système d'exploitation exécuté sur un hôte nommé hyperviseur. Avec la virtualisation, il est par exemple possible d’exécuter un Windows virtualisé depuis un serveur Linux exécutant un hyperviseur. L'inverse est également possible, Hyper-V, hyperviseur de Microsoft peut exécuter des machines virtuelles Linux dans Windows.
  • Hyperviseur : ordinateur ayant des capacités de virtualisation (support de la virtualisation par le CPU) et exécutant un logiciel de virtualisation nommé hyperviseur. (comme VMWare, KVM, VirtualBox). Il existe deux types d'hyperviseurs :

    • hyperviseur de type 1 ou bare metal : celui-ci ne va servir qu'à exécuter et gérer des machines virtuelles (VMWare ESX, KVM, Xen) ;
    • Hyperviseur de type 2 : un logiciel hyperviseur va s’exécuter sur un système d'exploitation. Le gestionnaire de machines virtuelles et les machines virtuelles peuvent être considérés comme des applications exécutées sur l'OS hôte (VirtualBox, VMWare Workstation).
  • Conteneur : un conteneur consiste en la virtualisation d'une application ou d'un service. Plus léger qu'une machine virtuelle, un conteneur va utiliser le noyau du système d'exploitation qui l'accueille en cloisonnant les ressources. Docker est un système de gestion de conteneurs faisant référence.
  • Network Attached Server (NAS) : il s'agit d'un serveur dédié au stockage, en général un boîtier contenant des disques accessibles sur le réseau via les protocoles classiques de partage de fichiers. Ceux-ci auront alors des fonctions plus ou moins avancées allant du simple partage de fichiers à des fonctions rivalisant avec un serveur d'entreprise.
  • Storage Area Network (SAN) : il s'agit d'un réseau de stockage de données bas niveau. Les SAN fournissent des accès en mode blocs. Exemple, une baie de disque qui sera accessible à une ou plusieurs machines.
  • Distributed File System (DFS) : il s'agit d'un système de fichiers réparti sur plusieurs machines. Le client (utilisateur ou matériel y accédant) n'a pas notion de cette répartition. Ce type de système est souvent associé à un mécanisme de redondance.
  • Redondance : la redondance consiste à dupliquer les composants (matériels et/ou logiciels) de façon à garantir le fonctionnement d'un système en cas de défaillance d'un composant, ceci de façon transparente.

1-3. Les différents modules cloud

Les services cloud se présentent en plusieurs couches dont voici les principales.

  • Infrastructure as a Service (infrastructure en tant que service, IaaS) : ce service est celui de plus bas niveau. Par exemple, il consiste en la mise à disposition de machines virtuelles, de conteneurs, de systèmes de fichiers distribués, de NAS/SAN. La partie « matérielle » (les différentes machines, l'infrastructure réseau et de répartition de charge) est sous la responsabilité du fournisseur de services.
  • Platform as a Service (plateforme en tant que service, PaaS) : ce type de service fournit le système d'exploitation, le ou les moteurs de base de données et peut donner ou non la liberté d'installer des logiciels. Les logiciels peuvent aussi être préinstallés.
  • Software as a service (logiciel en tant que service, SaaS) : à ce niveau, ce sont les applications qui sont proposées. On peut citer Microsoft Office 365 (pour la partie modification en ligne de documents, ou le logiciel installé sur votre poste), Google Docs, ou tout simplement un hébergement web.

D'autres couches peuvent être fournies telles que le Desktop as a Service (bureau virtuel en tant que service), le Storage as a Service (stockage en tant que service), la première étant haut niveau (SaaS), la seconde bas niveau (IaaS).

Les différentes briques IaaS, PaaS, SaaS peuvent être vues comme des briques mises en commun pour fournir la solution qui vous sera proposée ou que vous mettrez en place. Les différentes couches s’imbriquent comme des poupées russes et peuvent être comparées au modèle de couches OSI.

Image non disponible

La fourniture et la maintenance des couches IaaS et PaaS sont à la charge du fournisseur de service.

Avantages :

  • gestion externalisée du matériel et de sa maintenance, facilité de montée en charge ;
  • accessibilité depuis n'importe où ;
  • synchronisation en temps réel ou différé en cas de rupture de liaison, par exemple des services tels que Dropbox ou Google Drive.

Inconvénients :

  • captivité possible par rapport au produit utilisé et à Internet. En cas de coupure de liaison, aucune activité n’est possible ;
  • la migration vers un autre fournisseur de services peut être compliquée. Cette contrainte a tendance à disparaître ;
  • coûts d’utilisation pouvant être cachés ou difficiles à maîtriser, notamment si la facturation repose sur la bande passante ou l’espace utilisé, etc. ;
  • exposition plus importante aux risques de piratage si tous les services d’une entreprise sont accessibles depuis Internet ;
  • solution cadrée : vous n'aurez pas forcément accès à des réglages bien précis (c'est aussi un avantage pour la simplification de l'administration).

Cette liste est non exhaustive.

1-4. Cloud public/privé/hybride

Le cloud privé consiste en un cloud dont les ressources vous sont dédiées. Il peut s'agir de votre propre matériel dans vos locaux, d’un matériel hébergé dans un centre de données dont vous louez une baie ou un équipement spécifique, ou d’un droit d’accès à l'infrastructure de votre hébergeur.

Dans le cloud public, vous utilisez des services mutualisés dans des fermes de serveurs. Évidemment, seules vos données vous sont accessibles et ne le sont qu'à vous, mais les ressources matérielles/système peuvent être partagées entre plusieurs clients. Vous formez votre infrastructure selon le cadre qui vous est fourni. Il s'agit d'un cloud managé.

Un cloud privé virtuel peut être déployé dans un cloud public.

Le cloud hybride, quant à lui, correspond à l'utilisation mixte d’un cloud public et d’un cloud privé. Par exemple, il peut s'agir de répartition de services entre plusieurs cloud, de redondance entre vos locaux et un centre de données, d'une partie de services externalisés communiquant avec des services internes par le biais de standards facilitant la communication.

2. Les services cloud grand public les plus connus

  • Dropbox : service de synchronisation et partage de fichiers, gratuit jusqu’à 2 Go. Une interface d’administration est fournie pour les usages multicomptes professionnels. Dropbox propose une synchronisation sélective permettant de ne stocker sur un poste que certains dossiers. Dans ce cas, les dossiers non sélectionnés ne seront accessibles qu'en ligne ou que sur les postes ne les ayant pas décochés ; l'intégralité des données restant accessibles depuis l'interface web. À l’installation, il vous sera proposé de stocker les données sur votre poste ou de ne les stocker qu'en ligne. Dans les deux cas, vous verrez vos fichiers dans l'explorateur de fichiers.
  • Google G-Suite : il s'agit des services de la suite Google (Gmail, Google Drive, Google Agenda, YouTube, Maps, Forms…). Il y a également une interface d'administration pour les usages professionnels. L'espace de stockage est de 30 Go par utilisateur dans un espace professionnel G-Suite. En offre grand public, vous avez 15 Go d'espace de stockage. En version professionnelle, vous aurez accès à Google File Stream. Ce service permet de stocker des données uniquement en ligne (avec possibilité de cache local), comme avec DropBox. Il est possible dans les deux cas d'étendre l'espace de stockage. Celui-ci vous sera facturé. L'usage personnel propose un outil nommé « Google sauvegarde et synchronisation » effectuant comme son nom l'indique la synchronisation de vos données entre votre poste et le compte Google.
  • Apple iCloud : service de synchronisation Apple, permettant de synchroniser les contacts, agendas, mots de passe entre les iPad, iPhone et les ordinateurs mac. Les dernières versions (depuis Mac OS X 10.12) permettent également la synchronisation du dossier Documents et du bureau. Le service est gratuit jusqu'à 5 Go. Il existe une version sur Windows permettant la synchronisation avec Outlook, l’espace iCloud pour les documents et les photos.
  • Microsoft OneDrive/365 : synchronise les comptes utilisateurs entre les postes fonctionnant sur Windows 10 et les documents pour les systèmes antérieurs. Sous Windows 10, il est en théorie possible d'ouvrir une session sur un ordinateur tiers et de retrouver son environnement de travail. La partie emails et calendriers est gérée par Office 365 (en fait des comptes Exchange sur les serveurs de Microsoft), service à part. Un compte Office 365 peut ou non intégrer une licence Office 365 (il s'agit de la dernière version d'Office en mode location avec un espace de stockage OneDrive). Microsoft s'oriente vers la suite Microsoft 365, incluant les services Office 365, OneDrive, avec une licence Windows 10 incluse, et des services équivalents à ceux fournis par un Windows Server pour la version business : déploiement, stratégie de sécurité (restriction de copie de documents, réinitialisation appareils à distance).
  • WeTransfer : service de partage de fichiers dont la validité est temporaire. WeTransfer fournit un lien permettant le téléchargement du fichier téléversé. Ce lien reste valide quelques jours seulement. La version payante WeTransfer Pro permet de garder en ligne jusqu'à 100 Go et de les retransférer. Ce service est essentiellement utilisé pour transférer des fichiers trop volumineux pour être envoyé par mail, son but premier n'est pas d'effectuer du stockage à long terme, même s'il s'agit d'un service cloud. Il est fort probable que vous ayez déjà utilisé ce service pour envoyer ou recevoir des fichiers trop volumineux pour le mail.

Ce type de service peut être vu comme du SaaS (Software as a Service), le plus haut niveau dans les services Cloud. Ces services ne nécessitent pas ou peu de compétences techniques.

3. Les services cloud pour les professionnels : Le cloud à grande échelle

Les clouds à grande échelle présentés ci-dessous concernent principalement les entreprises. Ces services seront utilisés par des informaticiens et nécessitent des compétences techniques.

Les services suivants vous proposeront dans une console d'administration globalement la même nomenclature de briques pour réaliser votre cloud :

compute : gestion de ressources, avec notamment la gestion des machines virtuelles ;

storage : gestion de l'espace de stockage ;

network : la gestion réseau, avec en général un réseau interne pour l'interconnexion entre ressources, et un réseau public pour la communication extérieure.

Chacun des services présentés ci-dessous pourrait faire l'objet d'un article à part. Je n'ai malheureusement pas les ressources pour les présenter de façon étendue.

3-1. OpenStack

OpenStack est un projet conjoint de la société Rackspace (acteur majeur des services cloud depuis des années) et de la NASA. L’intérêt principal d'OpenStack est de pouvoir fonctionner sur du matériel standard et hétérogène.

OpenStack est adapté aux infrastructures d'envergure, et est utilisé par OVH, le premier hébergeur européen pour son cloud public.

OpenStack est un ensemble de briques mises en commun pour utiliser une infrastructure cloud. Voici les briques principales :

Nova : gère les ressources de calcul (compute). C'est Nova qui va contrôler les hyperviseurs sur les machines physiques (et maintenant les gestionnaires de conteneurs comme Docker ou LXC) ;

Swift : c'est le système de stockage objet d'OpenStack (storage). Les données sont stockées sous forme d'objets (un fichier va être éclaté en plusieurs objets du point de vue bas niveau). Swift va gérer la redondance des données (réplication, répartition, autoréparation, ajout d'espace de stockage) ;

Cinder : Cinder est l'équivalent de Swift, mais en mode bloc (storage). Il va gérer l'attachement/détachement des périphériques virtuels, la gestion de snapshots ;

Neutron : c'est la brique qui va gérer le réseau : attribution d'IP, création de vswitch, etc. ;

Keystone : c'est le service qui va gérer les identités et autorisations ;

Glance : c'est le service de gestion d'images disque. Ce service va distribuer des images disque aux instances : modèles de disque, fichiers OVF.

Il s'agit là des briques les plus importantes.

OpenStack comporte des API pour communiquer avec les services EC2 et S3 d'Amazon.

Vous pouvez consulter ce tutoriel sur OpenStack. Ou vous rendre sur le site

site d'OpenStack.

3-2. VMWare

VMWare est un acteur historique dans le monde de la virtualisation.

Oubliez les anciennes dénominations telles que ESX/ESXi au profit de VMWare vSphere.

La version vSphere gratuite se nomme VMWare vSphere Hypervisor, il s'agit en fait d'une version bridée de vSphere ne permettant l'utilisation que de la partie hyperviseur, suffisant dans le cadre de la gestion de trois ou quatre machines virtuelles, pour une petite structure.

Dans le cadre d'une utilisation payante, VMWare vSphere vCenter Server sera une machine virtuelle, installée sur un de vos hyperviseurs, qui gérera votre centre de données de façon globale. Vos hyperviseurs viendront s'intégrer dans une gestion centralisée. Certaines opérations ne seront alors faisables que depuis l'interface centralisée, d'autres pourront être effectuées depuis l'interface web de l'hyperviseur ou depuis l’interface web vCenter (les réglages seront alors visibles depuis l'une ou l'autre des interfaces). Vous pourrez facilement migrer à chaud une machine virtuelle d'un hyperviseur à un autre, et même d'un hyperviseur Intel vers un hyperviseur AMD (sous certaines conditions avec Enhanced vMotion Compatibility).

Dans VMWare vCenter Server, vous aurez une vision globale :

  • des hyperviseurs ;
  • des datastores ;
  • des réseaux.

Image non disponible

VMWare est utilisé en usage privé hors nuage, mais peut aussi servir de socle dans un ou des centres de données.

Dans le cadre d'une solution de cloud, le produit utilisé sera VMWare vCloud Suite, qui regroupe vSphere avec vRealize Suite, outil destiné à la modélisation et au provisionnement de projet.

3-3. Amazon Web Service (AWS)

Amazon propose une multitude de services de cloud computing, le plus connu étant S3 (Amazon Simple Storage Service). Dropbox utilisait auparavant S3. Amazon propose aussi une offre grand public, reposant sur S3, nommée Amazon Drive. Dans certains pays (mais pas la France), Amazon propose une offre gratuite et met à disposition 5 Go. Il existe aussi le service Amazon Prime Photo : un service Amazon Drive dédié aux photos.

Amazon fournit des briques de virtualisation, dont les plus connues sont :

  • EC2 : Elastic Compute Cloud ;
  • S3 : Simple Storage Service.

Vous pourrez gérer votre infrastructure depuis une interface web.

EC2 vous fournira des serveurs virtuels utilisant Xen, avec répartition de charge (load balancing).

S3 fournit un accès aux données en mode SOAP, REST, BitTorrent, mais peut aussi être utilisé par des API pour simuler un système de fichiers. Une machine virtuelle utilisera plutôt un stockage en mode bloc (EBS pour Amazon Elastic Bloc Store).

Pour ce type d'offre, il faudra porter particulièrement attention à la tarification. Celle-ci dépendra de la puissance, de la taille de l'espace de stockage, du nombre d'accès (nombre lectures/écritures et/ou accès réseau).
Ceci a l’avantage de vous permettre d'augmenter votre puissance temporairement ou définitivement, de la réduire, et donc de vous adapter rapidement aux besoins.
L'inconvénient étant la nécessité de maîtrise des coûts.

Vous pourrez migrer vos machines virtuelles vers Amazon à l'aide de AWS Server Migration Service.

3-4. Microsoft Azure

Les services Microsoft Azure sont comparables aux services fournis par Amazon avec lesquels ils sont en concurrence. Vous pourrez intégrer bien évidemment facilement tous les produits Microsoft.

Azure Migrate vous permettra de facilement migrer vos machines virtuelles locales vers Azure.

Bien qu'Azure soit une technologie Microsoft, il est tout à fait possible d'y utiliser des machines virtuelles Linux. Scott Guthrie, vice-président exécutif cloud et IA chez Microsoft, déclarait en 2018 :  «  Près de la moitié des machines Azure sont sous Linux ».

Le service propose en plus de l'interface web « Azure (remote) PowerShell » qui permet d'effectuer les opérations en ligne de commande et de façon scriptée. Azure Migrate Server Assesment permet de migrer des machines virtuelles Hyper-V vers Azure.

Un tutoriel sur Microsoft Azure.

La même règle de précaution que pour AWS est à appliquer en termes de tarification.

3-5. Oracle Cloud Infrastructure

Oracle est à l'origine une entreprise spécialisée dans la base de données. Oracle a racheté Sun qui proposait VirtualBox, hyperviseur de type 2, gratuit.

Oracle est arrivé sur le tard dans le monde du cloud par rapport à AWS ou Azure. Leur interface va proposer globalement le même type de services que ses concurrents.

Tout comme Microsoft facilite l'intégration de ses différents produits dans son cloud, Oracle va faciliter l’intégration des siens dans son cloud, notamment ses produits de bases de données.

Il est possible depuis les versions 6 de VirtualBox d'uploader une machine virtuelle vers le cloud Oracle. Il faudra auparavant préparer celle-ci (voir la documentation), et l'upload devra se faire lorsque la machine virtuelle est arrêtée. Vous pourrez aussi importer une machine virtuelle du cloud, ou directement en créer une dans le cloud Oracle depuis VirtualBox. Il est également possible de télécharger une machine virtuelle du cloud Oracle dans VirtualBox.

Le même principe de précaution au niveau de la tarification des ressources est à appliquer.

3-6. Google Cloud Platform

Les services fournis par Google sur leur infrastructure Google Cloud Platform s'appuient sur la même infrastructure utilisée par G-Suite. Ils vous fourniront le même type de services que ses concurrents.

La grosse différence de Google étant la fourniture de l'infrastructure G-Suite sur leurs services.

La même de précaution au niveau de la tarification des ressources est à appliquer.

3-7. Hadoop

Hadoop est un framework open source fourni par l’Apache Fundation. Ce framework est destiné au traitement de données de très gros volumes en facilitant la création d'applications distribuées. Il est utilisé dans les traitements big data.

Il se décompose en deux parties principales :

  • HDFS : Hadoop Distributed File System : il s'agit du système de fichiers distribués stockant les données ;
  • MapReduce : il s'agit du module de traitement de données proprement dit (composé de la fonction Map qui va effectuer la répartition du traitement et de Reduce qui réduira le résultat en une seule synthèse).

À cela peut être ajouté un module nommé Hbase, SGBD distribué non relationnel orienté colonnes.

Les principaux acteurs du cloud (Google, Amazon, OVH, etc.) sont en mesure d'offrir des instances Hadoop à leurs clients.

Hadoop n'est pas adapté à n'être utilisé qu'en système de fichiers.

4. Les solutions d’autohébergement (utilisable en cloud)

Seront abordés ici des solutions d’autohébergement toutes faites que vous pourrez utiliser en interne avec ouverture ou non sur l’extérieur. On ne pourra alors pas parler de cloud dans ce cas, mais uniquement d’autohébergement. Ces solutions sont également utilisables sur une infrastructure hébergée dans un datacenter, bien que ce ne soit pas le but premier.

Ces solutions pourront être adaptées à de l'utilisation répartie sur plusieurs machines après avoir lu les chapitres suivants à partir du chapitre sur les briques minimales.

4-1. Les NAS

Comme déjà évoqué NAS signifie Network Attached Storage que l'on peut traduire par stockage attaché au réseau. Ce stockage va en général contenir des disques montés en RAID afin de sécuriser les données au niveau matériel.

Au fur et à mesure de l'évolution, certains de ces NAS ont évolué vers des solutions offrant plus de fonctionnalités. Nous allons voir ci-dessous certains NAS ayant des fonctions avancées. Ils ne représentent qu'une partie des solutions NAS existant sur le marché.

Un NAS a pour première fonction de servir d'espace de stockage de type fichiers, pas d'être exposé sur Internet, même si cela est tout à fait possible.

4-1-1. Solutions NAS Synology

Image non disponible

Image non disponible

L'usage premier des équipements Synology était des NAS. Au fur et à mesure de l'évolution de leurs produits, ceux-ci apportent maintenant l'équivalent d'une solution comme Yunohost via leur interface DSM (Disk Station Manager) facile à utiliser. Vous pourrez facilement étendre l'espace disque en changeant ceux-ci ou en ajoutant. Une partie de l'espace disque est réservée à la redondance des données (RAID). Vous pourrez également ajouter des baies d'extension permettant l'ajout de disques supplémentaires. Tout le paramétrage se fait via une interface web.

L'accès depuis l’extérieur est facilité, de par un accès possible aux données en HTTPS avec un explorateur de fichiers accessible dans l'interface web fournie par Synology. Un serveur VPN est intégré. Synology fournit aussi une application nommée QuickConnect qui vous permettra, après création d'un compte, d'accéder à votre NAS via leur infrastructure (votre NAS se connectant à l'infrastructure Synology, qui fera le relais).

Vous pourrez sur les modèles le permettant créer des machines virtuelles.

Vous aurez ici une vision des applications proposées.

Vous pouvez tester DSM en ligne depuis le site de Synology.

Cette solution restera quand même plus fermée par exemple que Yunohost, car le système d'exploitation DSM n'est pas libre et reste quand même cloisonné, et nécessite l'utilisation d'un NAS Synology.

Certains hébergeurs proposent des solutions clé en main sur Synology. Il existe des modèles rackables pour les professionnels dont la configuration rivalise avec des serveurs accueillant habituellement des solutions Windows ou Linux, tout comme des modèles grand public à prix abordables.

Vous pouvez retrouver sur Developpez.com un dossier montrant l'utilisation d’un NAS de Synology.

4-1-2. Les NAS Qnap

Image non disponible

Image non disponible

Qnap est un peu moins connu que Synology par les particuliers et propose des fonctionnalités similaires. Le système embarqué dans les NAS QNAP se nomme QTS.

Vous pouvez retrouver sur Developpez.com un dossier montrant l'utilisation de QNAP.

4-1-3. FreeNAS/TrueNAS

Image non disponible

FreeNAS est une distribution FreeBSD basée sur M0n0wall, distribution FreeBSD destinée à servir de pare-feu dans un système embarqué.

FreeNAS fournit également des NAS physiques incluant leur système.

FreeNAS est une solution conçue pour fonctionner sur une carte flash ou une clé USB. L'usage premier étant d'être utilisé dans un système embarqué, mais rien n'empêche de l'utiliser sur une machine standard. Il est fourni sous forme d'ISO.

Le projet est en train de changer de nom et va devenir TrueNAS (TrueNAS core pour être précis). TrueNAS est la version payante de l'éditeur de FreeNAS, les deux versions partagent 95 % de code commun. Les prochaines versions devraient être basées sur Debian plutôt que FreeBSD.

Il existe une édition TrueNAS Entreprise qui est une version dual-node, la version TrueNAS SCALE permettra la gestion multinode. Cette dernière est encore en phase de développement et non recommandée par TrueNAS en production à ce jour.

La version testée est la version FreeNAS 11.

Bien que FreeNAS/TrueNAS puisse être installé dans une machine virtuelle, ce n'est pas son but premier.

4-1-3-1. Installation

Rappel : FreeNAS recommande l'installation sur une mémoire Flash.

Lors du démarrage de l'ISO FreeNAS, vous aurez les écrans suivants :

Image non disponible

 

Image non disponible

Vous devrez ensuite sélectionner le disque où installer FreeNAS :

Image non disponible

Ceci effacera l'éventuel contenu du disque, ce qui vous sera indiqué.

Il ne sera pas possible de mettre des données sur le volume contenant l'installation FreeNAS.

Vous sera ensuite demandé le mot de passe root  :

Image non disponible

Il faudra ensuite sélectionner le boot via BIOS (legacy) ou via UEFI :

Image non disponible

L'installation va ensuite se déclencher :

Image non disponible

Il vous sera ensuite demandé de rebooter :

Image non disponible

Au premier démarrage, vous aurez l'écran suivant :

Image non disponible

Vous pouvez changer les réglages réseau. Vous pourrez le faire a posteriori depuis l'interface web.

À ce stade, vous pourrez passer via l'interface web, il faudra vous connecter avec le mot de passe root précédemment communiqué :

Image non disponible

Écran de l'interface web :

Image non disponible

Nous commencerons par vérifier si des mises à jour sont disponibles en cliquant sur « check for updates » :

Image non disponible

Nous continuons ensuite par passer le système en français, changer la langue du clavier, mettre à jour le fuseau horaire :

Image non disponible

L'écran passe immédiatement en français.

Vous pourrez également changer les ports d'écoute de l'interface web (bonnes pratiques habituelles).

La prochaine étape sera l'activation du mot de passe pour accéder à la console. Pour cela, il va falloir décocher « Afficher la console sans mot de passe » dans le menu système->avancé :

Image non disponible

Dès le clic enregistré, la console va se verrouiller et nécessitera la saisie du mot de passe root.

À ce stade, freeNAS n'est pas encore utilisable, il va nous falloir créer un volume.

4-1-3-2. Création d'un volume

Pour créer un volume, il va nous falloir aller dans le menu stockage → volumes :

Image non disponible

Cliquer sur « Ajouter » nous donnera accès à la création de volume :

Image non disponible

Vous seront alors affichés les volumes disponibles, il faudra cocher le volume souhaité et lui donner un nom :

Image non disponible

À côté du nom, vous aurez une case à cocher permettant de chiffrer le volume.

Si vous chiffrez le disque, TrueNAS vous fera télécharger la clé sous forme de fichier. La perte de cette clé vous empêchera l’accès aux données du volume ZFS.

L'écran se présente en deux parties, à gauche la partie volume physique, à droite la partie volume logique. Il vous sera possible de créer un volume logique depuis plusieurs volumes physiques. Il faudra cliquer sur la flèche pour déplacer le ou les volumes dans la partie droite. Une fois ceci fait, vous pourrez créer le volume.

Image non disponible

Vous aurez une demande de confirmation, il faudra cocher la case pour pouvoir confirmer :

Image non disponible

FreeNAS revient sur le premier écran permettant de créer un volume, nous voyons la liste des volumes :

Image non disponible

Depuis la console, nous trouverons le volume FreeNAS_data monté dans /mnt/freenas_data. Il s'agit d'un volume ZFS. ZFS est un système de fichiers ayant des capacités théoriques quasi infinies. Il a également l’avantage d'intégrer la possibilité de faire des clichés, de pouvoir faire des partages natifs en SMB et NFS. Tout partage créé depuis FreeNAS sera contenu à ce niveau.

4-1-3-3. Partage de fichiers

Pour pouvoir utiliser FreeNAS, l'étape suivante sera de créer un partage de fichiers.

Les partages disponibles sont :

  • AFP : partage pour Macintosh ;
  • iSCSI : partage au niveau bloc pouvant être assimilé à du SCSI Over IP ;
  • NFS : partage natif Unix, classique sur ce type de solutions ;
  • WebDAV : (Web-based Distributed Authoring and Versioning) extension du protocole HTTP dédié à la gestion de fichiers via le web. Windows et Mac OS permettent de monter un volume WebDAV comme un volume réseau standard. Sous Linux, DavFS permet de monter un volume WebDAV via FUSE. Pour un usage interne, je privilégierais SMB, mais pour un usage externe cela peut être utilisé pour faciliter le passage de firewalls, mais je privilégierais plutôt une connexion SSH ;
  • SMB : partage utilisé par Windows et utilisable depuis quasiment tout système, ce sera le plus utilisé sur ce type de solutions.

L'accès à la gestion des partages se fera depuis l'onglet « Partages » sur la gauche.

4-1-3-3-1. Partage Windows

Nous accédons au menu de gestion des partages Windows :

Image non disponible

Une fois « Ajouter » cliqué, il va falloir entrer le chemin d'accès, le nom de partage. Une fois FreeNAS_data sélectionné à la souris, je rajoute le nom partage pour créer un dossier :

Image non disponible

Après avoir cliqué sur « Enregistrer », il vous sera demandé d'activer le service (en fait le service SMB :

Image non disponible

Image non disponible

Il vous sera alors demandé d'activer les ACL :

Image non disponible

La gestion des ACL peut être complexe. Pour un dossier donné, voici un exemple autorisant l'accès d'un dossier aux membres du groupe Staff :

Image non disponible

Image non disponible

4-1-3-3-2. Partage NFS

Le principe du partage NFS est le même. Vous n'aurez pas de gestion d'ACL, le protocole ne le gérant pas.

Vous pouvez partager un dossier sur plusieurs protocoles, exemple SMB et NFS.

4-1-3-3-3. Partage Apple (AFP)

L’aspect pertinent du partage AFP fourni par FreeNAS est de pouvoir l'utiliser avec Time Machine. Il faudra cocher pour cela la case « Time Machine ». 

4-1-3-3-4. Partage WebDAV

Comme il vous sera indiqué, activer un partage WebDAV sur un dossier existant va transférer la propriété de celui-ci à l'utilisateur WebDAV, ce qui pourra entraîner des problèmes de droits.

Le port d'écoute par défaut est 8080. Vous pourrez le changer depuis le menu services → WebDAV.

4-1-3-4. Plugins

Il est possible d'ajouter des fonctionnalités à FreeNAS par le biais de plugins. Voici quelques exemples de plugins disponibles :

dépôt de l'éditeur :

  • ClamAV ;
  • Nexcloud (que nous verrons au chapitre suivant) ;
  • Syncthing (que nous verrons également).

dépôt de la communauté :

  • Drupal 8 ;
  • Duplicati ;
  • Gitlab ;
  • Grafana ;
  • OpenVPN Server.

Pour installer ces plugins, il vous faudra cliquer sur plugin sur le menu de gauche. Vous sera alors demandé le volume où stocker les plugins, je sélectionne mon volume freenas_data :

Image non disponible

.

Image non disponible

Ceci va créer un dossier iocages dans le volume freenas_data.

Je choisis pour l'exemple d'installer le plugin « Nextcloud » :

Image non disponible

Une fois l'installation terminée, vous pourrez voir le plugin en dessous des icônes de plugins installables :

Image non disponible

Nous pouvons voir l'interface d'accès à l'administration de Netxcloud (http://192.168.1.14:8282 dans l'exemple). Cette interface vous présentera la page de configuration de Nextcloud telle que nous la verrons dans le prochain chapitre. Les informations de connexion sont disponibles dans les notes de postinstallation :

Image non disponible

Les plugins sont installés dans des BSD Jails, système de conteneurs spécifique à BSD et précurseur de systèmes de type Docker.

Il est possible d'entrer dans la console du BSD Jail depuis le menu à gauche, Jails :

Image non disponible

Image non disponible

4-1-3-5. Machines virtuelles dans FreeNAS

Si la machine où vous avez installé FreeNAS supporte la virtualisation, vous pourrez créer des machines virtuelles Windows, Linux, ou freeBSD.

Une fois le bouton « Ajouter » depuis le menu Machines virtuelles, il faudra renseigner le type d'OS (Windows, Linux, FreeBSD), le nom de celle-ci, la méthode de démarrage (UEFI, UEFI-CSM, Grub) :

Image non disponible

Vous sera ensuite demandé le nombre de CPU et de RAM à attribuer à la VM :

Image non disponible

Ensuite, il vous faudra créer un disque virtuel ou en sélectionner un existant :

Image non disponible

Il vous faudra sélectionner le chemin où stocker celui-ci, vous pourrez ensuite sélectionner la taille du disque.

Vous sera ensuite proposé l'écran de la carte réseau, vous pourrez changer l'adresse MAC et sélectionner la carte réelle, si vous en avez plusieurs, sur laquelle affecter l'interface virtuelle :

Image non disponible

Vous pourrez ensuite choisir le support d'installation :

Image non disponible

Pour en uploader un, il faudra cocher « Envoyer un fichier image de l'installation », puis cliquer « Parcourir », et enfin « Envoyer » une fois le fichier sélectionné :

Image non disponible

Vous aurez ensuite un écran de confirmation :

Image non disponible

La machine virtuelle sera alors créée et visible dans la liste :

Image non disponible

Cliquer sur le bouton de la colonne « état » démarrera la machine virtuelle. Cliquer sur la petite flèche à droite vous permettra d'accéder à la configuration de celle-ci :

Image non disponible

Si vous allez dans le menu stockage → volumes, vous pourrez voir un zvol (sorte de volume dans un volume dans ZFS) correspondant à l'image disque de la machine virtuelle. Ce zvol portera le nom de la machine virtuelle suivi de plusieurs lettres aléatoires :

Image non disponible

accessible dans /dev/zvol/freenas_data. freenas_data étant le pool créé au chapitre création d'un volume.Installation sur système existant

4-1-3-6. Options avancées

Sont présentées ici les fonctionnalités les plus importantes, de façon non exhaustive.

4-1-3-6-1. Tache rsync

Cette option est accessible depuis le menu tâches → rsync. Ceci vous permettra de lancer une tâche rsync vers un autre hôte.

Vous seront demandés :

  • l'utilisateur à utiliser ;
  • le nom d'hôte distant ;
  • la direction (PUSH/PULL PUSH : envoi vers l'hôte distant, PULL reçoit de l'hôte distant) ;
  • les options principales de rsync présentes sous forme de cases à cocher.

Image non disponible

4-1-3-6-2. Réplication

Il est possible de répliquer vos dossiers vers une destination locale ou distante (copie via SSH, il est aussi possible d'utiliser une source distante). Ceci se fera depuis le menu tâches → réplication :

Image non disponible

En cas de volume de destination local, celui-ci devra être créé avant.

Le prochain écran concernera la planification.

Image non disponible

Une fois la réplication effectuée, la destination backup de notre exemple sera identique à la source freenas_data.

4-1-3-6-3. Synchronisation cloud

Ceci vous permettra de synchroniser vos données vers le cloud. Les connecteurs cloud disponibles sont :

  • Amazon S3 ;
  • Blockbase B2 ;
  • Box ;
  • DropBox ;
  • Google Cloud Storage/Google Drive ;
  • Microsoft OneDrive/Microsoft Azure blob storage ;

À cela s'ajoutent les connecteurs standards suivants :

  • FTP ;
  • SFTP ;
  • WebDAV ;

La première étape va consister à créer le connecteur dans le menu système → identifiants cloud. Il faudra y renseigner les éléments afférents à celui-ci :

  • nom d'hôte ;
  • jeton d'accès ;
  • identifiants.

Vous pourrez ensuite créer la tâche de synchronisation :

Image non disponible

4-1-3-6-4. Gestion avancée de l'alimentation des disques

Il est possible de gérer l'alimentation des disques en allant dans le menu Stockage → disques :

Image non disponible

Image non disponible

4-1-3-6-5. Services d'annuaire

FreeNAS permet de se connecter sur Active Directory ou sur un serveur LDAP (qu'il vous faudra installer) ainsi que sur un serveur NIS, et Kerberos.

Pour cela, il faudra entrer les informations de connexion dans le menu Service d'annuaire, sous-menu concernant l'annuaire.

4-2. OwnCloud – Application de cloud privé

Image non disponible

OwnCloud est écrit en PHP et donc installable sur n’importe quel serveur supportant PHP. Les tests ont été effectués depuis une machine Linux.

Owncloud fournit :

  • un service de stockage de fichiers accessible depuis un navigateur ;
  • une application de synchronisation de données pour Windows, Mac OS, Linux, et pour les smartphones iOS et Android ;
  • un partage de documents par envoi de lien (avec ou sans mot de passe) ;
  • une gestion de calendrier depuis l'interface web et compatible avec le protocole CalDAV pour le partage avec les logiciels de messagerie ou de gestion de calendriers ;
  • une gestion de contacts compatible CardDAV.

Owncloud.online est une solution vous permettant d'être directement hébergé par leurs services avec un abonnement mensuel ou annuel incluant un stockage de 500 Go. La solution « for teams » vous fournira 1 To par utilisateur avec un minimum de cinq utilisateurs. Le tarif à l'utilisateur est quasi identique entre l'offre personnelle et l'offre d'équipe.

Deux versions d'Owncloud existent, la version entreprise, et la version Community. Les différences sont détaillées ici. Notamment, plus de modules sont disponibles dans la version entreprise.

Pour migrer de la version Community à la version Entreprise, il vous faudra créer un compte sur le Marketplace. Vous aurez alors accès à une clé d'API qu'il faudra entrer dans le Market d'Owncloud, ceci après avoir cliqué « Commencer l'évaluation d'entreprise ». Vous aurez alors 30 jours d'essai gratuits avant de devoir acheter le service.

4-2-1. NextCloud – le fork de OwnCloud

Image non disponible

Nextcloud est un fork de Owncloud. Il est relativement facile de migrer d'Owncloud vers Nextcloud, mais ceci n'a pas été testé dans ce tutoriel. Le processus d'installation est le même. Nextcloud a également un client pour les postes informatiques et smartphones. L'installation se fait de la même façon.

La version disponible de Nextcloud et testée au moment de l'écriture de ce tutoriel est la version 19.

Nextcloud requiert la version 7.2 de PHP au minimum.

4-2-2. Les différences constatées entre Owncloud et Nextcloud

Les applets fournies sont différentes, mais les applets principales telles que la gestion de calendriers et contacts sont présentes dans les deux produits.

La première différence est l’installation par défaut des applets les plus utilisées (photos, contacts, agendas) dans Nextcloud, sauf si vous décochez la case « installer les applications recommandées » sur l'écran de configuration.

Ci-dessous écran d'installation suivant celui des paramétrages de base (compte administrateur, informations sur la base de données) :

Image non disponible

Les options de configuration diffèrent sur la forme, mais pas sur le fond. Une fois installées, l'accès aux applications agenda et carnet d'adresses se fait directement depuis des icônes dans la barre du haut.

Image non disponible

Les paragraphes concernant la synchronisation de l'agenda et des contacts restent valables pour les deux produits.

L'accès aux applications se fera depuis le menu à droite. Sur Owncloud, l'option se trouve à gauche depuis la partie administration.

Vous pourrez voir les différentes applications sur https://apps.nextcloud.com.

4-2-3. Personnalisation de l'apparence

Netxcloud permet la personnalisation de l'interface ainsi que la page de connexion, réglage accessible depuis paramètres (en haut à droite) → « Administration » → « personnaliser l'apparence ».

Exemple simple avec le logo et la couleur de fond DVP :

Image non disponible

Owncloud possède une extension « Owncloud X Enterprise Theme », mais payante. Celle-ci n'a pas été testée :

Image non disponible

4-2-4. Authentification via les comptes locaux

Nextcloud comporte un plugin nommé « Unix User Backend » permettant l'authentification avec des comptes locaux. Vous le trouverez dans la section « Intégration ». Il faudra cliquer sur « activer les applications non testées » en dessous de son image, avant de pouvoir cliquer sur « Télécharger et Activer ».

Une fois le plugin activé, si vous ajoutez un utilisateur via la commande adduser, celui-ci apparaîtra dans les utilisateurs Nextcloud. Par contre, l'ajout d'un utilisateur dans l'interface Nextcloud n'est pas répercuté dans les comptes utilisateurs du système. L'interface Nextcloud présente les comptes contenus dans sa base de données, et dans les autres sources d'authentification gérées.

La connexion depuis un compte utilisateur Unix via le plugin « Unix user Backend » nécessite la présence du paquet pwauth. Si pwauth n'est pas installé, le système réagira comme si le nom d'utilisateur/mot de passe est invalide.

Vous ne pourrez pas changer le mot de passe du compte Unix depuis l'interface Nextcloud. La tentative de suppression du compte générera une erreur. La suppression du compte depuis la console Unix (via deluser par exemple) sera prise en compte dès le rafraîchissement de la page Nextcloud. Les données Nextcloud de l'utilisateur ne seront pas effacées.

Il existe également un plugin permettant l'authentification via SMB :  « External User Authentication », mais celui-ci n'a pas été testé.

4-2-5. Installation de ownCloud

La version testée et disponible au moment de l'écriture de ce tutoriel est la version 10.

ownCloud 10 requiert minimum PHP 7.1.0 (Debian 9 étant fourni avec PHP 7.0, il faudra faire la mise à jour). Pour la base de données, vous aurez le choix entre sqlite, MySQL/MariaDB, et PostgreSQL.

Sous Linux, il suffit de décompresser l'archive zip et de placer les fichiers dans /var/www (ou /var/www/html selon votre version, ou de configurer un fichier Virtualhost comme vous le souhaitez).

Il vous faudra un MySQL ou un PostGreSQL fonctionnel si vous souhaitez l'utiliser.

Les fichiers devront avoir les droits www-data.

Attention au fichier .htaccess non visible, qu'il faudra copier.

Au premier démarrage vous aurez l'écran suivant :

Image non disponible

ownCloud requiert les paquets php-zip, php-dom, php-xml,php-gd,php-mb php-curl et php-intl :

 
Sélectionnez
apt-get install php7.1-zip  php7.1-dom  php7.1-xml  php7.1-gd  php7.1-mb  php7.1-curl  php7.1-intl

Nous redémarrons le service :

 
Sélectionnez
service apache2 restart

Vous aurez ensuite l'écran suivant :

Image non disponible

ownCloud vous demandera :

  • un nom d'utilisateur administrateur ;
  • un mot de passe ;
  • le chemin de stockage des données (par sécurité, ne pas laisser dans un sous-dossier du site, si vous le faites ownCloud vous préviendra). Dans notre cas le stockage se fera dans /data. (/data étant le dossier ou point de montage devant contenir les données). Le dossier /data devra appartenir à www-data.
  • les informations de connexion à la base de données :

    • nom d'utilisateur ;
    • mot de passe ;
    • nom de la base ;
    • nom d'hôte /adresse IP.

La base devra être créée avant.

Il m'a été nécessaire de créer le dossier apps-external.

Une fois la préparation terminée, vous aurez l'écran de connexion ou vous devrez entrer l’identifiant préalablement choisi.

4-2-6. Première connexion à ownCloud

Image non disponible

Vous aurez ensuite le premier écran de connexion (il faudra fermer la fenêtre d'accueil) :

Image non disponible

Vous serez ensuite dans l'interface principale :

Image non disponible

Les fichiers des utilisateurs sont stockés dans /data/[nom d'utilisateur]/files et /data/[nom d'utilisateur]/files_versions pour les anciennes versions.

La configuration se trouve dans le fichier config/config.php. Vous pourrez, en cas de changement de serveur par exemple, y changer les réglages tels que l'adresse du serveur, le dossier de stockage des données, le nom et les éléments de connexion de la base de données.

4-2-7. Utilisation de l'interface web d'ownCloud

Voici l'écran de l'interface :

Image non disponible

Vous pouvez uploader un fichier (le terme affiché est « Téléverser ») ou créer un dossier en appuyant sur le plus.

Sur la partie gauche, vous avez accès aux raccourcis :

  • favoris ;
  • documents récents ;
  • documents partagés avec vous ;
  • documents partagés avec d'autres.

Pour mettre un document ou un dossier en favori, il faut sélectionner celui-ci, et cocher l'étoile (en 1).

Cliquer sur un dossier va vous permettre de rentrer dedans, cliquer sur un fichier va le télécharger.

Vous voyez votre chemin d'accès en 2, un clic sur le pictogramme Image non disponible vous ramènera à la racine.

L’icône en 3 va ouvrir un écran de détail, vous permettant d'ajouter un commentaire ou de partager le fichier avec d'autres utilisateurs :

Image non disponible

Vous verrez alors la notation partagée. Vous pouvez autoriser l'utilisateur à modifier le document, le repartager ou non, ou supprimer le partage. Vous pourrez également voir et gérer les partages depuis le client logiciel, comme nous le verrons ultérieurement.

Vous aurez également accès aux différentes versions d'un document. Vous pourrez soit les télécharger, soit les restaurer.

À chaque mise à jour, les versions sont ajustées comme ceci :

  • les 10 premières secondes, conservation d'une version toutes les 2 secondes ;
  • la 1re minute, conservation d'une version toutes les 10 secondes ;
  • La 1re heure, conservation d'une version toutes les minutes ;
  • Les 24 premières heures, conservation d'une version toutes les heures ;
  • Les 30 premiers jours, conservation d'une version par jour ;
  • Au-delà de 30 jours, conservation d'une version par semaine.

Si l'espace occupé dépasse les 50 %, le nombre de versions est diminué jusqu'à descendre en dessous de cette occupation.

Un fichier supprimé restera accessible depuis la corbeille accessible en bas à gauche.

L'ajout d'un fichier ou dossier se fera depuis l’icône Image non disponible qui affichera un menu :

Image non disponible

Vous pourrez cliquer sur « Chargement » pour obtenir la boite de dialogue de sélection de fichiers, ou « dossier » pour créer un nouveau dossier.

Le Glisser-déplacer fonctionne également.

En cas d'upload d'un fichier déjà existant, vous aurez une boite de dialogue de confirmation :

Image non disponible

4-2-8. Administration

L'accès à l'interface d'administration s'effectue par l’icône crantée en haut à droite :

Image non disponible

Pour revenir à l'écran des fichiers, il faudra cliquer sur paramètre à gauche :

Image non disponible

L’icône « Market » vous servira à ajouter des applets non natives à ownCloud. Nous en verrons certaines ultérieurement.

Vous pouvez avoir plus d'informations sur les applets ownCloud sur le site https://marketplace.owncloud.com.

Vous aurez les options suivantes :

  • Paramètres ;
  • Utilisateurs ;
  • Se déconnecter.

L'onglet paramètres vous donnera accès à deux parties principales : Personnel et Administration.

La partie « Personnel » va concerner la configuration du compte proprement dit (avatar, adresse mail, mot de passe, langue).

Passons directement à la partie Administration.

  • Personnel/Réglage stockage externe (désactivé par défaut) : donnant accès à la gestion d'espaces de stockage local, DropBox, Google Drive, SMB, S3, etc.
  • Administration/Applications : permet de voir les applications activées et de les désactiver, en cliquant sur le bouton « Show disabled apps » ; il est possible de les lister et aussi de les désinstaller.

Après l'installation, seules les applications par défaut sont visibles, nous verrons plus tard comment ajouter celles qui ne sont pas présentes.

Administration/Généraux : vous verrez tout d'abord ici des avertissements sur la sécurité et la configuration. J'ai un avertissement sur le verrouillage translationnel, une recommandation sur l'utilisation de cron pour les tâches planifiées (configurable en bas de page), sur l'utilisation de HTTP au lieu de HTTPS et sur la non-présence de cache mémoire (memcached recommandé).

Ces avertissements ne sont pas bloquants.

Administration/stockage : ce menu va permettre l'usage d'un stockage externe, ceci étant désactivé par défaut et activable ici, (voir Personnel/stockage externe).

Image non disponible

Les partages externes accessibles sont :

  • Google Drive ;
  • ownCloud (un autre serveur) ;
  • SFTP ;
  • SMB/CIFS ;
  • WebDav.

Le paquet smbclient doit être installé pour pouvoir utiliser un partage SMB. ownCloud vous affichera un message en conséquence.

Image non disponible

Il vous faudra cocher « Autoriser les utilisateurs à monter des espaces de stockage externes » pour que ceux-ci puissent y accéder.

Nous verrons alors le partage créé dans le menu Personel/stockage.

Le dossier partagé sera visible dans l'espace utilisateur avec une icône Image non disponible.

Administration/chiffrement : désactivé par défaut. Les fichiers ne sont donc pas chiffrés par défaut. Pour plus d'infos, consultez la documentation. Il vous faudra activer l'application « Default Encryption Module », que vous trouverez dans la liste des applications après avoir cliqué sur « montrer les applications désactivées ».

Une fois le module activé, dans la partie chiffrement, il vous faudra sélectionner le type de clé :

  • une clé principale ;
  • une clé par utilisateur.

Image non disponible

Dans le cadre du test, j'ai sélectionné une clé principale. Une fois le choix validé, il est demandé de se reconnecter.

Image non disponible

Seuls les nouveaux fichiers seront cryptés, les anciens ne le seront pas.

Seul le contenu des fichiers est crypté, pas leur nom. Un dossier files_encryption dans le dossier de l'utilisateur va contenir les éléments pour le décryptage (et notamment les clés des utilisateurs). Le dossier files_encryption du dossier data va lui contenir les fichiers de la clé maîtresse en cas de chiffrement unique pour tous les utilisateurs.

La perte des clés de cryptage entraînera l’impossibilité de lire les fichiers chiffrés.

Le téléchargement d'un fichier chiffré est transparent : il est déchiffré à la volée. Si vous désactivez le module « Encryption », la tentative de chargement du fichier déclenchera un message d'erreur :

Image non disponible

Administration/Partage : vous trouverez ici les autorisations de partage ou repartage pour vos utilisateurs. Vous trouverez aussi les réglages concernant la fédération de serveurs ownCloud (partage d'annuaire d'utilisateurs entre plusieurs serveurs ownCloud).

Par défaut, il n'y a pas d'accès à un agenda ou à un calendrier, nous verrons cela dans les chapitres suivants.

Personnalisation de l'apparence : il existe une applet pour personnaliser l'image de fond de l'écran de connexion : « ownCloud X Enterprise Theme », extension payante, qui n'a pas été testée. Pour l'image de fond, il suffit de modifier l'image core/img/background.jpg. Pour les autres aspects, il vous faudra faire la recherche et certainement modifier les fichiers .css manuellement.

4-2-8-1. Gestion des utilisateurs

Pour accéder à la gestion des utilisateurs, il faut cliquer sur « utilisateurs » en dessous de « Paramètres ». Vous aurez alors accès à la gestion de ceux-ci :

Image non disponible

Pour créer un utilisateur, il suffit d'entrer son login et son adresse mail. Une fois l'utilisateur créé, il faudra positionner son mot de passe. Vous pouvez créer des groupes, ceux-ci permettant de régler par exemple les droits de partage entre utilisateurs. Vous pouvez aussi mettre un quota disque à ceux-ci. Attention à ne pas mettre un utilisateur dans le groupe « admin » s‘il ne doit pas l'être.

En cliquant sur l’icône de roue crantée en bas à gauche, vous aurez des options supplémentaires, telles que l'affichage de l'adresse mail, le dossier de données, ou la provenance de l'utilisateur (base interne, connexion externe telle que LDAP).

Suppression

La suppression d'un compte via l’icône Image non disponible à sa droite va supprimer les fichiers de celui-ci. Vous aurez une demande de confirmation :

Image non disponible

4-2-8-2. Authentification via LDAP

Si vous utilisez un serveur LDAP, vous pourrez l'utiliser pour authentifier vos utilisateurs sur ownCloud. Il vous faudra ajouter l'applet « LDAP Integration » dans la catégorie « Integration ».

L'installation d'un serveur LDAP sera présentée au chapitre 9.2LDAP.

Une fois l'applet installée, il faudra la configurer dans le menu « Paramètres ».

Dans le premier écran « Serveur », il faudra entrer :

  • l'adresse du serveur : dans notre exemple ldap://127.0.0.1 (dans ce cas, un serveur LDAP installé sur la même machine que ownCloud, à adapter à votre situation), puis cocher « Détecter le port » (cela ne fonctionnera pas si vous avez changé le port par défaut) ;
  • le nom d'utilisateur : dans notre cas d'exemple cn=admin,dc=developpez,dc=com ;
  • le mot de passe ;
  • le DN de base : dans notre cas dc=developpez,dc=com.

Une fois les éléments entrés, cliquez sur « Tester le DN de base », si vos informations sont correctes, vous aurez « configuration OK » :

Image non disponible

Cliquez ensuite sur poursuivre, puis basculez sur l'onglet attributs de login.

Sélectionnez ensuite Autres attributs : cn :

Image non disponible

Ne maîtrisant pas LDAP, les réglages ne sont peut-être pas optimaux, mais sont fonctionnels dans ce cas de figure.

Nous allons ensuite dans les réglages avancés :

Image non disponible

Dans les paramètres du répertoire (2), je saisis en suite « cn » dans le champ nom d'affichage de l'utilisateur. Si ce réglage n'est pas positionné, le nom d'utilisateur qui apparaîtra sera l'UUID de celui-ci (champ LDAP entryUUID).

Dans les Attributs spéciaux (3), je saisis également « cn » dans le champ règle de nommage du répertoire utilisateur, pour que le dossier contenant les fichiers de l'utilisateur ne soit pas l'UUID.

En cas de suppression du compte dans ownCloud, ceci n’impactera pas le compte LDAP, ce qui est logique, car d'autres services peuvent être utilisés par ce compte LDAP.

En cas de suppression du compte LDAP, l’utilisateur ne pourra plus s'identifier, mais son compte reste présent dans la liste des utilisateurs ownCloud ainsi que ses données. Il suffit de recréer le compte dans l'annuaire LDAP avec le même nom pour récupérer l'accès.

Il est beaucoup plus simple de gérer l'authentification directement depuis la base ownCloud, mais cela vous obligera à maintenir plusieurs bases d'authentification en cas d'autres services utilisés tels qu'un serveur mail.

4-2-9. Édition de documents en ligne

ownCloud dispose d'un connecteur OnlyOffice, ainsi que d'un connecteur Collabora.

Collabora est basé sur LibreOffice.

Dans les deux cas, il vous faudra effectuer le paramétrage depuis « Paramètres » → « suppléments », une fois le serveur installé (hors périmètre ownCloud).

4-2-10. Sauvegarde

Pour sauvegarder OwnCloud, il vous faut sauvegarder le dossier des données (dossier data) ainsi que la base de données.

4-2-11. Connexion à partir du client Windows

Image non disponible

La connexion au serveur se fait en HTTP/HTTPS :

Image non disponible

Nous avons la demande d'authentification :

Image non disponible

Une fois les identifiants saisis, vous aurez accès aux réglages par défaut :

Image non disponible

Image non disponible

La première partie permet le choix de récupérer les fichiers déjà présents sur le serveur, la seconde concerne les dossiers à synchroniser, où préciser ce que vous souhaitez synchroniser. Ce sera par défaut le dossier ownCloud stocké dans votre profil utilisateur, vous pouvez changer celui-ci.

Une fois la connexion effectuée, vous aurez une icône dans la barre des tâches, ouvrant le tableau de bord ownCloud. Vous serez par défaut sur l'onglet « Activité », montrant les derniers fichiers synchronisés.

Image non disponible

L’icône « Paramètres » donne accès aux réglages tels que le démarrage automatique d'ownCloud quand le système démarre, et aussi l'accès à une liste des fichiers exclus.

Par défaut, les fichiers cachés ne sont pas synchronisés, il faut entrer dans la liste des exclusions pour cocher leur synchronisation.

Image non disponible

L’icône réseau permet d'indiquer un proxy si ceci est nécessaire, et de limiter l'usage de la bande passante si vous le souhaitez.

L’icône utilisateur vous permet de changer les réglages de synchronisation, forcer la mise à jour de la synchronisation. Une autre option intéressante : la possibilité de synchroniser plusieurs comptes, dans ce cas, ownCloud va créer par défaut un autre dossier (owncloud2 dans mon cas, l'application va créer un dossier avec le nom incrémenté). Vous aurez ensuite une nouvelle icône concernant le nouvel utilisateur.

Image non disponible

Pour ajouter un compte, il faut cliquer sur le bouton compte, puis ajouter un nouveau compte. Vous pouvez à partir de ce bouton vous déconnecter ou supprimer le compte.

Le ou les dossiers contenant les données synchronisées ne sont pas supprimés.

4-2-11-1. Partage de documents

Nous avons vu comment partager un document depuis l'interface web. Il est également possible de le faire depuis l'explorateur de fichiers.

Image non disponible

Image non disponible

L'onglet lien public permet de générer un lien accessible depuis une URL (avec ou sans mot de passe et possibilité d'expiration), si l'administrateur ownCloud vous le permet :

Image non disponible

Vous pourrez envoyer directement le lien par mail, le copier dans le presse-papier, etc.

Le destinataire aura un lien tel que celui-ci :

Image non disponible

Un test de partage de fichier RTF m'a provoqué l'affichage du contenu du fichier RTF comme un document texte, alors qu'un document avec une extension inconnue va afficher un simple logo générique.

Versions des documents

Il n'est pas possible d'accéder aux versions des documents depuis le client, l'accès doit se faire depuis l'interface web.

Suppression de documents

La suppression d'un document déclenche sa suppression immédiate sur le serveur (enfin son déplacement vers la corbeille). Le document est restaurable depuis la corbeille Windows/Linux/Mac OS. Vous perdrez par contre l’historique des versions.

4-2-12. Agenda partagé

Pour avoir accès à l'agenda, il faut commencer par activer l'applet correspondante. Vous trouverez celle-ci dans le market (accès réservé aux administrateurs) :

Image non disponible

Vous aurez alors accès aux applets rangées par catégorie.

Image non disponible

L'ordre d'affichage des icônes dépendra de votre résolution d'écran. Ne soyez donc pas surpris de les voir dans un ordre différent.

L'applet calendrier se trouve dans la section « Productivity » :

Image non disponible

Il suffit de cliquer sur l'image de l'applet, puis sur le bouton « Installer ».

Image non disponible

Une fois celle-ci installée, elle est disponible dans le menu en haut à gauche :

Image non disponible

Image non disponible

Image non disponible

Vous pourrez ajouter des participants en appuyant sur plus :

Image non disponible

Vous pouvez déplacer un rendez-vous par simple glisser-déplacer.

4-2-12-1. Installation dans Thunderbird

Nous aurons besoin pour commencer du lien CalDAV généré par ownCloud. Nous le trouverons en cliquant sur les … à côté du nom de l'agenda :

Image non disponible

Dans mon cas : http://192.168.56.116/remote.php/dav/calendars/test/personal/

Pour intégrer un agenda CalDAV, il vous faudra aller dans le menu fichier->nouveau->agenda

Sélectionner ensuite agenda sur le réseau :

Image non disponible

Il faudra ensuite sélectionner « CalDAV » et entrer l'URL indiquée dans l'interface web.

Image non disponible

Image non disponible

Après un nom d'agenda, Thunderbird vous demandera l’identifiant et le mot de passe :

Image non disponible


Votre agenda est ensuite disponible :

Image non disponible

Pensez à faire attention à l'agenda où est stocké l’événement, il y a toujours un agenda local. Mettez l'agenda en ligne par défaut. Vous pouvez désactiver l'agenda local si vous ne l'utilisez pas.

En cas de déconnexion réseau, si le mode hors connexion a bien été coché lors de la création de l’agenda dans Thunderbird (par défaut), vous pourrez toujours modifier l'agenda. Lors de votre retour sur Internet, il y aura un petit ralentissement, le temps de la resynchronisation.

4-2-12-2. Calendrier avec Outlook

Il nous faut installer l'application caldav synchroniser disponible sur SourceForge :

https://sourceforge.net/projects/outlookcaldavsynchronizer/

L’application requiert Visual C 2010 redistributable et .net framework 4.5 qui seront installés automatiquement si nécessaire.

Une fois l'installation terminée un onglet supplémentaire apparaîtra dans Outlook :

Image non disponible

Image non disponible

Ceci va ouvrir la fenêtre de gestion des profils à partir de laquelle nous allons ajouter un profil :

Image non disponible

Nous cliquons sur le plus pour avoir l'écran suivant :

Image non disponible

Nous restons sur « générique » et entrons ensuite les paramètres :

Image non disponible

Je sélectionne le dossier de synchronisation du calendrier et rentre les paramètres :

Image non disponible

Image non disponible

Image non disponible

Image non disponible

Vous pouvez régler le sens de la synchronisation (bi-directionel, Outlook vers serveur, serveur vers Outlook) et la fréquence de celle-ci.

Contrairement à Thunderbird, la synchronisation se fait depuis l'agenda local (on peut sélectionner le dossier de synchronisation, il est donc possible de créer un agenda spécifique dans le fichier Outlook par défaut ou dans un fichier Outlook secondaire présent dans le profil.

Comme nous sommes en train de parler de Outlook, j'en profite pour vous informer qu'un plugin payant permet d'interfacer Outlook avec Owncloud. Celui-ci étant payant, il n'a pas été testé.

4-2-13. Utilisation depuis Mac OS X ou iOS avec l'application Calendrier

L'application Calendrier (anciennement nommée iCal) synchronise les agendas sur la solution cloud d'Apple iCloud via le protocole CalDAV. Il suffit donc de se connecter via CalDAV sur le serveur ownCloud.

L'URL de connexion pour calendrier est différente que pour les autres serveurs.
Adresse normale :
http://adresse IP/remote.php/dav/
Adresse pour iOS/OS X :
http://adresse IP/remote.php/dav/principals/users/test/

Pour créer le compte, il faut aller soit dans fichier/comptes de l'application Calendrier, soit dans préférences systèmes/comptes Internet.

Vous aurez alors l'écran suivant, où il faudra sélectionner « compte CalDAV » :

Image non disponible

Si vous passez par le menu pomme → préférences systèmes → comptes Internet, il faudra sélectionner « autre » sur le premier écran pour avoir accès à CalDAV (ou CardDAV pour les contacts que nous verrons plus tard).

Il faudra ensuite sélectionner manuel dans le champ « type de compte » et entrer les identifiants et l'URL de connexion :

Image non disponible

Vous pourrez ensuite régler la fréquence de synchronisation, ainsi que les réglages d'affichage de l'agenda (heure début-fin de journée, etc.) :

Image non disponible

4-2-14. Partage de contacts

Il faut tout d'abord activer l'application dans ownCloud, tout comme pour l'agenda :

Image non disponible

Tout comme pour l'agenda, une icône supplémentaire sera ajoutée dans la barre de gauche (Image non disponible).

Tout comme pour le calendrier, nous récupérons le lien (CardDAV) :

Image non disponible

Dans mon exemple : http://192.168.56.116/remote.php/dav/addressbooks/users/test/contacts/

4-2-14-1. Thunderbird

Nous allons utiliser l'extension Thunderbird CardBook que nous téléchargeons et installons depuis le menu « Outils » → « modules supplémentaires ». Après redémarrage, il faudra intégrer les carnets d'adresses de base à CardBook.

Image non disponible

Image non disponible

Par défaut CardBook va rechercher les carnets d'adresses sur les comptes mails paramétrés. Si les services sont compatibles CardDav, CardBook chargera les contacts externes dans un carnet d'adresses.

Il faudra ensuite ouvrir l'écran CardBook par le menu « Outil » → « CardBook », puis cliquer sur le bouton droit de la souris depuis la partie gauche :

Image non disponible

Il faudra ensuite choisir « nouveau carnet d'adresses », sélectionner « carnet d’adresses distant » puis renseigner l'URL et les identifiant/mot de passe via le protocole CardDAV.

Image non disponible

Image non disponible

Le lien CardDAV est disponible dans les paramètres des contacts depuis l'interface web, comme vu au chapitre précédent.

Il vous faudra cliquer sur valider après avoir rempli les champs URL, identifiant et mot de passe pour pouvoir cliquer sur suivant. Vous pourrez changer les réglages de synchronisation depuis l’icône « Préférences », puis l'onglet « Synchronisation ».

Vous pourrez ensuite nommer le carnet d’adresses et choisir sa couleur :

Image non disponible

Le carnet d'adresses sera alors disponible et il sera possible de régler les préférences de synchronisation en cliquant sur « Préférences » :

Image non disponible

 

Pour les réglages de synchronisation :

Image non disponible

4-2-14-2. Outlook

Pour Outlook, nous avons déjà ce qu'il faut : outlookcaldavdsynchronizer, vu au chapitre sur les calendriers. Il suffit de dupliquer le profil existant via l’icône Image non disponible depuis le gestionnaire de profils.

Bien que son nom n'évoque que calDAV, l'application est bien compatible CardDAV.

Il faudra ensuite sélectionner le dossier Outlook pour sélectionner les contacts, et changer l'URL par le lien CardDAV.

4-2-14-3. Application Apple Contacts pour OS X et iOS

Le principe est le même que pour l’application Calendrier, il faut ajouter un compte CardDAV en prenant le lien :

http://192.168.56.121/remote.php/dav/addressbooks/users/test/contacts/

Adapter l'URL à votre situation.

4-2-15. Outils collaboratifs

4-2-15-1. OnlyOffice – modification de documents bureautique en ligne

OnlyOffice est une suite collaborative. Il existe une version communautaire, gratuite. ownCloud fournit un connecteur pour un serveur OnlyOffice. OnlyOffice devra être installé au préalable.

OnlyOffice n'a pas été testé dans le cadre de ce tutoriel.

Sur Nextcloud, un système OnlyOffice Community peut être installé, ceci n'a pas été testé dans le cadre de ce tutoriel.

4-2-15-2. Collabora

Collabora est un produit concurrent d'OnlyOffice. ownCloud et Nextcloud gèrent l'intégration d'un serveur Collabora.

4-2-16. Utilisation avec un cluster de bases de données

Dans le cadre de l'utilisation d'un cluster de bases de données (MariaDB dans notre cas), vous aurez le message d'erreur suivant :

Image non disponible

Ceci pourra être corrigé en changeant le format des journaux binaires dans les fichiers de configuration :

 
Sélectionnez
binlog_format = MIXED

Il faudra redémarrer le serveur SQL.

4-2-17. Panne serveur

En cas de perte totale du serveur, si celui-ci n'a pas de redondance et se retrouve vide, lors de la reconnexion du poste client, celui-ci vous affichera l'avertissement suivant :

Image non disponible

Le client ownCloud détecte que le compte distant est vide et vous propose soit de conserver le contenu du dossier de synchronisation, soit d'effacer le contenu. Si vous choisissez « conserver », ceux-ci seront resynchronisés sur le serveur, si vous choisissez « supprimer », les fichiers locaux seront supprimés. Les dossiers locaux et distants seront alors synchrones.

Pour l'agenda Outlook, le clic sur l’icône Image non disponible « clear cache of selected profile » des profils CalDAV Synchronizer a permis de refaire une synchronisation.

Pour Thunderbird, si la synchronisation après réinstallation pose problème, il suffira de supprimer l'agenda en faisant un clic droit → se désabonner de l'agenda. Il vous faudra d'abord le sauvegarder en faisant un clic droit → exporter. Une fois le compte recréé, pour importer la sauvegarde, il faudra aller dans le menu « événement et tâches » plutôt que par un clic droit de la souris. Thunderbird vous demandera dans quel agenda importer les éléments. Ceci ne sera pas nécessaire si une sauvegarde de la base ownCloud a été remontée.

Pour Calendrier Apple, le test n'a pas été fait, mais le principe est le même. Il faudra exporter le calendrier en format .ics (sélectionner « Exporter », pas archiver : une archive restaurée écrase le contenu déjà présent) pour le réimporter ci-besoin.

4-2-18. Utilisation en ligne de commande

ownCloud est fourni avec un outil en ligne de commande pouvant être appelé via php occ <option> depuis le dossier contenant l'installation ownCloud. occ est également présent dans Nextcloud.

4-2-19. Redondance d’une instance Nextcloud

Prérequis

Pour avoir une redondance d'une instance ownCloud, le dossier contenant les données devra être stocké dans un système de fichiers distribué. La base de données devra faire partie d'un cluster de bases de données.

Pour gérer cet aspect, je vous invite à consulter le paragraphe sur la création d'un cloud personnelÉtude de création de notre propre cloud.

Il est nécessaire de copier les fichiers PHP de Nextcloud depuis srv1 vers srv2 via scp.

Ensuite, il est nécessaire d’installer les dépendances de Nextcloud : php7-curl, memcached, php7-memcached.

La première connexion sur le nouveau serveur donne le message suivant :

Image non disponible

Suite au clic :

Image non disponible

Ceci va rajouter une entrée dans le tableau trusted_domains de config/config.php de srv1.

Il nous faut donc recopier ce fichier modifié dans srv2.

Vous pourrez ensuite utiliser un système de load balancingRépartition de charge.

4-3. YunoHost - L'autohébergement

YunoHost est une distribution incluant des logiciels packagés et ayant pour but de faciliter l'autohébergement. La distribution intègre un serveur LDAP qui sera utilisé par toutes les applications packagées pour leur authentification (via authentification unique utilisant SSO). Il intègre également un serveur mail (PostFix/Dovecot/rspamd).

Yunohost permet la gestion de plusieurs domaines.

4-3-1. Installation sur machine vierge

Yunohost est fourni sous forme de DVD d’installation, basée actuellement sur Debian Buster (YunoHost version 4.0.3). Il s'agit d'un DVD d’installation qui a été personnalisé. Vous retrouverez donc les mêmes écrans qu'avec un DVD d'installation standard, mais vous ne pourrez faire aucune sélection mise à part la langue (exemple : pas d'accès au partitionnement du disque, pas de choix des paquets).

Yunohost fournit une ISO 64 bits, 32 bits, et des ISO pour Raspberry Pi ainsi que pour Orange Pi. Yunohost fournit également une image de machine virtuelle au format Virtualbox.

Il vous sera également possible de l'installer sur un système existant.

Commençons par voir la version CD :

Image non disponible

Une fois la langue et le clavier sélectionnés, l'installation est automatique.

Vous ne pourrez pas intervenir sur le partitionnement du disque. Par ailleurs, le « expert install » retourne l'erreur :
« Le fichier prérequis nécessaire à la configuration n'a pas pu être téléchargé à l'adresse file://cdrom/simple-cd/advanced.preseeed ».

Si la machine contient des données, YunoHost effacera celles-ci sans demander de confirmation.

Au redémarrage après l'installation, vous aurez l'écran de postinstallation suivant :

Image non disponible

Nous répondrons bien entendu par « yes ».

Nous sera alors demandé le domaine principal.

 
Sélectionnez
Domaine principal :
Mot de passe :

Des messages de notifications seront affichés dans la console indiquant la configuration des différents services. La machine sera prête quand vous aurez le message :

 
Sélectionnez
Succès ! Yunohost a été configuré

Il nous restera à régler l'adresse IP. Pour cela, il faudra ouvrir une session avec le login « admin » et le mot de passe communiqué précédemment (admin est un compte sudoer). Nous pourrons ensuite fixer l'adresse dans le fichier /etc/network/interfaces.

La suite de la configuration se passera depuis le navigateur web. À la première connexion, vous aurez une alerte du navigateur « votre connexion n'est pas privée », le certificat étant autosigné. Il vous sera possible de paramétrer vos certificats ultérieurement. YunoHost intègre la génération d'un certificat Lets'Encrypt et vous pourrez intégrer vos propres certificats émis depuis une autorité de certification si vous en possédez.

4-3-2. Installation sur système existant

Une version Debian Stretch sera requise.

Nous commençons par récupérer le fichier de dépôt :

 
Sélectionnez
wget https://install.yunohost.org -–no-check-certificate

Ceci va télécharger un fichier index.html suivi de :

 
Sélectionnez
bash < index.html

Le script échouera si Apache est installé, notifiant dans les journaux que celui-ci peut entrer en conflit avec nginx, serveur web utilisé par Yunohost.

Yunohost va alors installer les paquets dont il a besoin :

Image non disponible

Vous aurez ensuite une demande de confirmation concernant l'écrasement de fichiers de configuration, au cas où des configurations sont présentes pour les services indiqués :

Image non disponible

Une fois l'installation des paquets terminée, il vous sera demandé de faire la postinstallation :

J'ai lancé la postinstallation depuis la ligne de commande :

 
Sélectionnez
yunohost tools postinstall

L'installation s'est ensuite finalisée, après avoir entré le nom de domaine et le mot de passe tout comme pour l’installation depuis l'ISO.

La version ISO utilise automatiquement LVM, il sera à votre charge de le faire de façon à pouvoir facilement augmenter l'espace de stockage, voire utiliser un volume réparti pour monter les données Yunohost.

4-3-3. Prise en main

La première connexion devra se faire sur l'URL https://votre_ip/admin :

Image non disponible

Une fois le mot de passe saisi, vous aurez l'écran suivant :

Image non disponible

Pour gérer le certificat, il faudra aller dans le menu « Domaines », sélectionner le domaine présent, puis gérer les certificats :

Image non disponible

Vous pourrez créer gratuitement un certificat Let's Encrypt. Si vous avez déjà vos propres certificats, il vous faudra les installer à la main depuis le terminal, l'interface graphique ne proposant que la génération d'un certificat autosigné ou let's Encrypt.

La prochaine étape sera de créer un utilisateur :

Image non disponible

Image non disponible

À ce stade, vous pourrez accéder à l'interface utilisateur, interface par défaut lors de l'accès :

Image non disponible

Voici l'interface de connexion pour un utilisateur standard :

Image non disponible

À la connexion, vous aurez un écran comme ci-dessous. Vous pouvez retourner à l'interface d'administration en cliquant sur le lien « Administration » :

Image non disponible

Il n'y a pas beaucoup d'options actuellement au niveau de la connexion utilisateur, aucune application n'étant installée. Nous allons maintenant installer les applications que nous souhaitons utiliser.

Allons voir ce qui est disponible dans Applications (depuis l'interface d’administration) :

Image non disponible

Image non disponible

En cliquant sur « Installer », vous aurez une sélection d'applications par type :

Image non disponible

Si nous cliquons par exemple sur synchronisation, nous pouvons voir qu'il est possible d'effectuer un filtrage supplémentaire (fichiers, calendriers, contacts, mots de passe, autres) :

Image non disponible

Voici les principales applications (liste non exhaustive) :

  • synchronisation de fichiers : Nextcloud, Seafile, Syncthing (pour ceux que nous verrons ultérieurement) ;
  • synchronisation d'agenda : AgenDAV, Nextcloud ;
  • synchronisation de contacts : Baikal (CardDAV, CalDAV), Nextcloud ;
  • gestionnaires de mots de passe : bitwarden, keeweb ;
  • gestionnaire de favoris : Firefox sync server ;
  • CMS : Drupal, SPIP, WordPress ;
  • Wiki : MediaWiki, dokuwiki ;
  • Messagerie : Horde, Roundcube (YunoHost intégrant un serveur mail) ;
  • CRM/ERP : Dolibarr ;
  • phpMyadmin : le fameux gestionnaire de bases de données MySQL.

4-3-4. Installation d'application

4-3-4-1. Exemple d'installation de Nextcloud

Nous commençons par installer Nextcloud.

En sélectionnant Nextcloud, vous aurez l'écran suivant :

Image non disponible

Vous pourrez choisir :

  • le libellé de l'application tel qu'il apparaîtra dans Nextcloud ;
  • le nom de domaine ;
  • le chemin/l'url ;
  • le compte administrateur Nextcloud : à sélectionner dans la liste des comptes existants (seul celui-ci pourra installer les applets Nextcloud) ;
  • une case à cocher « Accéder au dossier personnel des utilisateurs depuis Nextcloud ».

Les réglages par défaut conviendront très bien. Je vous conseille la création d'un compte spécifique pour l'administration de Nextcloud. N'oubliez pas de cocher la case si vous souhaitez que Nextcloud accède aux données hors Nextcloud.

La version Nextcloud fournie est la version 18 (la version 19 est disponible au moment de la réalisation de ce tutoriel).

Une fois « Installer » cliqué, vous verrez la sortie de l’application un « pacman » défilant comme une barre de progression et représentant le traitement en cours. Vous pouvez voir en haut les commandes exécutées :

Image non disponible

Si vous cliquez sur la barre, vous pourrez voir le détail :

Image non disponible

Une fois l'installation effectuée, tous les utilisateurs auront accès par défaut à l'application. Si vous souhaitez filtrer l'accès, il faudra cliquer sur l'application et sélectionner les utilisateurs autorisés en cliquant sur « Accès » :

Image non disponible

Image non disponible

Depuis l'interface utilisateur, vous aurez ensuite accès à l'application :

Image non disponible

En cliquant sur l’icône, vous aurez accès à Nextcloud directement sans devoir vous identifier. Je vous invite à revenir au paragraphe précédent pour de plus amples informations sur Nextcloud. Pour ce qui est de la gestion du calendrier (et des contacts via le protocole CardDAV), vous pourrez installer les modules de Nextcloud (choix que je privilégierais), ou utiliser d'autres applications fournies par Yunohost comme Baikal (serveur CalDAV/CardDAV)/agenDAV).

Option bien pratique : il est possible de revenir au menu des applications en cliquant sur l’icône « Yuno Host » qui vient s'afficher en bas à droite des écrans des applications. Cette fonction n'est pas accessible pour toutes les applications.

Image non disponible

Se déconnecter de Nextcloud depuis le menu en haut à droite vous déconnectera de Yunohost et vous renverra vers l'écran de connexion de celui-ci.

Les données de Nextcloud seront stockées dans /home/yunohost.app/nextcloud/data. Et ensuite un dossier pour chaque utilisateur.

Le site web Nextcloud va lui se trouver dans /var/www/nextcloud.

Pour mettre à jour vers une version plus récente, il vous faudra activer l'applet « update notification » que vous trouverez dans (1) Applications → (2) Applications désactivées.

Image non disponible

Après déconnexion et reconnexion, en allant dans le menu « Paramètres » → « administration » → « vue d'ensemble », vous pourrez effectuer une mise à jour :

Image non disponible

Nous pouvons voir que nous sommes en version 18 et que la version proposée est la version 18.0.4.

Cliquer sur « ouvrir le système de mise à jour » va afficher l'écran suivant :

Image non disponible

La procédure se déclenchera via l'appui sur « Start Update ».

Une fois les opérations effectuées, Nextcloud va vous proposer de laisser ou non le mode maintenance actif. Comme nous ne souhaitons pas utiliser le mode en ligne de commande, nous choisissons « no » :

Image non disponible

Il faudra ensuite cliquer sur « go back to your nextcloud instance… », qui vous affichera l'étape suivante :

Image non disponible

Une fois l'opération effectuée, vous serez automatiquement redirigé vers l'interface de Nextcloud.

En modifiant le canal de mise à jour de Stable à Beta, j'ai pu avoir accès à la version 19.0.0.

Le fait de changer de version majeure peut vous exposer à la disparition de certaines applets dépréciées ou remplacées.

4-3-4-2. Roundcube

Roundcube est un webmail répandu écrit en PHP. L'installation se déroule de la même façon, la seule différence étant la case à cocher concernant le plugin de synchronisation CardDAV.

Votre nom et adresse mail vous sera demandé lors du premier démarrage (mauvaise configuration de mon serveur de test ?) :

Image non disponible

Les carnets d'adresses ne reprennent pas automatiquement les contacts YunoHost. Il semble que la configuration prévoit par défaut l'utilisation de l'application Baikal. Il devrait être possible de lier Roundcube aux contacts Netxcloud via l'ajout d'un carnet d'adresses CardDAV,

4-3-4-3. WordPress

L'installation s’effectuera de la même façon. Les options spécifiques que vous pourrez choisir :

  • l'utilisateur YunoHost administrateur du site ;
  • la langue ;
  • option multisite (décoché par défaut) ;
  • option site public (coché par défaut – ne pas confondre avec les droits WordPress).

L'accès se présentera comme ceci :

Image non disponible

L'administration se fera par défaut via [URL du wordpress]/wp-admin comme pour tout site WordPress.

À la connexion au WordPress, j'ai pu constater que la version actuelle était 5.4.

La mise à jour de WordPress, des extensions et des thèmes n'a posé aucun problème. L'installation de plugins additionnels ne posant pas non plus de problème.

Le site Wordpress sera stocké dans /var/www/wordpress.

4-3-4-4. phpMyAdmin

Il vous faudra choisir le seul utilisateur autorisé à se connecter (vu comme administrateur phpMyAdmin). L’icône d'accès ne sera logiquement ajoutée que dans celui-ci, le clic dessus lancera l'interface sans demande d'authentification (authentification SSO - Single Sign-On). Taper l'URL d'accès à phpMyAdmin depuis un autre compte n'aura aucun effet.

Depuis l'interface phpMyAdmin, il n'est pas possible de sortir de celle-ci.

4-3-5. Sauvegarde/restauration

YunoHost intègre un mécanisme de sauvegarde.

4-3-5-1. Sauvegarde

Pour effectuer une sauvegarde, il faudra aller dans le menu idoine :

Image non disponible

Image non disponible

Vous pouvez voir que les sauvegardes sont stockées dans /home/yunohost.backup. Si vous souhaitez effectuer une sauvegarde à un autre endroit, il vous suffit de faire un point de montage de votre volume sur cette destination.

Nous lançons la sauvegarde :

Image non disponible

Dans l'écran suivant, vous pourrez choisir ce que vous voulez sauvegarder :

  • les données système ;
  • la configuration ;
  • les mails ;
  • les données utilisateurs (dossier home) ;
  • les applications, dans notre exemple :

    • Nextcloud,
    • phpMyAdmin,
    • roundcube,
    • WordPress.

Vous obtiendrez alors une sauvegarde sous forme d'archive .tar.gz accompagnée d'un fichier d'information .json :

Image non disponible

Le nom du fichier correspondant à la date de celle-ci encodée, stockée dans /home/yunohost.backup/archives.

En explorant l'archive, nous retrouvons les données de Nextcloud (chemin apps/nextcloud/backup/home/yunohost.app/nextcloud/data/*), le site WordPress (apps/wordpress/backup/var/www/wordpress/*), les mails (data/home/vmail/*). Nous voyons aussi des fichiers db.sql dans les dossiers d'applications correspondant aux dumps des bases de données les concernant.

4-3-5-2. Restauration

J'ai simulé une panne en réinstallant un serveur de zéro.

Une fois celui-ci réinstallé, il faut uploader la sauvegarde dans le dossier /home/yunohost.backup/archives.

Il m'a fallu créer le dossier archives dans /home/yunohost.backup. Celui-ci n'est créé que lors de la première sauvegarde.

Une fois la sauvegarde copiée, celle-ci apparaîtra dans le menu sauvegardes de YunoHost :

Image non disponible

Cliquer dessus permettra de voir le détail :

Image non disponible

Il suffira de cliquer « restaurer ». Comme vous pouvez le voir, celle-ci peut être partielle.

Vous aurez une demande de confirmation :

Image non disponible

Les applications seront installées si elles sont absentes.

4-3-5-3. Automatiser les sauvegardes

Pour automatiser les sauvegardes, il vous faudra utiliser la commande suivante depuis le terminal :

 
Sélectionnez
yunohost backup create

Cette commande va effectuer une sauvegarde complète. Il vous suffira de la lancer depuis un cron.

Si vous ne souhaitez sauvegarder qu'une application de façon à morceler les sauvegardes :

 
Sélectionnez
yunohost backup create --apps <nom de l'application>

Vous trouverez plus d'informations ici.

Pensez à faire des sauvegardes offline.

Pour les applications pouvant stocker beaucoup de données telles que Nextcloud, vous pouvez envisager d'utiliser un système de synchronisation comme rsync pour faire des sauvegardes incrémentales, en dehors du système de sauvegarde de Yunohost. Il est à noter que si vos utilisateurs utilisent le client Desktop pour synchroniser les données de leurs postes, celles-ci s'y trouvent. Mais je ne conseillerais pas de ne vous appuyer que sur cela pour les sauvegardes.

4-3-6. Mises à jour

Le lancement de « Mises à jour » sera l'équivalent de la commande :

 
Sélectionnez
apt-get upgrade

Avant de mettre à jour les paquets, vous aurez leur liste.

Yunohost vous proposera aussi une mise à jour de Yunohost si présente, ainsi que des applications Yunohost installées. Pour cela, il faudra vous rendre dans le menu « outils » → « migrations » :

Image non disponible

Vous voyez ci-dessus un écran correspondant à une ancienne version demandant une mise à jour vers Debian Stretch.

4-3-7. Bilan

Yunohost est une solution fournissant toutes les applications nécessaires à la création de son propre Cloud.

Dans le cadre de multiservices à héberger sur plusieurs machines avec tolérance de panne, l'utilisation manuelle des briques évoquées dans la partie création de notre propre cloud sera plus judicieux. Il reste possible de stocker les données dans un système de fichiers distribué, dans une base de données sur plusieurs machines.

5. Étude de création de notre propre cloud

Nous allons ici étudier la mise en place de notre propre cloud. Ce service pourra servir à titre personnel ou à titre professionnel.

Notre cloud proposera les services suivants :

  • la synchronisation/partage de documents ;
  • la synchronisation de contacts et calendriers ;
  • un serveur mail.

Ces services seront fournis soit par un seul produit, soit par une agrégation de produits. Le système pourra être réparti et redondant (voir les chapitres sur la répartition de charge et la haute disponibilitéSystèmes de fichiers distribués).

Par contre, nous ne verrons pas spécifiquement l'utilisation du cloud pour stocker une application métier, dans ce document. Tout ce qui est vu ici sera applicable pour une application métier.

Aussi, il est possible d’ajouter des clients lourds ou des applications accessibles à travers un site web et se connectant à un serveur proposant une base de données :

  • des Content Management System (CMS) ou système de gestion de contenu tel que WordPress, Joomla ;
  • des Customer Relationship Management (CRM) ou Enterprise Resource Planning (ERP), systèmes de gestion de clients tels que SugarCRM, Oddo (anciennement OpenERP) ;
  • des boutiques en ligne comme Prestashop ;
  • des systèmes de Gestion Électronique de Documents (GED) comme SeedDMS.

Des solutions en mode web seront plus faciles d'utilisation en cloud qu'un client lourd, mais rien n'empêche l'utilisation d'un client lourd tant que l’infrastructure le prévoit.

6. Les briques minimales

Pour réaliser notre cloud, il nous faudra :

À ce stade, nous aurons notre plateforme IaaS/PaaS sur laquelle nous pourrons ajouter les logiciels permettant d'avoir notre plateforme SaaS.

Tous ces services pourraient être gérés sur une seule machine, votre propre matériel stocké dans le centre de données d'un hébergeur, sur une machine louée chez celui-ci, ou même en ligne dans vos locaux. Dans ce dernier cas, il ne s'agira pas de cloud.

Toutes les briques peuvent être stockées sur une seule machine, mais cela n'aura pas de sens en termes de cloud, car le but du cloud est de répartir la charge, ne pas avoir de points de défaillance, et pouvoir facilement modifier augmenter/diminuer les ressources.

Sur ces briques, nous utiliserons des services de :

  • partage de fichiers ;
  • gestion d'agenda et de contacts.

6-1. Le cloud et la virtualisation

Il faut voir le cloud comme un accès à de la ressource et non à du matériel. Bien qu'il soit possible d'avoir un cloud ou de monter un cloud avec votre propre matériel dans une baie d’un centre de données, ou même chez vous, il est beaucoup plus simple d'avoir de la ressource virtualisée.

Un système de fichiers virtualisé permettra plus facilement de mettre en place une politique de redondance, de tolérance de panne et l'augmentation d'espace. L'usage de disques en RAID matériel vous permettra de pallier une panne disque, mais ne vous permettra pas d'agrandir facilement un volume. LVM vous permettra de facilement ajouter de l'espace en ajoutant par exemple un disque à un volume logique, vous permettra de facilement remplacer un disque en déplaçant son contenu d'un disque à l'autre, de créer des snapshots, voire d'utiliser un SSD en cache d'un disque mécanique. L’utilisation d’un système de fichiers distribué, comme nous allons le voir, vous permettra de gérer cela à plus grande échelle : il sera possible de sortir une machine contenant x disques du système pour la remplacer, et cela automatiquement. Le système de fichiers distribué se chargera de la répartition/duplication des données.

Même sans parler de cloud, utiliser un hyperviseur vous permettra de limiter le nombre de serveurs physiques à gérer (il faudra bien entendu une machine correctement dimensionnée) et de plus facilement le remplacer en déplaçant, d'une machine à l'autre, les machines virtuelles à chaud. Vous pourrez mettre en place une réplication et gérer de la répartition de charge.

L'intérêt d'utiliser des ressources mises à votre disposition par un hébergeur plutôt que votre propre matériel vous décharge de la surveillance matérielle de celui-ci, et vous permet de facilement augmenter ou diminuer les ressources que vous utilisez. La mise à disposition d'une machine virtuelle se fait en quelques minutes, voire quelques secondes ; solution qui vous demanderait en interne beaucoup de ressources ne serait-ce que par la préparation de templates (en temps passé et en matériel), vous monopolisant de la ressource pour un usage pas forcément fréquent. Chez un hébergeur, ce type de template n'occupe pas forcément de ressources de votre point de vue et n’est pas facturé si vous utilisez des templates prédéfinis par votre hébergeur.

6-2. Et les conteneurs dans tout ça ?

Un conteneur peut être vu comme un système de virtualisation léger, qui va servir à virtualiser une application ou un service (au sens démon Unix) plutôt qu'un OS complet. Contrairement à une machine virtuelle, un conteneur va partager le noyau de l'hôte. C'est un cloisonnement moins strict, mais demandant moins de ressources.

Les conteneurs prennent de plus en plus d'ampleur, et la plupart des fournisseurs de cloud fournissent du Container as a Service (CaaS).

Kubernetes est le système d'orchestration faisant référence et à la mode. Il est utilisé par la plupart des services cloud. Il vous permettra de déployer et de surveiller vos conteneurs.

6-3. Cadre des tests

Nos tests seront effectués depuis une distribution Debian 9 Stretch 64 bits. Au moment de la rédaction, Debian 10 Buster est la dernière version de la distribution, sortie le 6 juillet 2019. Celle-ci étant encore jeune, nous utilisons la version antérieure.

Les machines seront nommées srv1, srv2 et ainsi de suite. Aussi, le fichier hosts de chaque machine virtuelle doit permettre la correspondance entre l’adresse IP de la machine et son nom. Il est également possible d'utiliser un serveur DNS.

La compatibilité étant en général ascendante, le tutoriel pourra globalement s'appliquer aux versions système supérieures.

Les outils utilisés sont en général disponibles dans les autres distributions Linux.

Certaines commandes devront être adaptées comme remplacer :

 
Sélectionnez
/etc/init.d/mysql start

par :

 
Sélectionnez
service mysql start

ou :

 
Sélectionnez
systemctl mysql start

7. Synchronisation de fichiers

Nous allons commencer par présenter la fonction me paraissant la plus simple à implémenter : la synchronisation de fichiers. Il s'agit globalement d'une des fonctions les plus utilisées par le grand public. Nous remplacerons ici les solutions grand public comme Dropbox ou Google Drive, ou les solutions similaires comme Owncloud/Nextcloud que nous avons déjà étudié.

Nous n'évoquerons dans cette partie que l'aspect brique minimal bas niveau de synchronisation.

Dans cette partie, nous ferons abstraction de l'aspect répartition de charge/haute disponibilité/tolérance de panne. Nous supposerons que votre système de synchronisation s'appuie sur une seule machine ou que le système de haute disponibilité est opérationnel.

Plusieurs produits de synchronisation de fichiers ont été testés :

  • Seafile ;
  • Syncthing ;
  • SparkleShare ;
  • Pydio.

Dans les produits testés, Syncthing et Pydio ont une version serveur sous Windows, tous le produits testés ont un client windows.

Cette liste n'est pas exhaustive et ne tient compte que des solutions testées.

7-1. Seafile

Seafile dispose d'une version serveur pour Linux, Raspberry, et Windows. Il est installable sous Mac OS X via les macports.

Seafile propose un client pour Windows, Linux, et Mac OS X. Il y a une application pour Android et une pour iPhone/iPad.

Il existe deux éditions, une community edition gratuite et une version sous licence propriétaire pour les entreprises, utilisable sans licence jusqu’à trois utilisateurs.

Vous pouvez voir sur cette page les différences entre la version community et la version professionnelle.

Seafile travaille avec une base de données, et va utiliser soit sqlite, soit MySQL.

Seafile nécessite Python et les dépendances suivantes :

  • python-setuptools ;
  • python-imaging ;
  • python-mysqldb (ou python sqlite si utilisation de sqlite).

Nous pouvons les installer avec la commande suivante. Dans nos tests, nous utiliserons SQLite comme base de données.

 
Sélectionnez
apt-get install python-setuptools python-imaging python-sqlite sqlite3

L'installation s'effectue par le chargement d'un tar.gz depuis le site Internet.

Vous pouvez récupérer le fichier ainsi (mais il y a de grandes chances qu’une nouvelle version soit disponible, lien à vérifier sur le site web) :

 
Sélectionnez
wget https://download.seadrive.org/seafile-server_7.0.5_x86-64.tar.gz --no-check-certificate

Une fois le fichier tar.gz décompressé, l'installation s’effectue en lançant le script depuis le dossier contenant l’application décompressée :

 
Sélectionnez
setup-seafile.sh

Pour la version MySQL, il faut lancer le script setup-seafile-mysql.sh.

Au cours de l’installation, les informations suivantes vous seront demandées :

  • le nom du serveur ;
  • le domaine ou l’adresse IP du serveur ;
  • le chemin par défaut pour les données seafile (~/seafile-data par défaut) ;
  • le port à utiliser : 8082 par défaut.

seafile va créer ses dossiers (conf, logs, pids, ccnet) dans le dossier parent de l'installeur. Le dossier data par défaut proposé se situe également dans le dossier parent.

Une fois la configuration effectuée, il va falloir modifier le fichier conf/gunicorn.conf et modifier bind = "127.0.0.1:8000" par "0.0.0.0:8000" pour pouvoir utiliser toutes les interfaces, ou l'adresse IP de la carte réseau sur laquelle vous voulez que seafile fonctionne. Vous pouvez également changer le port d'écoute (8000).

Une fois la configuration effectuée, il faudra démarrer le service seafile :

 
Sélectionnez
seafile.sh start

puis seahub :

 
Sélectionnez
seahub.sh start

Au premier démarrage de seahub.sh, une adresse mail qui servira d'identifiant administrateur vous sera demandée dans la console, puis un mot de passe.

La connexion sur l'interface web se fera (par défaut) sur le port 8000 : http://addresse:8000

Image non disponible

Il faudra utiliser l'adresse mail préalablement renseignée.

Vous aurez accès à l'écran d'interface :

Image non disponible

Pour gérer vos documents, il vous faudra cliquer sur votre bibliothèque nommée « Ma bibliothèque ». Vous pourrez créer d'autres bibliothèques qui peuvent être vues comme des dossiers principaux.

Vous pourrez ensuite gérer vos documents :

Image non disponible

Le menu « importer » permet d'importer des documents ou dossiers.

Sur la ligne des fichiers, vous pourrez :

  • télécharger un document ;
  • partager un document ;
  • supprimer un document.

Les icônes sont explicites.

Sur la droite, vous aurez des liens permettant de voir les fichiers qui sont partagés avec vous ou que vous partagez.

7-1-1. Administration

Pour administrer les utilisateurs, il vous faudra depuis le compte administrateur cliquer sur l’icône en haut à droite (1), puis sélectionner « Administrateur système » (2) :

Image non disponible

Image non disponible

Dans l'interface Administration, vous pourrez :

  • gérer les utilisateurs et groupes ;
  • gérer les bibliothèques des utilisateurs (les supprimer, les partager, les transférer à d'autres utilisateurs) ;
  • gérer les équipements connectés ;
  • modifier les URL du serveur, le logo, l'image de fond.

Il est possible d'utiliser une connexion LDAP ou Active Directory. Mais vous devrez modifier la configuration du fichier ccnet.conf à la main. Rien n'est prévu dans l'interface graphique (du moins dans la partie graphique de la version communautaire). Exemple LDAP :

 
Sélectionnez
[LDAP]
HOST = ldap://192.168.1.123/
BASE = cn=users,dc=example,dc=com
USER_DN = administrator@example.local
PASSWORD = secret
LOGIN_ATTR = userPrincipalName

Pour plus de détails, veuillez consulter la documentation.

Depuis l'interface web utilisateur, vous pourrez télécharger et uploader les fichiers, les gérer (les supprimer, les renommer), créer un lien de partage, accéder à l'historique des différentes révisions.

La gestion de la rétention des versions se fait depuis la bibliothèque. Vous pourrez choisir :

  • pas d'historique ;
  • historique illimité ;
  • historique sur x jours.

Vous pourrez partager une bibliothèque avec d'autres utilisateurs ou groupes d'utilisateurs ou la transférer à un utilisateur.

Une bibliothèque peut contenir des dossiers.

Pour chaque bibliothèque, dossier, fichier, vous pouvez partager avec un utilisateur ou un groupe en lecture/écriture ou en lecture seule. Vous pouvez générer une URL de partage depuis l’icône Image non disponible sur la ligne de l'élément avec ou sans mot de passe de protection et avec ou sans expiration du lien.

7-1-2. Installation et utilisation du client

Une fois le client installé, lors de son premier démarrage, celui-ci vous demandera où stocker le dossier de synchronisation en local :

Image non disponible

Vous seront ensuite demandées les informations de configuration (URL du serveur, identifiants) :

Image non disponible

Vous pouvez choisir ou non une connexion automatique.

Vous aurez ensuite l'écran suivant :

Image non disponible

Un ajout ou modification de document sera répercuté sur le serveur.

Seafile ajoute un menu contextuel (uniquement disponible depuis le dossier synchronisé) :

Image non disponible

Ce menu – seulement disponible depuis le dossier synchronisé par Seafile – propose les options suivantes (le texte n'est pas traduit) :

  • get seafile download link ;
  • get seafile internal link ;
  • view file history.

La première option va fournir un lien pouvant être communiqué. Connaître ce lien permettra le téléchargement sans authentification. L'option « téléchargement direct » télécharge sans ouvrir de page.

La seconde option est un lien nécessitant une connexion. Nous pouvons constater que le nom du fichier apparaît dans le lien, contrairement à la première option.

La troisième option permet d'accéder à l'historique des modifications du fichier. Ceci ouvre une page web à partir de laquelle nous pourrons restaurer une version précédente :

Image non disponible

Pour synchroniser un dossier supplémentaire, il suffit de le sélectionner depuis le panneau seafile :

Image non disponible

Nous pouvons voir que le dossier « nouveau dossier » qui a été sélectionné apparaît comme nouvelle bibliothèque.

Celle-ci sera visible depuis l'interface web :

Image non disponible

Lors de la sélection du dossier, nous pouvons voir une option permettant le chiffrement :

Image non disponible

Il est possible d'utiliser HTTPS pour les dialogues, il faudra passer par Apache avec une configuration de virtualhost comme ci-dessous :

 
Sélectionnez
<VirtualHost *:443>
    ServerName www.myseafile.com
    # Use "DocumentRoot /var/www/html" for Centos/Fedora
    # Use "DocumentRoot /var/www" for Ubuntu/Debian
    DocumentRoot /var/www
    Alias /media  /home/user/seafile/seafile-server-latest/seahub/media

    RewriteEngine On

    <Location /media>
        Require all granted
    </Location>

    #
    # seafile fileserver
    #
    ProxyPass /seafhttp http://127.0.0.1:8082
    ProxyPassReverse /seafhttp http://127.0.0.1:8082
    RewriteRule ^/seafhttp - [QSA,L]

    #
    # seahub
    #
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>

Les chemins sont à adapter à votre situation.

Il faudra activer les modules rewrite et proxy_http :

 
Sélectionnez
a2enmod rewrite
a2enmod proxy_http

7-1-3. Bilan

Les fichiers stockés dans le dossier seafile-data ne sont pas exploitables tels quels, ils sont stockés sous forme de blocs avec des noms de fichiers sous forme de UUID. La perte des bases de données signifiera la perte des documents sur le serveur. Il est possible d’effectuer un montage FUSE avec la commande seaf-fuse en indiquant le point de montage :

 
Sélectionnez
./seaf-fuse.sh start /mnt

Dans le point de montage, vous allez trouver un dossier pour chaque utilisateur, qui va contenir un dossier par bibliothèque de l'utilisateur. Le nom du dossier de bibliothèque est composé d'un UUID suivi du nom de la bibliothèque. Les bibliothèques cryptées n’apparaîtront pas.

L'application Android fonctionne et m'a permis de modifier un document Word depuis l'application Word Android. Le document peut également être ouvert depuis stockage interne/seafile/nom utilisateur/[nom de la bibliothèque].

7-2. Syncthing

Syncthing est un système qui fonctionne en mode Peer 2 Peer, un peu comme BitTorrent. Des membres de la communauté mettent à disposition des serveurs de découverte, servant à mettre en communication deux postes devant se synchroniser. Ces serveurs ne participent pas au transfert de données. Vous pouvez utiliser vos propres serveurs de découverte, que vous pouvez ouvrir ou non à la communauté.

Syncthing est libre et écrit en Go.

Dans le cadre de ce tutoriel, nous installerons Syncthing sur une machine Linux qui se comportera comme un serveur dédié.

L'installation se fera via les dépôts de syncthing.

Vous pouvez aussi télécharger l'archive tar.gz sur le site de Syncthing.

Voici les commandes pour installer Syncthing :

 
Sélectionnez
wget https://syncthing.net/release-key.txt
apt-key add release-key.txt
apt-get update
echo 'deb https://apt.syncthing.net/ syncthing stable' >> /etc/apt/sources.list
apt-get update
apt-get install syncthing

Vous devrez peut-être installer le paquet apt-transport-https.

Dans les messages affichés sur la console, nous pouvons voir que par défaut, l'interface d'écoute est sur 127.0.0.1:8384.

Vous pourrez voir également des ouvertures de port vers l’extérieur que nous évoquerons plus tard.
Si vous exécutez syncthing en root, vous aurez un warning vous demandant d’exécuter celui-ci depuis un compte standard. Nous lancerons donc Syncthing depuis un compte non root.

Nous devons changer l'adresse d'écoute, qui par défaut est sur localhost. Pour cela, il faudra modifier le fichier config.xml se trouvant dans ~/.config/syncthing après avoir arrêté syncthing.

Il faudra descendre un peu dans le fichier jusqu’au bloc <gui …

Nous remplacerons donc la valeur dans le bloc <address>.

Appeler Syncthing tel quel va bloquer la console. Il faudra créer un démon de façon à pouvoir gérer le démarrage et l'arrêt.
Dans un premier temps, il sera possible d'ajouter une esperluette de façon à lancer l'application en tâche de fond :

 
Sélectionnez
syncthing &

Lors de la première connexion, vous aurez l'écran suivant :

Image non disponible

Par défaut, il n'y a pas de mot de passe, nous en avons un avertissement :

Image non disponible

Nous cliquons sur « Configuration » :

Image non disponible

Nous pouvons renommer le serveur via le champ « Nom convivial local de l'appareil ».

Entrons dans le second écran « interface graphique » :

Image non disponible

Nous pouvons également activer le support du HTTPS sur l'interface web.

Le navigateur nous retournera une alerte de sécurité, ceci à cause du certificat autosigné.

Une fois le mot de passe enregistré, nous aurons une fenêtre .htaccess d'authentification :

Image non disponible

La modification de la configuration a posteriori se fera par le menu « Actions » en haut à droite :

Image non disponible

Avant de gérer les partages, effectuons les réglages de connexion dans le dernier onglet de l'écran de configuration :

Image non disponible

Syncthing fonctionne en mode P2P (peer to peer). Les blocs de fichiers peuvent être transférés depuis plusieurs nœuds. Chaque machine participante peut être à la fois cliente et serveur. Dans un réseau P2P, la gestion peut être centralisée ou décentralisée. Les nœuds doivent connaître les machines participantes pour pouvoir télécharger les fichiers, c'est le rôle des serveurs de découverte. Toute machine peut être serveur de découverte ou utiliser les serveurs de découvertes publics fournis par syncthing ou des serveurs mis à disposition par les membres de la communauté.

Si vous cochez la case « découverte globale », votre machine sera, par défaut, serveur global de découverte).

Pour utiliser uniquement votre serveur de découverte, vous devrez installer le paquet syncthing-discosrv. Le serveur de découverte se lancera avec la commande service stdiscosrv start.

Voir la remarque précédente sur la création d'un démon.

Si vous souhaitez utiliser votre propre serveur de découverte, il vous faudra supprimer « default » dans le champ « serveurs de découverte globale ».

Une fois l'entrée supprimée, et la configuration enregistrée, Syncthing vous informera qu'il faut redémarrer :

Image non disponible

Au redémarrage, vous aurez l'avertissement suivant :

Image non disponible

Image non disponible

Syncthing ne sait pas quel serveur de découverte utiliser. Même si celui-ci est installé sur le même serveur, il faut lui renseigner son adresse IP précédée de https://.

7-2-1. Serveur de relais

Syncthing peut relayer des paquets entre deux machines si celles-ci ne peuvent pas communiquer en direct. Vous pouvez devenir relais et vous intégrer au pool de relais disponibles. Il vous faudra alors installer le paquet syncthing-relaysrv. Dans le cadre de ce tutoriel, nous n'utiliserons pas cette fonctionnalité et nous décocherons donc l'option « relayage possible ».

7-2-2. Création/modification des partages

Nous pouvons voir un « default folder » non partagé par défaut. En cliquant dessus, nous obtenons le détail :

Image non disponible

Nous pouvons voir que par défaut, le dossier partagé est ~/sync.

Vous pouvez l'activer, ou le supprimer et en créer d'autres (via les boutons ajouter, supprimer, gérer).

Les informations pertinentes seront :

  • le nom du partage (onglet général) ;
  • le dossier vers lequel celui-ci pointe (onglet général).

Le type de rétention du fichier dans l'onglet « Méthode de préservation des fichiers » avec :

  • pas de poubelle ;
  • style poubelle : les fichiers sont déplacés dans le dossier .stversion quand ils sont modifiés ou supprimés, il faudra indiquer le nombre de jours de conservation avant effacement définitif ;
  • suivi simplifié de version : les fichiers modifiés/supprimés sont déplacés dans .stversion avec horodatage. Il faut indiquer le nombre de versions à conserver ;
  • version échelonnée : un peu plus complète que le choix précédent, avec création d'un chemin relatif identique à l'emplacement d'origine. Pendant l'heure en cours, les versions sont conservées toutes les 30 secondes, au bout d'une journée, une version par heure est gardée, au bout de 30 jours, une version par jour est gardée, jusqu'à l'âge maximum (par défaut un an), une version est conservée par semaine ;
  • gestion externe : gérée par une commande externe à syncthing, commande à renseigner.

Options avancées :

  • intervalle d'analyse : impacte la fréquence de synchronisation et donc la bande passante utilisée ;
  • type de partage : lecture seule (appelée envoi) ou lecture écriture (appelée envoi/réception).

Je vous laisse tester ou consulter la documentation concernant les autres options.

7-2-3. Utilisation du client Windows

Après récupération du fichier .zip Windows sur la page de téléchargement, nous le plaçons sur le disque C (choix arbitraire).

L'exécutable est en ligne de commande (sans interface graphique). Il y a un outil annexe nommé syncthing-gtk pour pouvoir travailler depuis l'interface graphique.

Nous téléchargeons et installons ensuite syncthing-gtk et obtenons l'écran suivant :

Image non disponible

Nous activons le démon automatiquement.

Celui-ci va nous demander le chemin du démon que nous avons placé sur le disque C (à adapter si vous avez choisi un autre chemin) :

Image non disponible

Après autorisation de l’accès au pare-feu Windows, nous obtiendrons l’écran suivant, similaire à celui de l’interface web précédemment vue :

Image non disponible

Depuis le navigateur, à l’adresse http://127.0.0.1:8384, nous obtenons la même interface, interface que nous avons déjà vue sur la machine faisant office de serveur.

Nous allons maintenant jumeler notre client Windows avec la machine Linux, pour cela, nous récupérons l'id du Linux depuis le menu Actions :

Image non disponible

 

Celui-ci va nous donner un identifiant ainsi qu’un QR-Code :

Image non disponible

Dans le menu syncthing-gtk, nous ajoutons l'appareil :

Image non disponible

Nous cliquons « Ajouter un appareil » et renseignons les champs et surtout l’identifiant du serveur :

Image non disponible

Les tests étant effectués en local, j'ai forcé l'utilisation de la machine Linux pour la découverte des machines.

Au niveau du serveur, nous avons le message suivant :

Image non disponible

Une fois le bouton « Ajouter l'appareil » cliqué, les deux postes seront jumelés.

Nous avons ensuite le partage par défaut du Windows de test qui demande à être intégré :

Image non disponible

Dans le bas de l’écran, nous voyons que l’ordinateur wam-PC (le poste de test) est connecté.

Le dossier en provenance de wam-PC que nous nommons Commun va apparaître dans la liste des partages :

Image non disponible

À ce stade, les fichiers stockés dans le dossier partagé du Windows (%userprofile%\Sync) vont apparaître dans le dossier /home/[compte Syncthing]/commun et vice-versa, la synchronisation est opérationnelle.

7-2-4. Bilan

Ce système ne nécessite aucun serveur en interne. Il a par contre l'inconvénient de pouvoir poser des difficultés pour passer les pare-feu par son utilisation P2P. Il faut aussi accepter l'utilisation de serveurs tiers pour la découverte à moins d'en mettre en service en interne et d'en interdire (ou autoriser) l'accès aux utilisateurs tiers.

7-3. Sparkleshare

SparkleShare s'appuie sur Git pour synchroniser les données. Le fait d'utiliser Git permet d'avoir facilement une gestion des versions. Les données sont transmises cryptées (par le biais de SSH).

SparkleShare est téléchargeable directement depuis le site web. Pour la version Linux, que nous utiliserons en serveur, SparkleShare recommande l'utilisation de Flatpak, un système de conteneur/paquets.

Nous commençons par installer flatpak :

 
Sélectionnez
apt-get install flatpak ca-certificates

Le paquet ca-certificate est un prérequis

et indique la méthode d'installation :

 
Sélectionnez
flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.sparkleshare.SparkleShare

La commande renvoie :

 
Sélectionnez
Required runtime for org.sparkleshare.SparkleShare/x86_64/stable (org.gnome.Platform/x86_64/3.28) is not installed, searching...
Found in remote flathub, do you want to install it? [y/n]: y
Installing: org.gnome.Platform/x86_64/3.28 from flathub

Receiving delta parts: 0/10 13,8 MB/s 27,6 MB/268,4 MB 17 seconds remaining
10 delta parts, 81 loose fetched; 262039 KiB transferred in 315 seconds
Installing: org.freedesktop.Platform.ffmpeg/x86_64/1.6 from flathub

1 delta parts, 3 loose fetched; 2650 KiB transferred in 0 seconds
Installing: org.gnome.Platform.Locale/x86_64/3.28 from flathub

21 metadata, 82 content objects fetched; 2925 KiB transferred in 1 seconds
Installing: org.sparkleshare.SparkleShare/x86_64/stable from flathub

3 delta parts, 63 loose fetched; 93373 KiB transferred in 35 seconds
Installing: org.sparkleshare.SparkleShare.Locale/x86_64/stable from flathub

5 metadata, 1 content objects fetched; 2 KiB transferred in 0 seconds
root@Debian:~#

Pour installer SparkleShare, il faudra télécharger le script suivant :

 
Sélectionnez
wget https://raw.githubusercontent.com/hbons/Dazzle/master/dazzle.sh --no-check-certificate

Une fois le script rendu exécutable (chmod u+x), nous lancerons la commande :

 
Sélectionnez
./dazzle.sh setup

Ceci installera les dépendances, et finira par le message :

 
Sélectionnez
Setup complete!
To create a new project, run "dazzle create PROJECT_NAME".

Nous créons ensuite un partage, nommé « PROJECT » dans la nomenclature SparkleShare.

Puis nous créons le projet « TEST » :

 
Sélectionnez
./dazzle.sh create TEST

Ceci va créer un dépôt git nommé TEST dans le dossier /home/storage/TEST.

 
Sélectionnez
~# ./dazzle.sh create TEST
Creating project "TEST"...
  -> /usr/bin/git init --bare /home/storage/TEST
  -> /usr/bin/git config --file /home/storage/TEST/config receive.denyNonFastForwards true
  -> echo "*.DMG -delta" >> /home/storage/TEST/info/attributes
  -> chown --recursive storage:storage /home/storage
  -> chmod --recursive o-rwx /home/storage/TEST

Project "TEST" was successfully created.
To link up a SparkleShare client, enter the following
details into the "Add Hosted Project..." dialog:

      Address: ssh://storage@192.168.1.15:
  Remote Path: /home/storage/TEST

To link up (more) computers, use the "dazzle link" command.

~#

Il est possible de créer plusieurs dépôts/projets sur la même machine.

7-3-1. Installation du client sous Windows