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.
|
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
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.
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▲
|
|
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▲
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▲
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 :
Vous devrez ensuite sélectionner le disque où installer FreeNAS :
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 :
Il faudra ensuite sélectionner le boot via BIOS (legacy) ou via UEFI :
L'installation va ensuite se déclencher :
Il vous sera ensuite demandé de rebooter :
Au premier démarrage, vous aurez l'écran suivant :
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é :
Écran de l'interface web :
Nous commencerons par vérifier si des mises à jour sont disponibles en cliquant sur « check for updates » :
Nous continuons ensuite par passer le système en français, changer la langue du clavier, mettre à jour le fuseau horaire :
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é :
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 :
Cliquer sur « Ajouter » nous donnera accès à la création de volume :
Vous seront alors affichés les volumes disponibles, il faudra cocher le volume souhaité et lui donner un nom :
À 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.
Vous aurez une demande de confirmation, il faudra cocher la case pour pouvoir confirmer :
FreeNAS revient sur le premier écran permettant de créer un volume, nous voyons la liste des volumes :
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 :
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 :
Après avoir cliqué sur « Enregistrer », il vous sera demandé d'activer le service (en fait le service SMB :
Il vous sera alors demandé d'activer les ACL :
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 :
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 :
.
|
Ceci va créer un dossier iocages dans le volume freenas_data.
Je choisis pour l'exemple d'installer le plugin « Nextcloud » :
Une fois l'installation terminée, vous pourrez voir le plugin en dessous des icônes de plugins installables :
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 :
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 :
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) :
Vous sera ensuite demandé le nombre de CPU et de RAM à attribuer à la VM :
Ensuite, il vous faudra créer un disque virtuel ou en sélectionner un existant :
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 :
Vous pourrez ensuite choisir le support d'installation :
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é :
Vous aurez ensuite un écran de confirmation :
La machine virtuelle sera alors créée et visible dans la liste :
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 :
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 :
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.
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 :
En cas de volume de destination local, celui-ci devra être créé avant.
Le prochain écran concernera la planification.
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 :
4-1-3-6-4. Gestion avancée de l'alimentation des disques▲
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é▲
|
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▲
|
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) :
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.
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 :
Owncloud possède une extension « Owncloud X Enterprise Theme », mais payante. Celle-ci n'a pas été testée :
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 :
ownCloud requiert les paquets php-zip, php-dom, php-xml,php-gd,php-mb php-curl et php-intl :
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 :
service apache2 restart
Vous aurez ensuite l'écran suivant :
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▲
Vous aurez ensuite le premier écran de connexion (il faudra fermer la fenêtre d'accueil) :
Vous serez ensuite dans l'interface principale :
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 :
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 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 :
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 qui affichera un menu :
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 :
4-2-8. Administration▲
L'accès à l'interface d'administration s'effectue par l’icône crantée en haut à droite :
Pour revenir à l'écran des fichiers, il faudra cliquer sur paramètre à gauche :
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).
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.
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 .
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.
Dans le cadre du test, j'ai sélectionné une clé principale. Une fois le choix validé, il est demandé de se reconnecter.
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 :
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 :
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 à sa droite va supprimer les fichiers de celui-ci. Vous aurez une demande de confirmation :
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 » :
Cliquez ensuite sur poursuivre, puis basculez sur l'onglet attributs de login.
Sélectionnez ensuite Autres attributs : cn :
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 :
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▲
La connexion au serveur se fait en HTTP/HTTPS :
Nous avons la demande d'authentification :
Une fois les identifiants saisis, vous aurez accès aux réglages par défaut :
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.
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.
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.
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.
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 :
Vous pourrez envoyer directement le lien par mail, le copier dans le presse-papier, etc.
Le destinataire aura un lien tel que celui-ci :
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) :
Vous aurez alors accès aux applets rangées par catégorie.
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 » :
Il suffit de cliquer sur l'image de l'applet, puis sur le bouton « Installer ».
Une fois celle-ci installée, elle est disponible dans le menu en haut à gauche :
Vous pourrez ajouter des participants en appuyant sur plus :
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 :
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 :
Il faudra ensuite sélectionner « CalDAV » et entrer l'URL indiquée dans l'interface web.
Après un nom d'agenda, Thunderbird vous demandera l’identifiant et le mot de passe :
Votre agenda est ensuite 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 :
Ceci va ouvrir la fenêtre de gestion des profils à partir de laquelle nous allons ajouter un profil :
Nous cliquons sur le plus pour avoir l'écran suivant :
Nous restons sur « générique » et entrons ensuite les paramètres :
Je sélectionne le dossier de synchronisation du calendrier et rentre les paramètres :
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 » :
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 :
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.) :
4-2-14. Partage de contacts▲
Il faut tout d'abord activer l'application dans ownCloud, tout comme pour l'agenda :
Tout comme pour l'agenda, une icône supplémentaire sera ajoutée dans la barre de gauche ().
Tout comme pour le calendrier, nous récupérons le lien (CardDAV) :
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.
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 :
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.
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 :
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 » :
Pour les réglages de synchronisation :
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 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 :
Ceci pourra être corrigé en changeant le format des journaux binaires dans les fichiers de configuration :
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 :
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 « 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 :
Suite au clic :
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 :
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 :
Nous répondrons bien entendu par « yes ».
Nous sera alors demandé le domaine principal.
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 :
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 :
wget https://install.yunohost.org -–no-check-certificate
Ceci va télécharger un fichier index.html suivi de :
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 :
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 :
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 :
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 :
Une fois le mot de passe saisi, vous aurez l'écran suivant :
Pour gérer le certificat, il faudra aller dans le menu « Domaines », sélectionner le domaine présent, puis gérer les certificats :
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 :
À ce stade, vous pourrez accéder à l'interface utilisateur, interface par défaut lors de l'accès :
Voici l'interface de connexion pour un utilisateur standard :
À la connexion, vous aurez un écran comme ci-dessous. Vous pouvez retourner à l'interface d'administration en cliquant sur le lien « Administration » :
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) :
En cliquant sur « Installer », vous aurez une sélection d'applications par type :
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) :
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 :
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 :
Si vous cliquez sur la barre, vous pourrez voir le détail :
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 » :
Depuis l'interface utilisateur, vous aurez ensuite accès à l'application :
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.
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.
Après déconnexion et reconnexion, en allant dans le menu « Paramètres » → « administration » → « vue d'ensemble », vous pourrez effectuer une mise à jour :
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 :
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 » :
Il faudra ensuite cliquer sur « go back to your nextcloud instance… », qui vous affichera l'étape suivante :
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 ?) :
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 :
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 :
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 :
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 :
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 :
Cliquer dessus permettra de voir le détail :
Il suffira de cliquer « restaurer ». Comme vous pouvez le voir, celle-ci peut être partielle.
Vous aurez une demande de confirmation :
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 :
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 :
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 :
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 » :
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 :
- un système de fichiers (filesystem) répartis et/ou distribué (chapitre 8Systèmes de fichiers distribués) ;
- un système de centralisation de la gestion des accès (login/mots de passe), compatible avec tous les services utilisés, et répliqué (chapitre 9Centralisation de la gestion des accès) ;
- des bases de données répliquées (chapitre 10Réplication/clustering de bases de données) ;
- un système de répartition de charges / tolérance de panne (chapitre 11Répartition de charge).
À 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 :
/etc/init.d/mysql start
par :
service mysql start
ou :
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.
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) :
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 :
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 :
seafile.sh start
puis seahub :
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
Il faudra utiliser l'adresse mail préalablement renseignée.
Vous aurez accès à l'écran d'interface :
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 :
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) :
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 :
[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 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 :
Vous seront ensuite demandées les informations de configuration (URL du serveur, identifiants) :
Vous pouvez choisir ou non une connexion automatique.
Vous aurez ensuite l'écran suivant :
Un ajout ou modification de document sera répercuté sur le serveur.
Seafile ajoute un menu contextuel (uniquement disponible depuis le dossier synchronisé) :
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 :
Pour synchroniser un dossier supplémentaire, il suffit de le sélectionner depuis le panneau seafile :
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 :
Lors de la sélection du dossier, nous pouvons voir une option permettant le chiffrement :
Il est possible d'utiliser HTTPS pour les dialogues, il faudra passer par Apache avec une configuration de virtualhost comme ci-dessous :
<
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 :
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 :
./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 :
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 :
syncthing &
Lors de la première connexion, vous aurez l'écran suivant :
Par défaut, il n'y a pas de mot de passe, nous en avons un avertissement :
Nous cliquons sur « Configuration » :
Nous pouvons renommer le serveur via le champ « Nom convivial local de l'appareil ».
Entrons dans le second écran « interface graphique » :
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 :
La modification de la configuration a posteriori se fera par le menu « Actions » en haut à droite :
Avant de gérer les partages, effectuons les réglages de connexion dans le dernier onglet de l'écran de configuration :
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 :
Au redémarrage, vous aurez l'avertissement suivant :
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 :
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 :
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) :
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 :
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 :
Celui-ci va nous donner un identifiant ainsi qu’un QR-Code :
Dans le menu syncthing-gtk, nous ajoutons l'appareil :
Nous cliquons « Ajouter un appareil » et renseignons les champs et surtout l’identifiant du serveur :
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 :
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é :
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 :
À 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 :
apt-get install flatpak ca-certificates
Le paquet ca-certificate est un prérequis
et indique la méthode d'installation :
flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.sparkleshare.SparkleShare
La commande renvoie :
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 :
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 :
./dazzle.sh setup
Ceci installera les dépendances, et finira par le message :
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 » :
./dazzle.sh create TEST
Ceci va créer un dépôt git nommé TEST dans le dossier /home/storage/TEST.
~# ./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.