Usage des scripts - v4
Gestion des certificats : manage_certificats.sh
Usage: bash /opt/e-combox/manage_certificats.sh -c|u [-m "valeur"] [-a] [-h] -c Création et mise en place d'un certificat Lets'encrypt -u Mise à jour du certificat à partir des paramètres du fichier param.conf -m Adresse de courriel [-m "adresse courriel"], non obligatoire -a Installation de la mise à jour automatique du certificat lorsque celui-ci est expiré. Cette option n'a d'utilité qu'une seule fois -p Ajout d'un certificat au format PEM dans Portainer -h Détail des options
L'option "-c" automatise la création et l'installation d'un certificat Let's Encrypt directement utilisable pour l'application.
Le script :
- crée le certificat en utilisant le paramètre "DOMAINE" du param.conf et de manière optionnelle le paramètre MAIL (qui peut être soit renseigné dans param.conf soit directement ajouté via l'option "-m" de la ligne de commande) ;
- copie les fichiers dans /opt/e-combox/letsencrypt/live/<domaine> ;
- renseigne les paramètres correspondants de param.conf :
- CHEMIN_CERT="/opt/e-combox/letsencrypt/live/<domaine>/fullchain.pem"
- CHEMIN_KEY="/opt/e-combox/letsencrypt/live/<domaine>/privkey.pem"
- MAIL (si un mail est passé en ligne de commande) ;
- installe le certificat au niveau de l'application.
L'option "-a" (que l'on peut activer ultérieurement) met en place une tâche automatique qui vérifie quotidiennement si le certificat a expiré et le met à jour le cas échéant.
L'option "-u" :
- met à jour le certificat de l'e-comBox si des valeurs à CHEMIN_CERT et à CHEMIN_KEY sont modifiées, ajoutées ou supprimées ;
- met à jour le certificat de l'e-comBox (si ce type de certificat auto-signé est utilisé) mais aussi d'autres certificats nécessaires qui s'appuient sur les variables CODE_PAYS, NOM_PAYS, NOM_REGION, NOM_ORGANISATION. Ainsi, si au moins une de ces 4 paramètres sont modifiés, il est nécessaire de mettre à jour les certificats.
L'option "-p" ajoute, si besoin, un certificat (donné en option) sur Portainer.
Réinitialisation de l'application : reinitialise_application.sh
Usage: bash /opt/e-combox/reinitialise_application.sh -a -f [-n] [-v "valeur"] [-i "valeur"] [-d "valeur"] [-r "valeur"] [-c "valeur"] [-p "valeur"] [-h] -a Suppression de tous les conteneurs, volumes, réseaux et images. -f Force la suppression même si l'accès à Portainer n'est plus possible. -n Réinstallation de l'application. -v Version de l'application à installer si vous voulez changer de version [-v "version"]. -i Adresse IP privée nom de domaine correspondant à une adresse IP privée [-i "@IP_PRIVEE" | -i "nom_domaine"]. -d Adresse IP publique nom de domaine correspondant à une adresse IP publique [-d "@IP_PUBLIQUE" | -d "nom_domaine"]. Pour supprimer une valeur existante -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 -h Détail des options.
L'option "-a" est obligatoire, elle force la suppression des conteneurs, volumes, réseaux et images. L'option "-f" peut être utilisée si l'accès à Portainer n'est plus possible.
L'ajout de l'option "-n" permet de réinstaller l'application en changeant éventuellement la version via l'option "-v".
Sans l'option "-n", l'application n'est pas réinstallée mais est prête à l'être, l'ancien fichier param.conf sera sauvegardé en param.sauv.conf et un fichier param.conf contenant les valeurs pas défaut sera téléchargé.
Dans le cadre d'une réinstallation, l'option "-p" est obligatoire si un mot de passe pour Portainer n'a pas été renseigné dans le param.conf car, lors de la réinitialisation, les anciens identifiants de Portainer ont également été réinitialisés.
Les autres options servent à la réinstallation de l'application pour alimenter le fichier param.conf, options identiques à celles utilisables lors de la configuration de l'application via le script configure_application.sh.
Suppression de l'application : delete_application.sh
Usage: bash /opt/e-combox/delete_application.sh -e | -a -f [-h] -e Suppression de l'application uniquement -a Suppression de l'application, docker et docker-compose -f Force la suppression même si l'accès à Portainer n'est plus possible -h Détail des options
L'option "-e" supprime uniquement l'application.
L'option "-a" supprime également Docker et Docker Compose.
Mise à jour de l'application : update_ecb.sh
Il est exécutable sans option.
Gestion des images : manage_images.sh
Usage: bash /opt/e-combox/manage_images.sh -d|u|t [-a] [-p] [-w] [-b] [-m] [-s] [-o] [-k] [-r] [-i \"nom_image\"] [-f \"nom_image\" | -f \"type_image\"] [- h]" -d Suppression des images non associées à un site en cours d'exécution [-d] -u Mise à jour des images. Les sites doivent être redémarrés pour la mise à jour soit effective [-u] -a L'action porte sur toutes les images existantes. -p Suppression ou mise à jour des images Prestashop [-p] -w Suppression ou mise à jour des images WooCommerce [-w] -b Suppression ou mise à jour des images Blog [-b] -m Suppression ou mise à jour des images Mautic [-m] -s Suppression ou mise à jour des images Suite CRM [-s] -o Suppression ou mise à jour des images Odoo [-o] -k Suppression ou mise à jour des images Kanboard [-k] -r Suppression ou mise à jour des images HumHub [-r] -i Suppression ou mise à jour d'une image spécifique [-i "nom_image"] -f Mise à jour d'une image utilitaire [-f "nom_image" | -f "type_image"] -t Téléchargement de toutes les images des sites (utile pour accélérer la création du premier site correspondant aux images) [-t]" -h Détail des options
L'opération de suppression d'images peut être utile si vous devez gagner de la place. Certaines images prennent de la place sur le disque dur sans être utilisées. C'est une opération qui peut être salutaire et qui est sans risque, il n'est pas possible de supprimer des images associées à des sites en cours d'exécution. Le seul inconvénient est que le démarrage des sites seront peu plus lents car il faudra télécharger de nouveau les images correspondantes.
À contrario, si vous n'avez pas besoin de gain de place, il peut être intéressant de télécharger toutes les images (option "-t") avant la première utilisation de l'instance, cela accélérera le lancement du premier site d'un même type.
La mise à jour de l'image peut s'avérer nécessaire si celle-ci a été modifiée suite à un bug ou à une faille de sécurité.
Configuration ou re-configuration de l'intégralité de l'application : configure_application.sh
- installer l'application ;
- re-configurer l'application si des éléments importants de l'environnement ont changé (adresse IP, domaine, passage par un Reverse Proxy externe, passage par un proxy).
Il peut être utilisé avec des options facultatives qui remplacent les valeurs du fichier param.conf.
La valeur des principaux paramètres peut être passée directement en ligne de commande (voir Usage ci-après).Usage: bash /opt/e-combox/configure_application.sh [-f "valeur"] [-i "valeur"] [-d "valeur"] [-r "valeur"] [-c "valeur"] [-p "valeur"] [-h] -f Chemin vers le fichier de paramètres [-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 passent pas 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
Voir également la partie sur l'installation de l'application.
Configuration de l'authentification openID Connect : configure_oauth.sh (version 4.2)
Usage: bash /opt/e-combox/configure_oauth.sh -f [-h]-a|i [-h] [-s] [-j \"CLIENT_ID\"] [-k \"CLIENT_SECRET\"] [-l \"AUTHORIZATION_URL=\"] [-m \"ACCESS_TOKEN_URL=\"] [-n \"RESOURCE_URL=\"] [-o \"LOGOUT_URLL=\"] [-p \"USER_IDENTIFIER=\"] [-q \"SCOPES\"] [-r \"/CHEMIN/CERT_OAUTH\"] -a Activation de l'authentification 0Auth. Dans ce cas les autres paramètres doivent être renseignés soit dans param.conf, soit passés en option à l'exécution du script." -i Activation de l'authentification Interne" -s Activation du SS0" -j Identifiant public de l'application OAuth [-j \"CLIENT_ID\"]" -k Client secret [-k \"CLIENT_SECRET\"]" -l URL pour s'authentifier auprès du fournisseur OAuth [-l \"AUTHORIZATION_URL=\"]" -m URL pour récupérer le token d'accès [-m \"ACCESS_TOKEN_URL=\"]" -n URL pour récupérer des informations sur l'utilisateur authentifié [-n \"RESOURCE_URL=\"]" -o URL pour rediriger l'utilisateur vers le fournisseur OAuth afin de déconnecter l'utilisateur de la session [-o \"LOGOUT_URL=\"]" -p Identifiant qui sera utilisé par Portainer pour créer un compte pour l'utilisateur authentifié [-p \"USER_IDENTIFIER=\"]" -q Étendues requises par le fournisseur OAuth pour récupérer des informations sur l'utilisateur authentifié [-q \"SCOPES\"]" -r Fichier certificat du fournisseur 0Auth (en cas de besoin) [-r \"/CHEMIN/CERT_OAUTH\"]" -h Détail des options
L'option -a active l'authentification "OAuth". Elle a pour effet de mettre le paramètre OAUTH_ENABLE à "true". À ce moment là, les paramètres qui suivent dans le param.conf sont pris en compte (sinon, ils ne le sont pas). Si les paramètres sont absents de param.conf, il est nécessaire de les passer en ligne de commande.
L'interface de connexion de l'e-comBox est modifiée pour prendre en compte la nouvelle authentification :
Un exemple avec les éléments correspondants dans le fichier param.conf est fourni ci-dessous :
# Ajout du mode d'authentification pour les comptes non-admin basé sur le protocole OAuth (false par défaut). # Si false, il n'est pas tenu compte des paramètres qui suivent. # Si true, vous devez fournir la valeur des paramètres qui suivent. # Veuillez-vous référer à votre fournisseur OAuth pour déterminer les bonnes valeurs. OAUTH_ENABLE="true" # true ou false # Lors de l'utilisation de SSO (variable à "true"), le fournisseur OAuth n'est pas obligé de demander des informations d'identification. SSO_ENABLE="true" # Identifiant public de l'application OAuth. CLIENT_ID="portainerar" # Client Secret CLIENT_SECRET="uygb6yopPLin8u7Tw5w3NIjNmrBiPbxm" # URL utilisée pour s'authentifier auprès du fournisseur OAuth. # L'utilisateur sera redirigé vers la page d'authentification du fournisseur d'identité. AUTHORIZATION_URL="https://keycloak.cub.corsica:8443/realms/cub/protocol/openid-connect/auth" # URL utilisée par Portainer pour échanger un code d'authentification OAuth valide contre un token d'accès. ACCESS_TOKEN_URL="https://keycloak.cub.corsica:8443/realms/cub/protocol/openid-connect/token" # URL utilisée par Portainer pour récupérer des informations sur l'utilisateur authentifié. RESOURCE_URL="https://keycloak.cub.corsica:8443/realms/cub/protocol/openid-connect/userinfo" # URL utilisée par Portainer pour rediriger l'utilisateur vers le fournisseur OAuth afin de déconnecter l'utilisateur de la session du fournisseur d'identité. LOGOUT_URL="https://keycloak.cub.corsica:8443/realms/cub/protocol/openid-connect/logout" # Identifiant qui sera utilisé par Portainer pour créer un compte pour l'utilisateur authentifié. # Extrait du serveur de ressources spécifié via le champ URL de la ressource. USER_IDENTIFIER="email" # Étendues requises par le fournisseur OAuth pour récupérer des informations sur l'utilisateur authentifié. SCOPES="openid email" # Fichier certificat du fournisseur 0Auth avec le chemin complet /chemin/fichier.pem. # Ce denier doit être intégré à Portainer CERT_OAUTH="/etc/ssl/letsencrypt/keycloak.cub.corsica.pem"
Ce qui donne la configuration de Portainer ci-dessous :
Automatic user provisioning et Default team sont des paramètres mis par défaut de manière à ce que les utilisateurs qui se connectent soient automatiquement ajoutés sur Portainer dans le groupe "Profs".
Nettoyage des volumes : nettoyage_volumes.sh (version 4.2)
Il arrive que des volumes "orphelins" soient créés. Par exemple, si un site en cours de création n'aboutit pas pour une raison ou une autre. En dehors du fait que les volumes prennent de la place inutilement, cela peut à terme causer un dysfonctionnement lors, par exemple, de la création d'un site du même nom que le site qui n'a pas aboutit.
.
Réinitialisation du mot de passe de Portainer : reset_pass_portainer.sh
Usage: /opt/e-combox/reset_pass_portainer.sh -f [-h] -f Réinitialisation du mot de passe de Portainer -h Détail des options
Sauvegarde et Restauration
sauv_sites.sh (modifié dans la version 4.2)
Fonctionnalités apportées par la version 4.2 :
- possibilité de dérouler le script sans interaction ;
- la sauvegarde effectuée permet la restauration de l'intégralité des sites mais également d'un seul site.
Usage: Usage: bash /opt/e-combox/sauv_sites.sh [-a \"nom_archive.tar.gz\"] [-h]. -a Chemin vers l'archive de sauvegarde [-a \"nom_archive.tar.gz\"]. -h Détail des options
La sauvegarde est composée de l'archive de sauvegarde à laquelle est associé un dossier du nom de l'archive sans le ".tar.gz" qui contient lui-même des fichiers ".json" dans lesquels figurent des informations sur chaque site. Ces fichiers sont nécessaires dans le cadre de la restauration d'un seul site.
restaure_sites.sh (modifié dans la version 4.2)
Fonctionnalités apportées par la version 4.2 :
- possibilité de dérouler le script sans interaction ;
- possibilité de ne restaurer qu'un seul site.
Usage: Usage: bash /opt/e-combox/restaure_sites.sh -f|r \"nom du site\" [-h] [-s] [-a \"chemin_complet_archive_sauvegarde.tar.gz\"]" -f Restauration de l'intégralité des sites. -r Restauration d'un seul site [-r \"nom du site\"]. -a Chemin vers l'archive de sauvegarde [-a \"chemin_complet_archive_sauvegarde.tar.gz\"]". Si le chemin est fourni le script se déroulera sans interactivité. -h Détail des options
restaure_v3.sh
Le script ne prend aucun paramètre en ligne de commande.