Installation sur Linux - v4

De Documentation e-comBox
La version 4.1 est sortie avec lot de nouveauté. C'est celle-ci qu'il faut installer et n'hésitez pas à migrer si vous utilisez une version plus ancienne.

Préalables

Les scripts utilisés sont disponibles sur gitlab : https://gitlab.com/e-combox/e-comBox_scriptsLinux.

Les scripts ont été testés sur les versions Linux (obligatoirement 64 bits) suivantes :
  • Ubuntu (à partir la version 18.04) ;
  • Debian 9 ;
  • Debian 10 ;
  • Debian 11 (actuellement stable).
Vous pouvez installer une ou plusieurs instances de l'e-comBox derrière un Reverse Proxy externe. Pour configurer ce dernier, consultez le "readme" sur Gitlab.
L'exécution des scripts doivent se faire en administrateur qui est "root" sur Linux (ou en utilisant la commande sudo).
Préalable, en cas de proxy pour curl et git
Définition des variables d'environnement nécessaires à l'exécution de commandes curl via un proxy :
  • export http_proxy="<IPproxy>:<port>"
  • export https_proxy=$http_proxy

À noter également que si l'installation de Docker ne le fait pas le script de configuration crée le dossier "$USER/.docker" et le fichier /$USER/.docker/config.json".

Installation de la version 4.1

Principe de fonctionnement

Il s'agit d'une installation automatique. Le script installe l'e-comBox à partir du fichier /opt/e-comBox/param.conf (qui a été enrichi de nouveaux paramètres) sans interaction avec l'utilisateur.

