linuq-nextcloud2021/installation-machine-virtuelle.md

15 KiB
Raw Blame History

Création de la machine virtuelle avec VirtualBox

Téléchargement de Debian 10

Depuis le site web de Debian, il est possible de télécharger une version légère "net install" de la version 10. Cliquez simplement sur le bouton "télécharger". Sinon, l'image est disponible via ce lien: debian-10.8.0-amd64-netinst.iso

Note: il est possible que cette la version de l'image par défaut ait changé depuis la création de ce tutoriel. L'important est que ce soit la version 10 de Debian.

Création d'une machine virtuelle Debian

On débute par ouvrir le logiciel VirtualBox qui est habituellement disponible via votre distribution Linux ou via le site web de VirtualBox

Accueil de Virtualbox

Nous allons créer une nouvelle machine virtuelle de Type Linux et de version Debian (64-bit). Veuillez vous assurer que le dossier de la machine contienne au moins 20 Go d'espace libre pour assurer le bon fonctionnement de la machine virtuelle.

créer une nouvelle machine virtuelle

Choisissez la quantité de mémoire vive. Il est conseillé d'avoir au moins 2048 Mo de disponible pour que Nextcloud fonctionne de façon fluide avec quelques applications additionnelles.

quantité de mémoire vive

Choisissez le type de disque dur VDI

type de disque dur VDI

Choisissez le stockage dynamiquement alloué

dynamiquement alloué

Choisissez la taille du disque à utiliser pour la machine virtuelle. Je conseille d'utiliser au moins 15 Go. Validez que le répertoire d'enregistrement du disque contient suffissamment d'espace.

taille disque

Nous avons maintenant une configuration de base. Nous allons ajuster quelques paramètres pour notre besoin.

configuration de base

Je conseille de mettre au moins deux processeurs si possible.

deux processeurs

Si vous le désirez, vous pouvez enregistrer votre installation pour garder une trace pour référence future. C'est d'ailleurs ce que je fais pour préparer cette formation.

enregistrer

Nous allons configurer une redirection de port afin de pouvoir nous connecter à la machine virtuelle en SSH avec une console virtuelle ou un logiciel tel que PuTTY au lieu de devoir utiliser l'interface de VirtualBox.

redirection

Ajouter la configuration suivante:

  • Nom: ssh
  • Protocole: TCP
  • Port hôte: 3022
  • Port invité: 22

redirection

Ensuite, sélectionner Afficher depuis l'écran d'accueil. Ceci démarre l'installation du système d'exploitation.

configuration de base

Sélectionner l'image ISO du système Debian 10 que vous avez téléchargée préalablement.

image ISO

image ISO

Démarrer l'installation

installation

Installation de Debian

Nous allons maintenant installer le système Debian sur notre machine virtuelle.

Choisir l'option "install" comme nous n'installons pas un système avec une interface graphique.

install

Choisissez votre langue. Cette installation fonctionnera dans toutes les langues disponibles.

langue

Choisissez votre pays

pays

Choisissez votre disposition de clavier

disposition de clavier

Nom de machine: nextcloud

Mot de passe root: nextcloud

machine

Utilisateur: demo

Utilisateur

Mot de passe: demo

Mot de passe

Choisissez le partitionnement assisté

partitionnement assisté

Choisissez tout dans une seule partition

une seule partition

Choisissez terminer et appliquer tous les changements

appliquer

Choisissez "oui"

démarrage installation

L'installation des packages du système débute, ceci peut prendre quelques minutes.

Choisissez "non" à cette invite qui demande s'il y a d'autres disques à analyser.

disque analyser

Choisissez votre pays pour un miroir. Ici, c'est la proximité géographique qui est la plus importante.

pays du miroir

Choisissez ensuite un miroir pour télécharger les packages additionnels de Debian que vous installerez.

miroir

