Variables d'environnement Canopsis¶
Ce document regroupe l'ensemble des variables d'environnement pouvant être ajustées à vos besoins, pour les différents composants de Canopsis.
Note
À ce jour, ce document est encore en cours de rédaction, et n'est pas exhaustif. Il sera complété au fur et à mesure des mises à jour de la documentation.
Modification des variables d'environnement¶
En installation Docker, les variables suivantes peuvent être définies dans un fichier compose.env ou dans une section environment: de votre Docker Compose.
En installation par paquets, ces variables peuvent être définies dans /opt/canopsis/etc/go-engines-vars.conf si elles doivent s'appliquer à l'ensemble des moteurs, ou dans la section [Environment] d'une unité systemd dédiée si un moteur en particulier est ciblé.
Variables d'environnement des composants Go¶
Ces variables concernent l'ensemble des moteurs Go, et certains outils comme canopsis-reconfigure.
URI de connexion aux services externes¶
Votre installation de Canopsis doit obligatoirement comporter les adresses et données de connexion (on parle d'URI) permettant de se connecter aux services externes Redis, MongoDB et RabbitMQ.
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
CPS_AMQP_URL |
(vide) | Une URI de connexion RabbitMQ (cf. Spécification d'URI RabbitMQ) |
CPS_AMQP_HTTP_URL |
(vide) | Une URI de connexion à l'interface HTTP de RabbitMQ (Sert au monitoring) |
CPS_AMQP_HTTP_USER |
(vide) | Nom d'utilisateur pour se connecter à l'interface HTTP de RabbitMQ. (Sert au monitoring) |
CPS_AMQP_HTTP_PASSWORD |
(vide) | Mot de passe pour se connecter à l'interface HTTP de RabbitMQ. (Sert au monitoring) |
CPS_API_URL |
(vide) | Une URI de connexion à l'API Canopsis |
CPS_MONGO_URL |
(vide) | Une URI de connexion MongoDB (cf. Spécification d'URI MongoDB) |
CPS_OLD_API_URL |
(vide) | URI de connexion à l'ancienne API Gunicorn de Canopsis |
CPS_POSTGRES_URL |
(vide) | URI de connexion PostgreSQL/TimescaleDB (cf. Spécification d'URI PostgreSQL) |
CPS_REDIS_URL |
(vide) | Plus d'information ICI. Une URI de connexion Redis (cf. Spécification d'URI Redis) |
Tentatives de connexion aux services externes¶
Les variables suivantes concernent les tentatives de connexion aux services externes de Canopsis, à savoir Redis, RabbitMQ et MongoDB.
Elles servent notamment à gérer le cas où les moteurs démarrent avant que ces services ne soient prêts (ce qui est essentiel pour Docker Compose).
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
CPS_MAX_RETRY |
10 |
Nombre maximum de tentatives de connexion aux services externes |
CPS_MAX_DELAY |
30 |
Temps maximum d'attente, en secondes, lors de chaque tentative de connexion à un service externe |
CPS_WAIT_FIRST_ATTEMPT |
10 |
Temps d'attente obligatoire, en secondes, avant la première tentative de connexion aux services externes |
Redis¶
Il est possible de cumuler une session avec mot de passe Redis et Redis Sentinel :
| Variable d'environnement | Format d'URI | Utilité |
|---|---|---|
CPS_REDIS_URL |
redis://${REDIS_URL}:${REDIS_PORT}/0 |
Définit une connexion redis sans login/mdp |
CPS_REDIS_URL |
redis://${REDIS_USERNAME}@${REDIS_URL}:${REDIS_PORT}/0 |
Comme précédemment, ajout un login |
CPS_REDIS_URL |
redis://${REDIS_USERNAME}:${REDIS_PASSWORD}@${REDIS_URL}:${REDIS_PORT}/0 |
Spécifie un mot de passe |
CPS_REDIS_URL |
redis-sentinel://${SENTINEL_USER}@${SENTINEL_HOST}:${SENTINEL_PORT}/0?sentinelMasterId=${SENTINEL_MASTERID} |
Format d'URI à Redis Sentinel |
CPS_REDIS_URL |
redis_sentinel://${SENTINEL_USER}:${SENTINEL_PASSWORD}@${SENTINEL_HOST}:${SENTINEL_PORT}/0?sentinelMasterId=${SENTINEL_MASTERID} |
Format d'URI connexion à Redis Sentinel avec utilisateur et mot de passe |
CPS_REDIS_URL |
redis-sentinel://${SENTINEL_USER}:${SENTINEL_PASSWORD}@${SENTINEL_HOST}:${SENTINEL_PORT}/0?sentinelMasterId=${SENTINEL_MASTERID}&redisPassword=${REDIS_PASSWORD} |
Format d'URI complet pour se connecter à Redis Sentinel, Redis et Redis Sentinel avec mot de passe. |
Utilisation d'un proxy HTTP ou HTTPS¶
Certains moteurs permettent l'utilisation d'un proxy HTTP ou HTTPS pour les accès à des ressources web externes. Si les deux types de proxy sont activés, le proxy HTTPS sera généralement privilégié.
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
HTTP_PROXY |
(vide) | URL vers un proxy HTTP (ex : http://utilisateur:motdepasse@192.168.0.253:3128/) |
HTTPS_PROXY |
(vide) | URL vers un proxy HTTPS (ex : https://utilisateur:motdepasse@192.168.0.253:3128/) |
NO_PROXY |
(vide) | Liste des adresses pour lesquelles le proxy ne doit pas s'appliquer, séparées par des virgules (ex : 127.0.0.1,localhost) |
Durées d'exécution maximales¶
Les variables suivantes concernent des limites de sécurité appliquées par défaut dans Canopsis.
Dans certains cas d'utilisation, il peut être pertinent d'ajuster ces valeurs à vos besoins. Il faut néanmoins faire preuve de vigilance à ce sujet.
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
REGEXP2_MATCH_TIMEOUT |
1s |
Depuis Canopsis 3.45.0. Durée (au format ParseDuration) d'exécution maximale de l'évaluation d'une expression régulière avancée |
Variables d'environnement propres à certains outils¶
canopsinit¶
L'outil canopsinit dispose lui aussi de variables d'environnement permettant de définir le temps d'attente nécessaire lors des tentatives de connexion aux services externes de Canopsis.
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
CPS_INIT_MAX_RETRY |
10 |
Nombre maximum de tentatives de connexion aux services externes |
CPS_INIT_RETRY_DELAY |
30 |
Temps maximum d'attente, en secondes, lors de chaque tentative de connexion à un service externe |
CPS_INIT_WAIT_FIRST_ATTEMPT |
0 |
Temps d'attente obligatoire, en secondes, avant la première tentative de connexion aux services externes |
TLS¶
Les variables suivantes concernent la configuration TLS de Canopsis.
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
CPS_AMQP_HTTP_INSECURE_SKIP_VERIFY |
(vide) | Permet de désactiver la vérification du certificat TLS lors de la connexion à l'interface HTTPS de RabbitMQ. |
CPS_AMQP_CA_CERT_FILE |
(vide) | Chemin vers un fichier PEM contenant le certificat de l'autorité de certification (CA) à utiliser pour vérifier le certificat présenté par RabbitMQ. Disponible à partir de Canopsis 26.04.2. |
CPS_AMQP_INSECURE_SKIP_VERIFY |
(vide) | Si true, accepte un certificat auto-signé présenté par RabbitMQ. Ignorée si CPS_AMQP_CA_CERT_FILE est définie. Disponible à partir de Canopsis 26.04.2. |
CPS_VALKEY_CA_CERT_FILE |
(vide) | Chemin vers un fichier PEM contenant le certificat de l'autorité de certification (CA) à utiliser pour vérifier le certificat présenté par Valkey. Disponible à partir de Canopsis 26.04.2. |
CPS_VALKEY_INSECURE_SKIP_VERIFY |
(vide) | Si true, accepte un certificat auto-signé présenté par Valkey. Ignorée si CPS_VALKEY_CA_CERT_FILE est définie. Disponible à partir de Canopsis 26.04.2. |
Pour activer TLS, utilisez le schéma amqps:// dans CPS_AMQP_URL et le schéma rediss:// dans CPS_REDIS_URL.
Si le certificat présenté par RabbitMQ ou Valkey est signé par une autorité de certification interne, privilégiez les variables *_CA_CERT_FILE : le certificat est alors vérifié de manière complète.
Certificats auto-signés
Les variables *_INSECURE_SKIP_VERIFY permettent de se connecter à un service présentant un certificat auto-signé (dont l'émetteur est le certificat lui-même), sans avoir à déclarer d'autorité de certification. Le nom d'hôte du certificat reste vérifié.
Elles ne permettent pas d'accepter un certificat signé par une autorité de certification inconnue : dans ce cas, utilisez les variables *_CA_CERT_FILE.
Leur usage est réservé aux environnements de test ou de recette.
Exemple de configuration :
CPS_AMQP_URL=amqps://cpsrabbit:canopsis@rabbitmq/canopsis
CPS_AMQP_CA_CERT_FILE=/opt/canopsis/etc/certs/ca.pem
CPS_REDIS_URL=rediss://:canopsis@valkey:6379/0
CPS_VALKEY_CA_CERT_FILE=/opt/canopsis/etc/certs/ca.pem
Variables d'environnement propres à Docker¶
Les variables suivantes ne sont disponibles que dans un environnement Canopsis reposant sur Docker. Elles sont sans effet sur les autres méthodes d'installation.
| Variable d'environnement | Valeur par défaut | Utilité |
|---|---|---|
CPS_LOGGING_LEVEL |
info |
Permet de surcharger le niveau de verbosité des moteurs et tasks Python. debug permet d'obtenir davantage d'informations |
Les variables suivantes sont disponibles uniquement pour les installations Docker et permettent de définir les images Docker à utiliser pour les différents composants de Canopsis.
| Variables d'environnement | Valeur par défaut | Utilité |
|---|---|---|
CPS_EDITION |
Dépend de la release | Permet de définir l'édition de Canopsis à utiliser. Les valeurs possibles sont : community ou pro. |
MONGO_TAG |
Dépend de la release | Permet de définir la version de l'image Docker MongoDB à utiliser. |
RABBITMQ_TAG |
Dépend de la release | Permet de définir la version de l'image Docker RabbitMQ à utiliser. |
VALKEY_TAG |
Dépend de la release | Permet de définir la version de l'image Docker Valkey à utiliser. |
TIMESCALEDB_TAG |
Dépend de la release | Permet de définir la version de l'image Docker TimescaleDB à utiliser. |
CANOPSIS_IMAGE_TAG |
Dépend de la release | Permet de définir la version de l'image Docker Canopsis à utiliser. |
PROMETHEUS_TAG |
Dépend de la release | Permet de définir la version de l'image Docker Prometheus à utiliser. |
GRAFANA_TAG |
Dépend de la release | Permet de définir la version de l'image Docker Grafana à utiliser. |