Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

circus et circus-web

+2 votes

Comme je travaille de plus en plus sur ZMQ, j'essaie de capitaliser en remplaçant supervisor par circus dans mon architecture docker et c'est un super produit MAIS:

Je ne comprends pas la séparation circus et circus-web, ni à l'installation, ni à l'utilisation.

J'avais l'impression que circus-web permettait de gérer plusieurs serveurs circus par une connexion tcp:*:5555

Pourtant, impossible de configurer le endpoint de circus pour écouter sur autre chose que 127.0.0.1:5555, ce qui empêche d'y accéder par circus-web

D'habitude sur zmq, quand on veut binder larger, on utilise tcp://*:5555 mais les paramètres endpoint de circus semblent utiliser autant pour les bind que pour les connect.

En bref, mon objectif est d'avoir une console web pour gérer toutes mes instances circus qui sont intégrées dans mes contenairs docker pour lancer les applications.

Avez-vous des idées ou informations car j'ai épuisé la doc, les sources et google :)

demandé 27-Jan-2015 par srault95 (280 points)
edité 27-Jan-2015 par foxmask

ton reseau entre tes conteneurs et ton host est il correctement configuré (mappings de ports, pont, reseaux, ...) ?

Je plussoie, d'expérience dans ce genre de pb c'est:
1) les firewalls
2) les configs firewalls
3) les firewalls
4) goto 1
5) les routes
6) sudo ip route flush cache
(meme quand les routes sont bonnes)
:-)

1 Réponse

+3 votes
 
Meilleure réponse

On a séparé circus-web car c'était la galère de mélanger les dépendances de la console web avec celles de circus. Et beaucoup de gens n'utilise pas la console web. Aussi parce que la console s'installe typiquement sur une autre bécane.

En ce qui concerne l'utilisation de la console pour plusieurs circus, c'est pas un problème du moment que la console soit sur le même réseau que les circusctl qui tournent.

On utilise l'UDP multicast pour faire de l'auto-discovery et tu peux choisir dans la console quel circusctl tu veux piloter.

L'option peut etre tweakée, cf https://github.com/circus-tent/circus/blob/master/circus/arbiter.py#L44

donc modulo les machines se voient toutes en UDP et les ports TCP sont ouverts comme il faut, tu dois pouvoir arriver a lancer une console circus qui interagit avec differents circusd.

Je file le lien de cette page a Natim aussi, qui a codé cette feature

répondu 28-Jan-2015 par Tarek
sélectionné 28-Jan-2015 par srault95

Il faut utiliser la version trunk de circus-web on a pas fait de release car il faut réécrire les tests mais grosso modo, une fois dans la console de circus-web tu as des cases à cocher sur le côté avec la liste des circusd détéctés et tu peux les gérer tous ensemble.

Merci Tarek, effectivement, j'avais étudié cette option et comme Natim l'a suggéré, j'avais déjà utilisé la version trunk mais j'ai peut être mal posé mon problème.

Je cherche effectivement à piloter des circusd sur des réseaux différents à partir d'une console unique.

Ce qui m'a troublé dans le packaging n'est pas la séparation mais au contraire, le manque de séparation (2 projets, 1 doc, 1 lancement de la tâche du 2ème projet par le 1er projet...) et surtout, le http qui utilise les mêmes paramètres de config que circusd et le tcp://127.0.0.1 utilisé autant pour le bind que pour le connect.

J'imagine que vous avez surement déjà passé beaucoup de temps sur ce projet mais je sens qu'il manque peu pour le rendre plus attrayant (j'avoue que ça fait 2 fois que j'essai de migrer de supervisor vers circus et que je reviens en arrière...)

Si vous avez des idées et ce qui est plus rare, du temps je suis toujours à la recherche d'une solution...

...