Le fichier /opt/e-comBox/param.conf sera automatiquement rempli avec les éléments passés en ligne de commande ou avec un fichier /opt/e-comBox/param.conf existant (éventuellement issu d'une ancienne version). Si ce dernier n'existe pas déjà il sera créé.

Les scripts install_linux_e-combox.sh et configure_application.sh peuvent être exécutés en mettant en paramètre un fichier contenant les paramètres que l'on veut modifier ou passer directement (avec des options) les paramètres sur le ligne de commande.
Cela peut également être très utile pour configurer chaque instance avec un outil de déploiement tel qu'Ansible (des exemples de playbook sont fournis).
En ce qui concerne les certificats, si l’on passe par un reverse-proxy externe, les certificats de ce dernier sont propagés et il n’est pas besoin de les installer sur les instances (vous pouvez donc laisser le certificat se créer automatiquement comme proposé dans le script).
Si vous ne passez pas par un reverse-proxy externe et que vous n'avez pas de certificat, il sera créé un certificat auto-signé mais il est aussi possible d'utiliser le script manage_certificat.sh pour générer un certificat Let's Encrypt pour votre domaine".

Le nouveau fichier param.conf

#!/bin/bash

# Définition des paramètres utiles à l'application.

# Version du fichier paramètre (ne pas changer la valeur).
VERSION_PARAM="4.1.0"

# Validation (ou non) de la licence.
# Si cette variable n'a pas la valeur "true", l'application ne pourra pas être installée.
# La licence est consultable ici : https://gitlab.com/e-combox/e-comBox_scriptsLinux/-/raw/v4/LICENCE.
# Les conditions plus générales de la licence CeCILL sont définies sur le site : http://www.cecill.info.
VALIDATION_LICENCE="true"

# Mot de passe pour la connexion en admin à e-comBox et Portainer.
# Le mot de passe doit contenir au moins de 12 caractères sans espace.
# Le mot de passe ne doit pas contenir les caractères spéciaux suivants : \ " `
# Il ne peut pas être égal à "portnairAdmin" qui est connu de tous
# Le système met le mot de passe à jour avec celui saisi si les deux conditions suivantes sont réunies
# 1 - À l'installation ou à la réinitialisation de l'application
# 2 - Si le mot de passe renseigné a été au préalable modifié sur Portainer
# Ce mot de passe en clair sera chiffré, puis supprimé à l'installation, à la réinitialisation ou à la reconfiguration de l'application
# C'est donc normal qu'une fois l'application installée, réinitialisée ou mise à jour, ce paramètre apparaisse vide.
MDP_PORTAINER=""

# Adresse IP privée ou nom de domaine correspondant à une adresse IP privée.
# Si vous saisissez un nom de domaine, celui-ci doit pouvoir être résolu.
# Si aucun domaine n'est configuré, les sites seront accessibles à partir du réseau local via cette adresse IP privée.
# L'adresse IP privée doit obligatoirement être configurée même si le paramètre suivant est renseigné.
ADRESSE_IP_PRIVEE=""

# Adresse IP publique ou nom de domaine correspondant à une adresse IP publique.
# Si vous saisissez un nom de domaine, celui-ci doit pouvoir être résolu.
# Il s'agit du nom de domaine ou de l'adresse IP qui sera utilisée pour la connexion à l'interface, à Portainer et aux sites à la place de l'adresse IP privée.
# Aucune valeur ne doit donc être saisie ici si vous ne voulez pas cela, notamment si le serveur ne doit pas être accessible de l'extérieur.
DOMAINE=""

# Utilisation d'un Reverse-Proxy externe configuré par vos soins - O/N (N par défaut).
# Si vous passez par un reverse proxy externe, mettre "O".
# Les minuscules sont également acceptées.
RP_EXT="N"

# Chemin d'accès éventuel (en cas d'utilisation d'un Reverse-Proxy externe).
# Ne pas mettre de "/" dans le chemin.
CHEMIN=""

# Dossier en chemin absolu contenant la clé secrète qui chiffre le mot de passe de Portainer.
# Par défaut /opt/e-comBox, il est conseillé de le modifier.
# En cas de modification après installation, ne pas oublier de déplacer le fichier contenant la clé secrète.
DOSSIER_MDP_KEY="/opt/e-comBox"

# Dossier en chemin absolu contenant le mot de passe chiffré.
# Par défaut /opt/e-comBox, il est conseillé de le modifier.
# En cas de modification après installation, ne pas oublier de déplacer le fichier contenant le mot de passe chiffré.
DOSSIER_MDP_CHIFFRE="/opt/e-comBox"

# Port utilisé pour un accès direct à Portainer (8880 par défaut).
# Ce port n'a vocation à n'être utilisé qu'en cas de dépannage si l'accès via le reverse-proxy est impossible.
PORT_PORTAINER="8880"

# Port utilisé pour l'accès à Portainer, à l'interface et aux sites (8800 par défaut).
# Il s'agit du seul port exposé.
# Si aucun service Web n'écoute sur le port 443 de votre serveur, ce dernier peut être utilisé.
PORT_RP="8800"

# Port utilisé pour le registry (5443 par défaut).
PORT_REGISTRY="5443"

# Adresse du Proxy.
# Saisissez ip-proxy:port.
ADRESSE_PROXY=""

# Hôtes à ignorer par le proxy.
# Ce paramètre n'est à renseigner que si une adresse de Proxy a été saisie.
# Saisissez le ou les hôtes séparés par une virgule sans espace.
NO_PROXY=""

# Adresse du réseau interne à Docker.
# Si ce n'est pas votre première installation de l'application, le réseau a déjà été crée et affecté aux sites existants.
# Si vous modifiez les paramètres de ce réseau, TOUS LES SITES EXISTANTS SERONT SUPPRIMÉS.
NET_ECB="192.168.97.0/24"

# Suppression des images non associées à un site en cours d'exécution (true par défaut) 
# Cela permet de gagner de l'espace mais aussi de supprimer des images qui ne seront plus jamais utilisées
# Le premier démarrage des sites sera un peu plus long car les images correspondantes devront être de nouveau téléchargées.
# Définir le paramètre à "false" si vous voulez ne voulez pas supprimer ces images (non conseillé lors d'une migration).
DEL_IMAGES="true"

# Les 2 variables qui suivent sont utiles pour donner le chemin vers les éléments pour mettre en place un certificat existant.
# Vous pouvez les laisser vides dans trois cas.
# Cas 1 : si vous passez par un reverse proxy externe, les certificats configurés dans ce dernier sont propagés.
# Cas 2 : l'accès à l'e-comBox ne va se faire que via le réseau local.
# Cas 3  vous ne disposez pas de certificat pour votre nom de domaine.
# À noter que le script manage_certificat.sh crée un certificat Let's Encrypt et permet de mettre à jour l'application
# si une des 6 variables qui suivent ont été modifiées
# Un certificat auto-signé se créera alors automatiquement via les 4 variables qui suivent.

# Fichier certificat existant avec le chemin complet /chemin/fichier.crt ou /chemin/fichier.pem.
CHEMIN_CERT=""

# Fichier de la clé privée existante correspondante au certificat avec le chemin complet /chemin/fichier.key.
CHEMIN_KEY=""

# Uniquement si utilisation de manage_certificat.sh pour créer un certificat Let's Encrypt
# Adresse de courriel non obligatoire pour créer le certificat (mais recommandé par Lets'encrypt)
MAIL=""

# Les 4 variables suivantes sont utiles pour créer un certificat auto signé.
# Elles sont utilisés pour le certificat du registry local.
# Elles sont également utilisées pour le reverse proxy (Nginx) si CHEMIN_CERT et CHEMIN_KEY sont vides.
# Même si vous avez un certificat existant, elles doivent obligatoirement être renseignées.
# Vous pouvez les modifier comme il vous convient.

# Code Pays sur 2 lettres.
CODE_PAYS="FR"

# Nom Pays.
NOM_PAYS="France"

# Nom région.
NOM_REGION="Corse"

# Nom organisation.
NOM_ORGANISATION="ReseauCerta"

Installation de l'e-comBox 4.1

À noter qu'à partir de la version 4.1, il suffit de télécharger et d'exécuter le script configure_application.sh. Ce dernier installera Docker et Docker Compose s'ils sont inexistants sur le serveur.

1. Téléchargement du script configure_application.sh

Le téléchargement du script peut se faire à partir de la commande :

wget https://gitlab.com/e-combox/e-comBox_scriptsLinux/raw/4.1/configure_application.sh --output-document configure_application.sh


2. Exécution du script configure_application.sh

L'exécution du script doit se faire en administrateur qui est "root" sur Linux (ou en utilisant la commande sudo).
Usage: bash configure_application.sh [-f "valeur"] [-i "valeur"] [-d "valeur"] [-r "valeur"] [-c "valeur"] [-p "valeur"] [s | b] [-h]
   -f   Chemin vers le fichier de paramètre  [-f "/chemin/nom_fichier"]
   -i   Adresse IP privée ou nom de domaine correspondant à une adresse IP privée
        [-i "@IP_PRIVEE" | -i "nom_domaine"]
   -d   Adresse IP publique ou nom de domaine correspondant à une adresse IP publique  
        [-d @IP_PUBLIQUE | -d nom_domaine].
        Pour supprimer une adresse IP publique ou un domaine existant -d ""
   -r   Passage par un Reverse-Proxy externe ou non  [-r "O" | -r "N"]
   -c   Chemin en cas de Reverse-Proxy externe [-c "chemin"]. Pour supprimer un chemin existant -c ""
   -p   Mot de passe de Portainer [-p "mot_de_passe"]
        Les caractères suivants " $ ` \ & | ! [space] ne peuvent pas être utilisés en ligne de commande
   -s   Met la variable de suppression des images à "true"  le temps d'exécution du script [-s]
   -b   Met la variable de suppression des images à "false" le temps d'exécution du script [-n]   
   -h   Détail des options

Exemple d'exécution du script :

bash /opt/e-comBox/configure_application.sh -i "192.168.10.1" -d "ecb.nom.domaine" -c "instance1" -r "O" -p "mdp_portainer"

Les valeurs des paramètres peuvent également être renseignées directement dans /opt/e-comBox/param.conf ou être passées (avec l'option "-f") via un fichier :

bash /opt/e-comBox/configure_application.sh -f "chemin_vers_fichier"

Exemple de fichier :

ADRESSE_IP_PRIVEE="172.31.40.109"
DOMAINE="ecb.nom.domaine"
RP_EXT="O"
CHEMIN="rne"
MDP_PORTAINER="mdp_portainer"
DOSSIER_MDP_KEY="/etc/ssl/certs/ecombox"
DOSSIER_MDP_CHIFFRE="/etc/ssl/certs/ecombox"
tous les paramètres peuvent être modifiés via ce fichier. Dans l'exemple ci-dessus, les paramètres DOSSIER_MDP_KEY et DOSSIER_MDP_CHIFFRE seront également modifiés.
En ce qui concerne le mot de passe de Portainer, Les caractères suivants " $ ` \ & | ! [space] ne peuvent pas être utilisés en ligne de commande. Si vous saisissez votre mot de passe dans le fichier param.conf, seuls les caractères spéciaux \ " et ` sont interdits.

Installation de la version 4.0

Principes de fonctionnement

Le script principal install_linux_ecomBox.sh installe l'outil "curl" et appelle 2 autres scripts :

  • install_docker_docker-compose.sh : installe docker et docker-compose ;
  • configure_application.sh : configure l'application e-combox.

Vous pouvez :

  • soit exécuter le script principal ;
  • soit récupérer et exécuter consécutivement les deux scripts.

Le script de configuration de l'application est interactif, il demande des informations et utilise un fichier de paramètres /opt/e-comBox/param.conf qui contient :

  • l'adresse IP privée du serveur (par défaut 127.0.0.1) ;
  • l'adresse IP publique ou le nom de domaine (si l'application doit être accessible de l'extérieur) ;
  • le chemin d'accès (en cas de passage par un Reverse Proxy externe) ;
  • le numéro des quatre ports que l'application doit obligatoirement utiliser :
    • Port utilisé pour l'interface de l'e-comBox, par défaut PORT_ECB=8888,
    • Port utilisé pour Portainer, par défaut PORT_PORTAINER=8880,
    • Port utilisé pour l'accès aux sites, par défaut PORT_RP=8800 (c'est le seul port "utile", voir note ci-dessous)
    • Port pour le registry, par défaut PORT_REGISTRY=5443 (ce port est interne et n'est pas exposé) ;
  • l'adresse du proxy et hôtes à ignorer (si un proxy est nécessaire pour l'accès Internet);
  • les variables nécessaires au certificat (à ne remplir qu'en cas de non utilisation de Reverse Proxy externe).
Le port du Reverse Proxy (PORT_RP) est le seul port non transparent pour les utilisateurs : c'est ce port qui est utilisé dans l'URL si on ne passe pas par le Reverse Proxy externe ou c'est vers ce port qu'il faudra rediriger dans la configuration du Reverse Proxy externe.

L'adresse IP et les configurations du proxy peuvent être modifiés interactivement via le script. Les ports doivent être modifiés dans le fichier "param.conf" avant de lancer le script.

Il est aussi possible de modifier l'adresse du réseau à utiliser pour les sites si celle par défaut ne convient pas au moment où cela est demandé. Cette dernière doit être différente de l'adresse réseau utilisée par l'établissement.

Installation de l'e-comBox 4.0

1. Téléchargement du script principal

Le téléchargement du script principal peut se faire à partir de la commande :

wget https://gitlab.com/e-combox/e-comBox_scriptsLinux/raw/v4/install_linux_e-comBox.sh --output-document install_linux_e-comBox.sh

2. Exécution du script principal

L'exécution du script doit se faire en administrateur qui est "root" sur Linux (ou en utilisant la commande sudo).
bash install_linux_e-comBox.sh
Pour exécuter le script en tant qu'administrateur :
- sudo bash install_linux_e-comBox.sh et vous saisissez votre mot de passe ;
- ou bien sudo su puis vous saisissez votre mot de passe et vous exécutez ensuite le script : bash install_linux_e-comBox.sh.

Si l'installation ne le fait pas le script de configuration crée le dossier "$USER/.docker" et le fichier /$USER/.docker/config.json".

Les fichiers nécessaires à l'application, les scripts de reconfiguration de l'application ainsi que le fichier contenant les identifiants d'accès aux applications (e-comBox_identifiants_acces_applications.pdf) sont installés dans "/opt/e-comBox".

Le script install_linux_ecomBox.sh lance automatiquement le script configure_application.sh qui configure l'application dans l'environnement voulu (gestion de l'adresse IP ou nom de domaine, du proxy, etc.) ;

Si le serveur passe par un proxy, il faut être vigilant sur la configuration du "noproxy" : il est, en effet, nécessaire d'exclure dans la configuration du proxy "localhost" et le réseau dans lequel se trouve le serveur d'ecomBox ainsi que le réseau dans lequel se trouve le proxy (si celui-ci est différent). Par exemple, si votre réseau local est 192.168.20.0/24, il faut ajouter dans les éléments d'exclusion 192.168.20.*. Il faut séparer les valeurs saisies par une virgule.
Dans cette version, au cours du script, il sera nécessaire de modifier le mot de passe admin de Portainer mais il n'y a plus de nécessité de le synchroniser avec l'application e-comBox. Un script permettant de réinitialiser ce mot de passe en cas de perte est disponible dans le dossier /opt/e-comBox.


Lancement de l'e-comBox et utilisation de base

En cas de Reverse Proxy externe :

  • L'interface de l'e-comBox sera accessible via l'URL : https://<nom_domaine>/<chemin>/app/
  • L'interface de Portainer sera accessible via l'URL : https://<nom_domaine>/<chemin>/portainer/
  • Les sites seront accessibles via un URL sous la forme : https://<nom_domaine>/<chemin>/nom_du_site/

S'il n'y a pas de Reverse Proxy externe :

  • L'interface de l'e-comBox sera accessible via l'URL : https://<adresse_IP ou nom_domaine>:PORT_RP/app/
  • L'interface de Portainer sera accessible via l'URL : https://<adresse_IP ou nom_domaine>:PORT_RP/portainer/
  • Les sites seront accessibles via un URL sous la forme : https://<adresse_IP ou nom_domaine>:PORT_RP/nom_du_site/
Si le nom de domaine est renseigné, c'est ce dernier qui est utilisé.
Si vous mettez 443 (il faut, bien sûr, qu'il soit libre) comme numéro de port au niveau de la variable PORT_RP dans le fichier de configuration param.conf, l'interface de l'e-comBox sera accessible via HTTPS sans qu'il soit besoin de préciser le PORT_RP dans l'URL

Il faut donc lancer e-comBox en saisissant :

  • l'URL https://<nom_domaine>/<chemin>/app/ en cas de passage par un Reverse proxy externe ;
  • l'URL https://<adresse_IP ou nom_domaine>:PORT_RP/app/ en cas de non passage par un Reverse Proxy externe.
L'authentification peut se faire avec le compte "admin" de Portainer ou avec un compte "professeur" préalablement créé dans Portainer. La gestion des utilisateurs est décrite ici.

La connexion à l'interface de l'application nécessite obligatoirement une authentification.

EcranAuthentificationEcomBox.png
Dans cette version, plusieurs comptes "professeurs" peuvent être créés et chaque professeur ne voit et ne peut agir que sur ses propres sites. Si vous ne disposez pas d'identifiants, il est nécessaire de contacter l'administrateur de votre instance.Par ailleurs, vous pouvez modifier votre mot de passe via l'interface.

.

Lorsqu'on se connecte (après s'être authentifié), un tableau de bord simplifié permet d'avoir une vue d'ensemble :

InterfaceEcombox.png


Un clic, dans le menu de gauche (par exemple sur Odoo) conduit à un écran similaire à ci-dessous :

InterfaceOdooSelectionnee.png


La prise en main de cette interface avec sa gestion de base (créer, démarrer, arrêter ou supprimer un site) ainsi que la gestion avancée est décrite plus précisément ici.

En cas de problème consultez la FAQ.

En cas de modification de l'environnement, comme un changement d'adresse IP ou l'ajout (voire la désactivation) d'un proxy, il est nécessaire de réinitialiser l'environnement en exécutant de nouveau le script configure_application.sh avec de nouvelles options si nécessaire :
bash /opt/e-comBox/configure_application.sh [options] 

La gestion des ressources pour Docker

Sur Linux, le professeur sera juste limité par la capacité de son poste (capacité du disque, capacité du processeur et capacité de la mémoire) sachant que le processeur et la mémoire ne sont affectés que lorsque les sites sont lancés.

Par exemple, une instance de Prestashop sur Docker nécessite aux alentours de 200 MB de RAM.

Le tableau de bord fournit des statistiques d'utilisation en temps réel.