Evolution #8028
pouvoir lancer genconfig et eop dans deux instances différentes d'eoleflask
Description
Pour plus de sécurité, il serait souhaitable de pouvoir servir les application flask critiques (genconfig) dans une instance séparée des autres applications.
il faudrait pouvoir passer au 'loader' d'applications un sous répertoire de /etc/eole/flask ou lire les configurations des applications à charger.
nécessite plusieurs modifications:
- passage du paramètre et prise en compte dans loader.py (répertoire de configurations)
- voir comment on peut gérer l'activation ou non des applis via eflckcl
- modifier les fichiers apps.mk des applications pour mettre les fichiers de conf au bon endroit
- adapter la fonction de génération des clés secrètes d'applications si besoin
- gerer le lancement des instances gunicorn: en dur dans le script d'init eoleflask, ou automatiquement ?
à voir dans un deuxième temps:
- gérer aussi des sous-répertoire pour les fichiers statiques des application (/usr/share/eole/flask)
Related issues
Associated revisions
Ajout des templates nginx/gunicorn pour les instances d'eoleflask
ref #8028
initialisation de la deuxième instance flask (eoleapps)
- ajout du script d'init pour eoleapps
- mise en place des fichiers de configuration nginx pour eoleapps
ref #8028
Correction de repertoire non créés dans eoleflask.mk
ref #8028
correction typo dans postinst (ref #8028)
History
#1 Updated by Bruno Boiget almost 9 years ago
- Description updated (diff)
#2 Updated by Bruno Boiget almost 9 years ago
- Status changed from Nouveau to Accepté
- Assigned To set to Bruno Boiget
- % Done changed from 0 to 80
Le fonctionnement mis en oeuvre pour l'instant est le suivant:
2 instances d'eoleflask sont mises en place avec des services différents:
- eoleflask : localhost:5000 (eventuellement, renommer le service eoleadmin pour plus de clarté)
- eoleapps : localhost:10000
la première instance fonctionne toujours de la même façon qu'avant et sert eoleauth/genconfig
la deuxième sert aussi eoleauth/genconfig mais n'est pas accessible à l'extérieur via nginx
genconfig est accessible dans les deux instances du fait qu'il est 'enabled' au niveau du répertoire /etc/eole/flask/enabled qui est commun à toutes les instances
pour terminer la séparation, il faut le désactiver et le réactiver seulement au niveau de /etc/eole/flask/eoleadmin/enabled/ de la manière suivante:
- eflkctl disable eolegenconfig
- eflkctl enable eolegenconfig eoleadmin
- service eoleflask restart
- service eoleapps restart
pour rendre eop accessible dans l'instance eoleapps:
- eflkctl disable eop (si déjà configuré)
- eflkctl enable eop eoleapps
- service eoleapps restart
il manquera ensuite à :
- activer la configuration nginx d'eoleapps (déjà livrée dans /etc/nginx/sites-available)
- ajouter une règle d'accès pour rendre eoleapps accessible de l'extérieur (nginx sert l'instance sur le port 3000)
pour limiter les risques de problèmes:
- mettre une dépendance sur la version d'eole-flask-server pour pouvoir utiliser eflkctl avec un nom d'instance (paquets eole-genconfig et eole-eop)
- vérifier que les ports choisis pour eoleapps sont convenables (10000 sur localhost pour flask, 3000 pour nginx)
#3 Updated by Bruno Boiget almost 9 years ago
décisions restant à prendre sur le fonctionnement:
- lancement par défaut ou non de l'instance eoleapps (pour l'instant les 2 sont toujours lancés sur localhost)
- ajouter une question dans applications web pour activer eoleapps via nginx dans le dictionnaire d'eoleflask ?
- voir si des améliorations sont à prévoir sur eflkctl
attention au dépendances avec d'autres variables (activation d'eop forcée à non quand eoleapps n'est pas accessible via nginx ?)
#4 Updated by Philippe Caseiro over 8 years ago
La partie infrastructure est résolus mais il reste des choses a faires (cf nouvelle demande)
#5 Updated by Philippe Caseiro over 8 years ago
- Status changed from Accepté to Résolu
#6 Updated by Philippe Caseiro over 8 years ago
- % Done changed from 80 to 100
#7 Updated by Philippe Caseiro over 8 years ago
- Status changed from Résolu to Fermé