Laissez le champ du mandataire vide sauf si vous en avez un (c'est très rare sur un réseau résidentiel)

Un autre ensemble de packages sera téléchargé puis installé. En cours de route, vous aurez à répondre à un invite sur popularity-contest. Choisissez Non.

popularity-contest

L'installation se poursuivre par la suite. On vous invitera à choisir différentes options. Comme nous installons Yunohost, nous allons réduire ces options au minimum, car son propre script d'installation s'en chargera.

sélection logiciels

Sélectionner "oui" pour l'installation du système d'amorçage. sélection logiciels

Choisir le disque /dev/sda

sélection logiciels

Ensuite, choisissez "continuer" et la machine virtuelle redémarrera. Debian est maintenant installé.

Se connecter en SSH sur la machine virtuelle

Pour se connecter sur la machine virtuelle, nous utiliserons le port configuré lors de la création de la machine virtuelle ainsi que l'utilisateur demo.

Dans un terminal, saisir:

ssh -p 3022 demo@localhost

Vous authentifier avec le mot de passe demo

Avec PuTTY

putty hote putty user

Ensuite, se connecter en tant que root avec su - et saisir le mot de passe root nextcloud entré lors de l'installation de Debian.

Vous êtes maintenant connecté en tant qu'administrateur sur votre machine virtuelle Debian 10 et prêt à installer Yunohost.

(base) ~  ssh -p 3022 demo@localhost
demo@localhost's password: 
Linux yunohost 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Mar  6 17:20:55 2021 from 10.0.2.2
demo@yunohost:~$ su -
Mot de passe : 
root@yunohost:~# 

Avec PuTTY:

putty user

Avec un terminal, vous verrez un invite de commandes précédé d'un dièse lorsque connecté en root.

Installation de screen (optionnel)

Comme nous allons rouler des commandes qui prennent un temps considérable à exécuter, nous allons utiliser screen, qui permet de garder une session active sur le serveur même si la connexion fait défaut.

sudo apt install -y screen

Pour la suite de ce tutoriel, si vous choisissez d'utiliser screen, nous allons assumer que vous avez lu la section d'introduction du manuel.

Installation de Yunohost

Exécuter les commandes suivantes en tant que root

apt install -y curl
curl https://install.yunohost.org | bash

Lancez l'installation

débuter installation

Laisser Yunohost gérer le SSH. Ce faisant, lorsque vous vous connecterez la prochaine fois, l'utilisateur administrateur sera admin. C'est un rôle intermédiaire entre demo et root en terme de permissions.

gestion ssh

Une fois l'installation terminée, nous allons maintenant effectuer la post-installation.

Nous aurons besoin d'un nom de domaine pour notre installation. Nous utiliserons nextcloud.local.

Le mot de passe d'administration sera nextcloud.

Nous allons aussi créer un premier utilisateur utilisateur

yunohost user create utilisateur

Le résultat est:

Succès ! Lutilisateur a été créé
fullname: utilisateur nouveau
mail: utilisateur@nextcloud.local
username: utilisateur

Accès à la machine virtuelle comme un serveur séparé sur notre réseau local.

Nous allons maintenant configurer la machine virtuelle en mode "pont" afin qu'elle ait sa propre adresse IP. Ce faisant, nous allons pouvoir associer le nom de domaine à cette adresse pour simplifier les manipulations futures. Ceci va simuler comme si on avait une machine physique séparée ou un serveur avec une adresse IP publique tel un serveur privé virtuel (VPS).

reseau pont

Nous allons ensuite redémarrer la machine virtuelle depuis VirtualBox (Menu Machine/Redémarrage).

Une fois redémarrée, l'affichage VirtualBox de la machine virtuelle affiche son adresse IP. Dans cet exemple, c'est 192.168.0.151.

reseau pont

Dans notre configuration de routeur DHCP à la maison, nous allons figer cette adresse. Voici un exemple pour un routeur D-Link

figer IP

Nous allons maintenant ajouter notre domaine au fichier "hosts".

  • Sur Windows (éditer en mode administrateur): C:\Windows\System32\drivers\etc\hosts
  • Sur Linux (éditer avec sudo): /etc/hosts
  • Sur MacOS (éditer avec sudo): /private/etc/hosts

Ajouter la ligne suivante au fichier (Changer selon l'adressse IP de votre machine virtuelle):

192.168.0.151 nextcloud.local

Vous pouvez maintenant vous connecter à votre instance Yunohost via l'adresse https://nextcloud.local dans votre navigateur. Attention, le navigateur va vous demander d'accepter le risque d'une adresse sans certificat valide.

accepter https

Une fois arrivé à la fenêtre de connexion, entrez utilisateur et nextcloud

connexion

Si vous voyez cette fenêtre, vous avez réussi ! Votre installation de Yunohost est fonctionnelle.

accueil yunohost

Installation de Nextcloud

On se connecte en SSH sur le serveur en utilisant le domaine cette fois-ci.

ssh -p 22 admin@nextcloud.local

On installe une instance de Nextcloud.

sudo yunohost app install nextcloud

Vous pouvez conserver les paramètres par défaut proposés à monis que vous désiriez utiliser un sous-domaine. Les paramètres de l'installation devraient ressembler à ceci.

Choose the domain where this app should be installed [nextcloud.local] (default: nextcloud.local): 
Choose the path where this app should be installed (default: /nextcloud): 
Choose an administrator user for this app [utilisateur] (default: utilisateur): 
Access the users home folder from Nextcloud? [yes | no] (default: no):

Validation de l'installation

Pour vous assurer que l'installation de Nextcloud est bien fonctionnelle, ouvrez l'URL suivante dans votre navigateur: https://nextcloud.local/nextcloud

Interface Nextcloud

Installation d'Elasticsearch

Nous allons installer Elasticsearch comme engin de recherche plein texte

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https openjdk-11-jre-headless
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
sudo apt-get update && sudo apt-get install elasticsearch

Il faut maintenant mettre en place et activer le service pour qu'Elasticsearch roule en arrière-plan.

sudo systemctl enable elasticsearch.service

Enfin, nous allons installer et activer le plugin d'indexations de documents pour Elasticsearch

/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment

Pour terminer, on redémarre le service

sudo systemctl restart elasticsearch.service

Installation de l'engin de recherche plein texte de Nextcloud

Depuis le navigateur web, ouvrir l'URL suivante: https://nextcloud.local/nextcloud/settings/apps

Dans la section Rechercher, cliquez sur Télécharger et activer pour les trois applications suivantes:

  • Full text search
  • Full text search - Files
  • Full text search - Elasticsearch Platform

applications full text search

Maintenant, allons dans la section Paramètres de Nextcloud pour configurer ces applications. Sélectionner Elasticsearch comme plateforme de recherche.

Indiquer http://localhost:9200 comme adresse du Servlet et nc_index comme index

Configuration full text search

Initialiser l'index

Depuis la session SSH, idéalement dans un screen, nous allons initialiser l'index Elasticsearch. Exécuter en tant que root.

cd /var/www/nextcloud
chmod a+x occ
sudo -u nextcloud php ./occ fulltextsearch:index

initialiser l'index

Activer l'indexation en continu

Nous souhaitons que tous les nouveaux documents ajoutés dans Nextcloud soit indexés. Pour ce faire, nous allons créer un service dans systemd qui permet l'indexation en continu.

Avec un éditeur de texte, ouvrir et modifier le fichier "unit" du service.

sudo nano /etc/systemd/system/nextcloud-fulltext-elasticsearch-worker.service

Insérer le contenu suivant:

[Unit]
Description=Elasticsearch Worker for Nextcloud Fulltext Search
After=network.target

[Service]
User=nextcloud
Group=nextcloud
WorkingDirectory=/var/www/nextcloud
ExecStart=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:live -q
ExecStop=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:stop
Nice=19
Restart=always

[Install]
WantedBy=multi-user.target

Activer et démarrer le service

systemctl daemon-reload
systemctl enable nextcloud-fulltext-elasticsearch-worker.service
systemctl start nextcloud-fulltext-elasticsearch-worker.service

Valider que le service est bien activé

systemctl status nextcloud-fulltext-elasticsearch-worker.service

service d'indexation en continu

On peut utiliser la recherche plein texte depuis l'URL suivante: https://nextcloud.local/nextcloud/apps/fulltextsearch/