<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2.0.8 on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/2.0.8/</link><description>Recent content in 2.0.8 on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Tue, 30 Dec 2014 13:48:52 +0000</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/2.0.8/index.xml" rel="self" type="application/rss+xml"/><item><title>Vulture 2.0.8 : problème d’ordre dans la directive ProxyPass dans le cas de plusieurs applis pour un même FQDN</title><link>https://blog.zwindler.fr/2014/12/30/vulture-2-0-8-probleme-dordre-dans-la-directive-proxypass-dans-le-cas-de-plusieurs-applis-pour-un-meme-fqdn/</link><pubDate>Tue, 30 Dec 2014 13:48:52 +0000</pubDate><guid>https://blog.zwindler.fr/2014/12/30/vulture-2-0-8-probleme-dordre-dans-la-directive-proxypass-dans-le-cas-de-plusieurs-applis-pour-un-meme-fqdn/</guid><description>&lt;img src="https://blog.zwindler.fr/2014/12/logo2-white1.webp" alt="Featured image of post Vulture 2.0.8 : problème d’ordre dans la directive ProxyPass dans le cas de plusieurs applis pour un même FQDN" /&gt;&lt;h2 id="erreur-de-génération-de-conf-apache-proxypass-dans-vulture-208"&gt;Erreur de génération de conf Apache (ProxyPass) dans Vulture 2.0.8
&lt;/h2&gt;&lt;p&gt;Depuis la version 2.0.4 de Vulture, il est possible de présenter plusieurs « applications » (comprenez application web) sur un même FQDN, en les différenciant via leur URL complète.&lt;/p&gt;
&lt;p&gt;C’est notamment utile dans le cas de l’utilisation de PNP intégré à shinken. Vous présentez la webui sur le WAN via &lt;a class="link" href="https://shinken.example.org/" target="_blank" rel="noopener"
&gt;https://shinken.example.org/&lt;/a&gt;, et les graphiques PNP sur &lt;a class="link" href="https://shinken.example.org/pnp4nagios" target="_blank" rel="noopener"
&gt;https://shinken.example.org/pnp4nagios&lt;/a&gt;. Vous avez ainsi tout qui fonctionne comme en local dans un seul et même FQDN. Cette mise en place a fait l’objet d’&lt;a class="link" href="https://blog.zwindler.fr/2012/11/17/maj-publier-sur-le-wan-la-webui-de-shinken-via-vulture-2-0-4/" &gt;un précédent article&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cependant, en plus d’apporter des fonctionnalités très appréciables, la mise à jour en 2.0.8 a apporté son lots de petits tracas supplémentaires sur mon installation, notamment pour Shinken (voir &lt;a class="link" href="https://blog.zwindler.fr/2014/07/25/vulture-2-0-8-des-nouveautes-et-des-impacts-sur-la-webui-de-shinken/" &gt;ici&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Je n’avais pas encore remarqué immédiatement, mais il y a eu également une régression de Vulture au niveau de la fonctionnalité dont je parle au début. Je ne pouvais plus accéder à mes graphes PNP4nagios dans Shinken.&lt;br&gt;
En fait, après avoir analysé les logs, je me suis rendu compte que toutes les requêtes, et en particulier celles pour PNP, était redirigées vers Shinken, provoquant inévitablement un code retour 404 ([Edit]403 en fait[/Edit]).&lt;/p&gt;
&lt;p&gt;Après avoir cherché à différents endroits, j’ai fini par remarquer que le problème vient en fait de la génération de la configuration Apache par Vulture en version 2.0.8. Contrairement aux versions précédentes, les directives ProxyPass ne sont pas ordonnées correctement.&lt;/p&gt;
&lt;p&gt;Voici à quoi ressemble la configuration dans l’exemple suivant :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://appli.example.org/" target="_blank" rel="noopener"
&gt;https://appli.example.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://appli.example.org/appli2" target="_blank" rel="noopener"
&gt;https://appli.example.org/appli2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;VirtualHost 0.0.0.0:443&amp;gt;
ServerName appli.example.org
[...]
&amp;lt;Location /&amp;gt;
[...]
&amp;lt;/Location&amp;gt;
ProxyPass / http://@IP_privee:port_appli1/
[...]
ProxyPass /appli2/ http://@IP_privee:port_appli2/appli2
&amp;lt;location /appli2/ &amp;gt;
ProxyPassReverse /
[...]
&amp;lt;/location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La documentation Apache indique qu’il faut placer la directive ProxyPass avec l’URL la plus stricte/longue en premier, ce qui n’est pas le cas ici (Section encadrée « Ordre de classement des directives ProxyPass » dans &lt;a class="link" href="http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypass" target="_blank" rel="noopener"
&gt;Doc Apache de mod_proxy&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Cela implique donc que toutes les requêtes sont redirigées sur Shinken. CQFD.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;En attendant un patch&lt;/strong&gt;, vous pouvez manuellement déplacer la seconde directive ProxyPass au dessus de la première et redémarrer Vulture.&lt;br&gt;
Ca m’a permis de contourner le problème et de retrouver mes graphes dans Shinken. Cependant, ce contournement ne survivra pas à la prochaine génération de la configuration en cas de modification depuis l’interface web Vulture.&lt;/p&gt;</description></item><item><title>Vulture 2.0.8 : des nouveautés et des impacts sur la WEBUI de Shinken</title><link>https://blog.zwindler.fr/2014/07/25/vulture-2-0-8-des-nouveautes-et-des-impacts-sur-la-webui-de-shinken/</link><pubDate>Fri, 25 Jul 2014 14:14:08 +0000</pubDate><guid>https://blog.zwindler.fr/2014/07/25/vulture-2-0-8-des-nouveautes-et-des-impacts-sur-la-webui-de-shinken/</guid><description>&lt;img src="https://blog.zwindler.fr/2014/12/logo2-white1.webp" alt="Featured image of post Vulture 2.0.8 : des nouveautés et des impacts sur la WEBUI de Shinken" /&gt;&lt;p&gt;Fin mai, la version 2.0.8 est sortie et a apporté un lot impressionnant de fonctionnalités supplémentaires (ainsi que quelques bugfixes d’usages)&amp;hellip; ainsi que quelques petites surprises pour ma configuration, et notamment pour publier la WebUI de Shinken au travers de Vulture.&lt;/p&gt;
&lt;p&gt;Mais le jeu en vaut largement la chandelle, regardez plutôt &amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Réécriture de la documentation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;OMG ! Vulture dispose ENFIN d’une documentation (relativement complète) pour CHAQUE page de l’interface d’administration. Cela permet de remettre au clair les passages qui n’avaient pas été bien compris lors de mes premières installs et corriger quelques erreurs dues au manque d’information sur les versions précédentes.&lt;/p&gt;
&lt;p&gt;A noter, si vous commencez, il faut aller sur ces deux pages, avant de lire la doc en entier, pour ne pas être perdu :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="http://www.vultureproject.org/documentation/installation/" target="_blank" rel="noopener"
&gt;Documentation d&amp;rsquo;installation de Vulture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="http://www.vultureproject.org/premiers-pas-avec-vulture/" target="_blank" rel="noopener"
&gt;Premiers pas avec Vulture (pas indiqué assez clairement je trouve, ça devrait être le PREMIER lien après l’install)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Refonte intégrale du packaging&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Refonte intégrale du packaging : Vulture s’installe désormais simplement avec 3 paquets&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ENFIN bis ! Et ça fonctionne bien, fini les galères pour installer les dépendances. Par contre la liste des distribs gérées se limite à sont plus simple appareil : CentOS 6.5 et Debian 7.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mise à jour automatique des configurations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bon&amp;hellip; ça, ça fait un moment qu’on nous le promet, et j’ai du faire une fausse manipulation certainement car comme d’habitude&amp;hellip; j’ai tout perdu&amp;hellip; Si vous avez des retours positifs, je suis preneur ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support d’une URL par défaut dans les interfaces&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En voilà une bonne idée ! Cependant, j’ai eu à l’inverse la mauvaise idée d’en indiquer une pour mon interface, alors que cette appli/URL n’existait pas, et je me suis retrouvé avec de gros soucis sur mon portail, qui ne marchait tout simplement plus.&lt;/p&gt;
&lt;p&gt;J’avais des erreurs au niveau des logs des applications, avec des messages d’erreurs faisant état d’une application inconnue depuis le fichier Core::AuthzHandler.&lt;/p&gt;
&lt;p&gt;Je le re-testerai une autre fois, pour voir, mais je me demande s’il ne manque peut être des contrôles vu que c’est une nouvelle fonctionnalité. Si vous n’en avez pas besoin, je vous conseille de ne pas l’utiliser.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plugins – Transhandler&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Suite à l’installation de la 2.0.8 de Vulture, je n’arrivais plus à faire fonctionner la WebUI de Shinken. J’arrivais à avoir la mire d’authentification, mais pas les images et le CSS.&lt;/p&gt;
&lt;p&gt;Après dépilage des logs, j’ai fini par remarquer que les connexions faisant appels au CSS et aux images (de type static/*) se retrouvaient redirigés sur le serveur où est installé Vulture, et pas sur le serveur Shinken où elles sont situées.&lt;/p&gt;
&lt;p&gt;Après vérification, j’ai trouvé avec étonnement que le plugin TransHandler STATIC static/* livré par défaut lors de l’install était appliqué à toute mes applis, &lt;strong&gt;alors que cette règle n’est normalement appliqué à AUCUNE application&lt;/strong&gt; (paramètre positionné à None)**. [Edit] En fait selon l’équipe de Vulture, c’est normal, quand on a la colonne « Application » à « None », ça signifie que ça s’applique à toutes les applications [/Edit]&lt;br&gt;
**&lt;/p&gt;
&lt;p&gt;La documentation fait bien état de ce plugin, qui sert effectivement à mettre en local sur le serveur qui héberge Vulture toutes les ressources statiques (&lt;a class="link" href="http://www.vultureproject.org/documentation/configuration/configuration-des-applications-web/composants-plugins/plugins-transhandler/" target="_blank" rel="noopener"
&gt;ici&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;J’ai désactivé ce plugin, et tout est rentré dans l’ordre. &lt;strong&gt;[Edit]&lt;/strong&gt; Il semblerait que cela soit plus compliqué que cela. Ce contournement provoque notamment des effets de bord sur le portail. J’ai ouvert un thread sur le google group de vulture à ce sujet.&lt;strong&gt;[/Edit]&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Will not rewrite (Rewrite Content) this content-type: application/json&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois Shinken de nouveau disponible, ce n’était pas terminé pour autant. Visiblement, depuis la 2.0.8 (peut être avant mais je n’ai pas remarqué en 2.0.4), le plugin de réécriture de contenu de la page à la volée &lt;em&gt;Rewrite Content&lt;/em&gt; ne prend plus en charge l’ensemble des contenus par défaut. Cela se traduit par une page web qui n’est simplement pas réécrite (on retrouve les URL privée de PNP dans la page Shinken) et par le message suivant dans le fichier de log&lt;/p&gt;
&lt;p&gt;Le log est plutôt explicite, et la doc aussi (&lt;a class="link" href="http://www.vultureproject.org/documentation/configuration/configuration-des-applications-web/composants-plugins/reecriture-de-contenu" target="_blank" rel="noopener"
&gt;vultureproject.org/documentation/configuration/configuration-des-applications-web/composants-plugins/reecriture-de-contenu&lt;/a&gt;/) !&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Vulture ne pourra altérer que les contenus dont le &lt;em&gt;content-type&lt;/em&gt; est l’un des suivants (il est cependant trivial d’en ajouter d’autres, contacter l’équipe de développement pour signaler un type non géré)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les types sont les suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;text/xml&lt;/li&gt;
&lt;li&gt;text/html&lt;/li&gt;
&lt;li&gt;application/vnd.ogc.wms_xml&lt;/li&gt;
&lt;li&gt;text/css&lt;/li&gt;
&lt;li&gt;application/x-javascript&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J’ai donc signalé ce manque à l’équipe mais en attendant qu’ils publient un patch, vous pouvez simplement ajouter dans l’expression régulière &lt;em&gt;application/json et text/javascript&lt;/em&gt; ligne 138 du fichier &lt;em&gt;/opt/vulture/lib/Vulture/Plugin/Plugin_OutputFilterHandler.pm&lt;/em&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;diff /opt/vulture/lib/Vulture/Plugin/Plugin_OutputFilterHandler.pm*
138c138
&amp;lt; if ($r-&amp;gt;content_type ne &amp;#39;&amp;#39; and $r-&amp;gt;content_type !~ /(text/xml|text/html|application/vnd.ogc.wms_xml|text/css|application/x-javascript|text/plain|application/json|text/javascript)/){
---
&amp;gt; if ($r-&amp;gt;content_type ne &amp;#39;&amp;#39; and $r-&amp;gt;content_type !~ /(text/xml|text/html|application/vnd.ogc.wms_xml|text/css|application/x-javascript|text/plain)/){
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>