<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tomcat on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/tomcat/</link><description>Recent content in Tomcat on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Fri, 24 Nov 2023 14:00:00 +0200</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/tomcat/index.xml" rel="self" type="application/rss+xml"/><item><title>Une issue ouverte sur un projet, 7 ans après ?</title><link>https://blog.zwindler.fr/2023/11/24/issue-ouverte-apres-7-ans/</link><pubDate>Fri, 24 Nov 2023 14:00:00 +0200</pubDate><guid>https://blog.zwindler.fr/2023/11/24/issue-ouverte-apres-7-ans/</guid><description>&lt;img src="https://blog.zwindler.fr/2016/09/article_docker_xwiki.webp" alt="Featured image of post Une issue ouverte sur un projet, 7 ans après ?" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Il y a 7 ans, en août 2016 (!!), je créais ma première &amp;ldquo;vraie&amp;rdquo; image docker.&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;agissait d&amp;rsquo;une image custom pour un outil que j&amp;rsquo;utilisais énormément &lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=xwiki" target="_blank" rel="noopener"
&gt;XWiki&lt;/a&gt;, un outil de Knowledge management open source (et français) que j&amp;rsquo;apprécie particulièrement et qui remplace avantageusement un Confluence (si vous voulez mon avis).&lt;/p&gt;
&lt;p&gt;A l&amp;rsquo;époque, mon image fournissait un XWiki prêt à l&amp;rsquo;emploi avec Tomcat 8 et le driver JDBC pour postgresql.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/zwindler/docker-xwiki" target="_blank" rel="noopener"
&gt;github.com/zwindler/docker-xwiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J&amp;rsquo;avais fait ce projet car les images officielles du projet étaient encore balbutiantes (ça date !) et ne proposaient pas cette alternative.&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://blog.zwindler.fr/2016/09/15/installer-xwiki-8-2-1-avec-docker-compose-en-2-lignes-de-commandes/" &gt;J&amp;rsquo;avais d&amp;rsquo;ailleurs écrit un article pour l&amp;rsquo;occasion (Installer XWiki 8.2.1 avec Docker (compose) en 2 lignes de commandes)&lt;/a&gt; et fourni au fil des mois suivants des manifests pour Kubernetes.&lt;/p&gt;
&lt;h2 id="et-aujourdhui-"&gt;Et aujourd&amp;rsquo;hui ?
&lt;/h2&gt;&lt;p&gt;Ca fait bien longtemps que ce projet n&amp;rsquo;a plus aucun intérêt, même si mes images ont été téléchargées environ 30000 fois (quand même !), avec un dernier téléchargement l&amp;rsquo;an dernier, malgré une version vielle de plus de 6 ans (mais pourquoiiiiii ?).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://hub.docker.com/repository/docker/zwindler/xwiki-tomcat8/general" target="_blank" rel="noopener"
&gt;hub.docker.com - zwindler/xwiki-tomcat8&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les images officielles proposent désormais (depuis bien longtemps) toutes les options les plus courantes pour toutes les versions supportées&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2023/11/dockerhub_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="pourtant-"&gt;Pourtant ?!?
&lt;/h2&gt;&lt;p&gt;Pourtant, début novembre, j&amp;rsquo;ai reçu une issue, d&amp;rsquo;un utilisateur qui m&amp;rsquo;informait qu&amp;rsquo;il ne pouvait pas rebuild mon image car l&amp;rsquo;URL permettant de télécharger les artefacts WAR ne répondait plus (effectivement, elle a changé).&lt;/p&gt;
&lt;p&gt;Même si au début j&amp;rsquo;étais un peu interloqué, je me suis dis que ça pouvait être fun de remettre les mains dedans et de tenter de mettre à jour mon image sur toute la stack, pour voir si ça fonctionne encore.&lt;/p&gt;
&lt;h2 id="voyons-voir-ce-qui-a-changé-depuis-2016"&gt;Voyons voir ce qui a changé depuis 2016&amp;hellip;
&lt;/h2&gt;&lt;p&gt;Évidemment, beaucoup de choses !&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;abord, les versions de XWiki (de 10 à 14), qui ont forcément évoluées, ainsi que cette fameuse URL de téléchargement des artefacts qui avait changé.&lt;/p&gt;
&lt;p&gt;La version de postgres est passée de 9.5 à 16, les versions du driver JDBC ont évoluées de plusieurs mineures.&lt;/p&gt;
&lt;p&gt;Plus impactant, tomcat est passé de la version 8 à la version 10, avec un gros breaking change entre la 9 et la 10, notamment à cause de JEE, renommé en JakartaEE !&lt;/p&gt;
&lt;p&gt;Ca parlera aux Javaistes ;-)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2023/11/javax.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Plus anecdotique, le MAINTAINER a disparu depuis bien longtemps des Dockerfile (remplacé par un LABEL opencontainers), le MaxPermSize n&amp;rsquo;existe plus en Java et le format des fichiers docker-compose est passé en version 3.&lt;/p&gt;
&lt;h2 id="les-modifs"&gt;Les modifs
&lt;/h2&gt;&lt;p&gt;Pour le fun, j&amp;rsquo;ai donc réparé mon image pour qu&amp;rsquo;elle marche (et pas plus), puis j&amp;rsquo;ai passé le repo en readonly, pour la postérité, en prenant soin d&amp;rsquo;informer l&amp;rsquo;auteur de l&amp;rsquo;issue qu&amp;rsquo;il valait mieux regarder du côté des images officielles ;-).&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/zwindler/docker-xwiki/commit/c5955f1c35f809cdf3b4f56b20cc204a37a27f17" target="_blank" rel="noopener"
&gt;Le code de fix est disponible ici, pour les curieux/curieuses&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mais&amp;hellip; ça fonctionne :-p&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2023/11/xwiki-14.avif"
loading="lazy"
&gt;&lt;/p&gt;</description></item><item><title>Installation xwiki 10.6.1 via un playbook Ansible</title><link>https://blog.zwindler.fr/2018/09/05/installation-xwiki-10-6-via-un-playbook-ansible/</link><pubDate>Wed, 05 Sep 2018 11:45:00 +0000</pubDate><guid>https://blog.zwindler.fr/2018/09/05/installation-xwiki-10-6-via-un-playbook-ansible/</guid><description>&lt;img src="https://blog.zwindler.fr/2018/09/xwiki_ansible.webp" alt="Featured image of post Installation xwiki 10.6.1 via un playbook Ansible" /&gt;&lt;h2 id="ansible--xwiki"&gt;Ansible + XWiki
&lt;/h2&gt;&lt;p&gt;Je sais ce que vous vous dites :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ça fait longtemps que zwindler n’a pas écrit un article sur Ansible ou XWiki !&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Non ? Vous ne vous dites pas ça ? Bon tant pis c’est pas grave. Aujourd’hui, je rédige ENFIN l’article pour parler d’un playbook que j’ai déjà rédigé il y a presque un an déjà (et mis à jour et déployé de nombreuses fois). C’est dire si j’ai du retard dans les articles du blog&amp;hellip;&lt;/p&gt;
&lt;h2 id="petit-rappel-des-épisodes-précédents"&gt;Petit rappel des épisodes précédents
&lt;/h2&gt;&lt;p&gt;J’ai déjà rédigé de manière extensive sur XWiki qui est un belle solution open source de gestion de la connaissance. Parmi les articles les plus susceptibles d’intéresser, il y a déjà :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2016/09/15/installer-xwiki-8-2-1-avec-docker-compose-en-2-lignes-de-commandes/" &gt;Installer facilement XWiki en 2 lignes de commandes avec Docker compose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2016/09/12/migration-mediawiki-vers-xwiki/" &gt;Tutoriel de migration d’un Mediawiki vers XWiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2017/10/24/tutoriel-xwiki-ma-premier-appli-stateful-sur-kubernetes/" &gt;Déploiement d’une application Stateful dans Kubernetes par l’exemple (XWiki + PostgreSQL)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2016/03/12/parametres-caches-de-xwiki-taille/" &gt;Résoudre les erreurs de type « Fichier trop gros » lors de l’import d’un fichier dans XWiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il y en a plein d’autre (&lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=xwiki" &gt;voir ici&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="et-ansible-"&gt;Et Ansible ?
&lt;/h2&gt;&lt;p&gt;Et bien oui. Je vous rabâche aussi les oreilles avec Ansible, l’Infrastructure as Code, et l’Idempotence. (Là encore, &lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=ansible" &gt;il y en a plein&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Alors pourquoi pas un playbook Ansible pour automatiser l’installation de XWiki, si vous n’avez pas de cluster Kubernetes sous la main et que vous êtes un Gaulois réfractaire à Docker ?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2018/09/gaulois.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="ya-quoi-dans-ton-playbook-"&gt;Ya quoi dans ton playbook ?
&lt;/h2&gt;&lt;p&gt;Trêve de suspense, les sources sont disponibles sur &lt;a class="link" href="https://github.com/zwindler/ansible-deploy-xwiki-tomcat-postgresql" target="_blank" rel="noopener"
&gt;Github à cette adresse&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ce playbook a été testé pour des RHEL/CentOS 7, en particulier de la version 7.2 jusqu’à 7.4. Une installation de RHEL/CentOS en mode minimale, même sans environnement graphique, devrait être suffisante. Je l’ai faite tourner en production sur des environnements Desktop dans des VMs, mais aussi en Minimal sur un container LXC dans Proxmox VE sans aucun souci.&lt;/p&gt;
&lt;p&gt;L’installation n’utilise pas les serveurs web et de bases de données par « défaut » (MySQL), mais Tomcat 8 et PostgreSQL. Pour la version de Tomcat, c’est une version très particulière qu’il faut utiliser car des bugs ont étés introduits dans une version, puis RE-introduits quelques mois plus tard. Vous pouvez modifier la version par défaut qui est une variables de mon playbook (8.5.32) si elle ne vous convient pas. Les instructions d’installation se basent sur &lt;a class="link" href="https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationTomcat/" target="_blank" rel="noopener"
&gt;la documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2018/09/xwiki_warning.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;- tomcat_version: 8.5.32
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vous pouvez également modifier la version de XWiki directement dans le playbook (c’est une variable là aussi) :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;- xwiki_version: &amp;#34;10.6.1&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A noter, les vielles versions de XWiki n’étaient pas hébergées sur le même dépôt, qui a changé récemment, d’où les deux URLs dans le playbook.&lt;/p&gt;
&lt;h2 id="prérequis"&gt;Prérequis
&lt;/h2&gt;&lt;p&gt;On va utiliser git pour récupérer le playbook et ansible (version de l’OS, rien d’exotique).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install ansible git
git clone https://github.com/zwindler/ansible-deploy-xwiki-tomcat-postgresql
cd ansible-deploy-xwiki-tomcat-postgresql
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="quand-est-ce-quon-installe-xwiki-"&gt;Quand est ce qu’on installe XWiki ?
&lt;/h2&gt;&lt;p&gt;Maintenant !&lt;/p&gt;
&lt;p&gt;Sur un poste qui dispose de git et Ansible :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ansible-playbook -l localhost ansible-deploy-xwiki-tomcat-postgresql.yml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le playbook devrait vous prompter pour un mot de passe pour l’utilisateur de base de données PostgreSQL, n’hésitez pas à mettre quelque chose de complexe. Vous ne devriez pas en avoir besoin.&lt;/p&gt;
&lt;p&gt;Si vous avez une erreur qui vous dit que localhost est ignoré, vous pouvez l’ajouter à votre fichier d’inventaire global : /etc/ansible/hosts&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo vim /etc/ansible/hosts
[local]
localhost ansible_connection=local
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et Paf ! Vous avez un XWiki installé, disponible à l’adresse &lt;code&gt;http://@IP:8080/&lt;/code&gt;. Il n’y a plus qu’à le configurer :)&lt;/p&gt;</description></item><item><title>Installer XWiki 8.2.1 avec Docker (compose) en 2 lignes de commandes</title><link>https://blog.zwindler.fr/2016/09/15/installer-xwiki-8-2-1-avec-docker-compose-en-2-lignes-de-commandes/</link><pubDate>Thu, 15 Sep 2016 11:00:28 +0000</pubDate><guid>https://blog.zwindler.fr/2016/09/15/installer-xwiki-8-2-1-avec-docker-compose-en-2-lignes-de-commandes/</guid><description>&lt;img src="https://blog.zwindler.fr/2016/09/article_docker_xwiki.webp" alt="Featured image of post Installer XWiki 8.2.1 avec Docker (compose) en 2 lignes de commandes" /&gt;&lt;h2 id="automatiser-linstallation-du-xwiki-avec-docker-compose"&gt;Automatiser l’installation du XWiki avec Docker compose
&lt;/h2&gt;&lt;p&gt;Pour ceux qui ne le savent, XWiki est une plateforme collaborative de gestion de la connaissance (généralement appelé wiki, KMDB en ITIL). L’exemple le plus connu de wiki est bien entendu Wikipedia qui tourne par contre lui sous Mediawiki (un autre wiki, moins convivial mais très répandu). J’ai déjà écris pas mal au sujet du XWiki donc si vous voulez un petit tour d’horizon de ce qu’on peut faire avec, vous pouvez &lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=xwiki" &gt;cliquer ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Je commence à en avoir installé un certain nombre :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;que ce soit pour tester les nouvelles version&lt;/li&gt;
&lt;li&gt;en recette ou en production pour de nouvelles équipes&lt;/li&gt;
&lt;li&gt;faire des tests sur Docker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si l’installation d’un XWiki est simplissime si vous utilisez les outils préconfigurés par défaut dans l’installeur JAR, l’installation d’une instance XWiki avec Tomcat et PostgreSQL est un peu plus complexe. Du coup, j’ai eu besoin à plusieurs reprise d’ouvrir mon propre tutoriel qui guide pas à pas &lt;a class="link" href="https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/" &gt;l’installation de la version 7 de XWiki sur un Redhat Entreprise Linux 7 (ou CentOS)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="vous-avez-dit-docker-"&gt;Vous avez dit Docker ?
&lt;/h2&gt;&lt;p&gt;Et c’est notamment grâce au besoin que j’ai eu de faire des tests sur Docker que j’en suis venu à réaliser une image Docker XWiki.&lt;/p&gt;
&lt;p&gt;XWiki était le parfait exemple pour s’initier à :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la création d’un service multi-conteneurs séparés par Tiers (Tomcat, PostgreSQL)&lt;/li&gt;
&lt;li&gt;la rédaction d’un DockerFile qui automatise entièrement l’installation et la configuration de l’application java XWiki à partir de l’image standard Tomcat 8&lt;/li&gt;
&lt;li&gt;l’ajout d’une orchestration de base avec Docker Compose&lt;/li&gt;
&lt;li&gt;la mise en ligne d’une image publique avec Docker Hub&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un des avantages de Docker, c’est que grâce à l’aspect « portable » des conteneurs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avec ce conteneur, je peux garantir que les fichiers de configuration que j&amp;rsquo;embarque avec l’image seront compatibles.&lt;/li&gt;
&lt;li&gt;Sans conteneur, avec un serveur Tomcat déjà existant et en fonction des fichiers de configurations embarqués selon telle ou telle distribution, les instructions que je donne dans &lt;a class="link" href="https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/" &gt;mon article « pas à pas »&lt;/a&gt; pourraient ne pas toujours fonctionner.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pour-les-plus-pressés"&gt;Pour les plus pressés
&lt;/h2&gt;&lt;p&gt;Quelque soit la méthode que vous choisirez, le XWiki sera opérationnel et accessible sur le port 8080 à l’issue de ces commandes. Il faudra juste passer le &lt;a class="link" href="https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/" &gt;« First Installation Wizard »&lt;/a&gt; et &lt;a class="link" href="https://blog.zwindler.fr/2016/09/01/personnalisation-de-base-apres-installation-mise-a-jour-dun-xwiki/" &gt;commencer à configurer le XWiki&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="avec-docker-compose"&gt;Avec Docker Compose
&lt;/h3&gt;&lt;p&gt;Docker compose se charge pour vous, à partir du fichier &lt;strong&gt;&lt;em&gt;docker-compose.yml&lt;/em&gt;&lt;/strong&gt;, de :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;télécharger/builder l’image des conteneurs Postgresql et XWiki&lt;/li&gt;
&lt;li&gt;configurer ces conteneurs&lt;/li&gt;
&lt;li&gt;démarrer les conteneurs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C’est donc forcément plus simple de le faire marcher en 2 lignes de commandes ;-).&lt;/p&gt;
&lt;p&gt;[Edit]&lt;br&gt;
A priori il n’est plus nécessaire de faire un « &lt;strong&gt;chmod +x xwiki-tomcat/xwiki-tomcat-entrypoint.sh&lt;/strong&gt; » sinon ça ne fonctionne pas, j’ai corrigé les permissions sur le github&lt;br&gt;
[/Edit]&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;git clone https://github.com/zwindler/docker-xwiki.git &amp;amp;&amp;amp; cd docker-xwiki
docker-compose -f compose/docker-compose.yml up -d
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="avec-docker-depuis-les-sources"&gt;Avec Docker depuis les sources
&lt;/h3&gt;&lt;p&gt;Avec Docker uniquement, il faudra forcément tout faire à la main. Donc il faudra créer le network, démarrer successivement l’image PostgreSQL puis l’image Tomcat modifiée par mes soins.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker network create -d bridge xwiki-nw
docker run --net=xwiki-nw -itd --name xwiki-postgres -e POSTGRES_DB=xwiki -e POSTGRES_USER=xwiki -e POSTGRES_PASSWORD=xwiki postgres
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;git clone https://github.com/zwindler/docker-xwiki.git &amp;amp;&amp;amp; cd docker-xwiki
chmod +x xwiki-tomcat/xwiki-tomcat-entrypoint.sh
docker build -t zwindler/xwiki-tomcat8:latest .
docker run --net=xwiki-nw -itd --name xwiki-tomcat -p 8080:8080 -e POSTGRES_INSTANCE=xwiki-postgres zwindler/xwiki-tomcat8
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="avec-docker-et-docker-hub"&gt;Avec Docker et Docker Hub
&lt;/h3&gt;&lt;p&gt;Un cran plus simple que la version précédente car je viens d’uploader l’image zwindler/xwiki-tomcat sur Docker Hub. Elle est donc automatiquement téléchargée depuis Docker hub lors de la commande &lt;strong&gt;docker run&lt;/strong&gt;. Pas besoin de « chmod » ni de builder l’image.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker network create -d bridge xwiki-nw
docker run --net=xwiki-nw -itd --name xwiki-postgres -e POSTGRES_DB=xwiki -e POSTGRES_USER=xwiki -e POSTGRES_PASSWORD=xwiki postgres
docker run --net=xwiki-nw -itd --name xwiki-tomcat -p 8080:8080 -e POSTGRES_INSTANCE=xwiki-postgres zwindler/xwiki-tomcat8
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="limage-en-question"&gt;L’image en question
&lt;/h2&gt;&lt;p&gt;L’ensemble des sources sont disponibles sur &lt;a class="link" href="https://github.com/zwindler/docker-xwiki" target="_blank" rel="noopener"
&gt;Github dans mon repository docker-xwiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voici le contenu du DockerFile :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;FROM tomcat:8-jre8
MAINTAINER Denis GERMAIN &amp;lt;denis@example.com&amp;gt;
ENV POSTGRES_INSTANCE=xwiki-pgsql
ENV POSTGRES_PORT=5432
ENV POSTGRES_DB=xwiki
ENV POSTGRES_USER=xwiki
ENV POSTGRES_PASSWORD=xwiki
RUN rm -rf webapps/* &amp;amp;&amp;amp; \
curl -L \
&amp;#39;http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-8.2.1.war&amp;#39; \
-o xwiki.war &amp;amp;&amp;amp; \
unzip -d webapps/xwiki xwiki.war &amp;amp;&amp;amp; \
rm -f xwiki.war
RUN curl -L \
&amp;#39;https://jdbc.postgresql.org/download/postgresql-9.4.1208.jar&amp;#39; \
-o &amp;#39;webapps/xwiki/WEB-INF/lib/postgresql-9.4-1208.jdbc42.jar&amp;#39;
COPY hibernate.cfg.xml webapps/xwiki/WEB-INF/
COPY xwiki.cfg webapps/xwiki/WEB-INF/
COPY setenv.sh bin/setenv.sh
RUN sed -i &amp;#34;s/redirectPort=\&amp;#34;8443\&amp;#34; /redirectPort=\&amp;#34;8443\&amp;#34; URIEncoding=\&amp;#34;UTF-8\&amp;#34; /&amp;#34; conf/server.xml
COPY xwiki-tomcat-entrypoint.sh /
ENTRYPOINT [&amp;#34;/xwiki-tomcat-entrypoint.sh&amp;#34;]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Des variables d’environnement ENV sont à votre disposition pour adapter à votre contexte (on en parlera un peu plus loin). La première étape consiste à télécharger la dernière version en date du XWiki, puis le pilote JDBC PostgreSQL correspondant.&lt;/p&gt;
&lt;p&gt;Les fichiers de Tomcat sont adaptés pour un fonctionnement avec XWiki (Xmx java, autorisation des « / » dans les URLs, &amp;hellip;) et les fichiers de configuration de XWiki sont paramétrés pour accepter l’instance PostgreSQL.&lt;/p&gt;
&lt;h2 id="personnalisation"&gt;Personnalisation
&lt;/h2&gt;&lt;p&gt;Pour permettre un peu plus de souplesse dans l’utilisation de la base de données, j’ai volontairement ajouté des variables d’environnement et un script « ENTRYPOINT ». Ce script sert à paramétrer à la première exécution les valeurs définies en début de DockerFile (ENV).&lt;/p&gt;
&lt;p&gt;Ceci permet à la fois de mettre à disposition une image Docker clé en main si l’utilisateur ne souhaite rien modifier et tout laisser par défaut, ou à l’inverse, de fournir des variables qui lui sont propres et personnaliser automatiquement son instance.&lt;/p&gt;
&lt;p&gt;Vous pourrez ainsi par exemple changer le mot de passe et/ou le nom de l’instance PostgreSQL (soit via modification du docker-compose.yml, soit directement en modifiant le DockerFile).&lt;/p&gt;
&lt;h2 id="problème-allow_encoded_slashtrue"&gt;Problème ALLOW_ENCODED_SLASH=true
&lt;/h2&gt;&lt;p&gt;Malgré l’ajout de &lt;em&gt;ALLOW_ENCODED_SLASH=true&lt;/em&gt; dans &lt;strong&gt;catalina.properties&lt;/strong&gt;, j’avais des problèmes pour ouvrir les pages avec des / dans les noms de pages.&lt;/p&gt;
&lt;p&gt;J’en ai profité pour essayer de déplacer l’application du paramètres et l’intégrer au niveau du setenv.sh avec la variable d’environnement CATALINA_OPTS. Ca n’a pas corrigé le problème (situé à un autre niveau) mais a permis de simplifier le Dockerfile, ce qui est toujours bon à prendre.&lt;/p&gt;
&lt;p&gt;En réalité, la variable était bien prise en compte dans les deux cas. Je l’avais vérifié et cela marchait depuis le début. En réalité, j’ai un reverse proxy Apache (ProxyPass) qui lui aussi fout le boxon avec les « / » dans mes titres de pages de XWiki.&lt;/p&gt;
&lt;p&gt;La réponse suivante &lt;a class="link" href="http://stackoverflow.com/a/9933890" target="_blank" rel="noopener"
&gt;sur StackOverflow explique très bien ce qu’il se passe&lt;/a&gt;. Pour autant dans mon cas, impossible d’accéder à ces pages, quelque soit le paramètre essayé, dans le cas où le XWiki est derrière mon proxy Apache. Je peux y accéder sans, je vais donc devoir les renommer pour contourner le problème. De toute façon, ça ne me plait pas que ces pages aient un « / » dans leur URL ;-).&lt;/p&gt;</description></item><item><title>[Tutoriel] Mise à jour XWiki depuis un war dans Tomcat</title><link>https://blog.zwindler.fr/2016/04/23/tutoriel-mise-a-jour-xwiki-war-tomcat/</link><pubDate>Sat, 23 Apr 2016 10:30:59 +0000</pubDate><guid>https://blog.zwindler.fr/2016/04/23/tutoriel-mise-a-jour-xwiki-war-tomcat/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/11/1434473398.webp" alt="Featured image of post [Tutoriel] Mise à jour XWiki depuis un war dans Tomcat" /&gt;&lt;p&gt;Cette procédure donner les étapes pour mettre à jour un XWiki depuis la nouvelle version du fichier war dans Tomcat. L’exemple que je donne permet de faire une mise à jour (mineure) entre la 7.2 et la 7.4.2 qui corrige plusieurs bugs de la version 7.2 et ajoute quelques fonctionnalités supplémentaires.&lt;/p&gt;
&lt;h2 id="mise-à-jour-war"&gt;Mise à jour WAR
&lt;/h2&gt;&lt;p&gt;Coupez le serveur d’application&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;service tomcat stop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Récupérez le dossier xwiki dans webapps pour archive&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cd /var/lib/tomcat/webapps/
mv xwiki /distrib/archive_xwiki_7.2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Déposez le fichier xwiki-enterprise-web-7.4.2.war dans &lt;strong&gt;/var/lib/tomcat/webapps&lt;/strong&gt; puis relancer T0mcat pour démarrer l’extraction du war&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;service tomcat start
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vérifiez dans les logs que l’application se déploie bien&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tail -f /var/log/messages
Dec 30 10:43:48 xwiki01 server: INFOS: Démarrage du service Catalina
Dec 30 10:43:48 xwiki01 server: déc. 30, 2015 10:43:48 AM org.apache.catalina.core.StandardEngine startInternal
Dec 30 10:43:48 xwiki01 server: INFOS: Starting Servlet Engine: Apache T0mcat/7.0.54
Dec 30 10:43:48 xwiki01 server: déc. 30, 2015 10:43:48 AM org.apache.catalina.startup.HostConfig deployWAR
Dec 30 10:43:48 xwiki01 server: INFOS: Déploiement de l&amp;#39;archive /var/lib/t0mcat/webapps/xwiki-enterprise-web-7.4.2.war de l&amp;#39;application web
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Une fois que c’est fait, nettoyez les fichiers. Habituellement je renomme le dossier pour simplifier la gestion de l’URL d’accès à l’application mais on pourrait le faire avec une redirection nginx/apache/vultureSSO ou tout simplement un lien symbolique sur le dossier.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@xwiki01 webapps]# rm xwiki-enterprise-web-7.4.2.war
rm : supprimer fichier « xwiki-enterprise-web-7.4.2.war » ? y
[root@xwiki01 webapps]# ll
total 0
drwxr-xr-x. 7 t0mcat t0mcat 94 30 déc. 10:43 xwiki-enterprise-web-7.4.2
[root@xwiki01 webapps]# mv xwiki-enterprise-web-7.4.2 xwiki
[root@xwiki01 webapps]#
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Arrêtez tomcat pour modifier les fichiers de configuration&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;service tomcat stop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copiez du connecteur java postgresql (ou mysql) dans les libs de XWiki&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cp /distrib/archive_xwiki/WEB-INF/lib/postgresql-9.2-1004.jdbc41.jar /var/lib/tomcat/webapps/xwiki/WEB-INF/lib/
#ou /distrib/archive_xwiki/WEB-INF/lib/mysql-connector-java-5.1.22-bin.jar
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En théorie, il faut faire attention et comparer les nouveaux fichiers de configuration apportés par la nouvelles version dans le cas où il y aurait des modifications entre les deux versions.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@xwiki01 webapps]# cd /distrib/xwiki_archive_7.2/WEB-INF/
cp hibernate.cfg.xml xwiki.cfg xwiki.properties /var/lib/tomcat/webapps/xwiki/WEB-INF/
cp : voulez-vous écraser « /var/lib/t0mcat/webapps/xwiki/WEB-INF/hibernate.cfg.xml » ? y
cp : voulez-vous écraser « /var/lib/t0mcat/webapps/xwiki/WEB-INF/xwiki.cfg » ? y
cp : voulez-vous écraser « /var/lib/t0mcat/webapps/xwiki/WEB-INF/xwiki.properties » ? y
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour mettre à jour le schéma de la base de données, ajoutez la ligne suivante dans le fichier &lt;strong&gt;xwiki.cfg&lt;/strong&gt;. N’oubliez pas de le retirer une fois la mise à jour effectuée, car ce paramètre rallonge le temps de démarrage du Xwiki.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;xwiki.store.migration=1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Maintenant que le WAR est mis à jour et les fichiers de configuration remis à niveau, on peut passer à la mise à jour dans l’application elle même.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@xwiki01 lib]# systemctl start tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="mise-à-jour-application-xwiki"&gt;Mise à jour application XWiki
&lt;/h2&gt;&lt;p&gt;Se connecter sur le XWiki, le serveur s’initialise.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/03/xwiki_upgrade.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;L’assistant de distribution, identique à celui qui s’ouvre lors du premier lancement après installation apparait.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/03/xwiki_upgrade-2.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;L’assistant nous propose la version 7.4 qu’on souhaite installer.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/03/xwiki_upgrade-3.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Cliquer sur « Installer ». Le wiki se met à jour. Dans le cas où certaines pages importés entrent en conflit, l’assistant propose soit de mettre à jour, soit de laisser tel quel. Dans la plupart des cas, il vaut mieux tout accepter mais si vous savez ce que vous faites, vous pouvez refuser l’écrasement de la page.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/03/xwiki_upgrade-4.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Une fois le processus terminé, le wiki redevient accessible.&lt;/p&gt;</description></item><item><title>[Tutoriel] Installer XWiki 7.X sur RedHat/CentOS 7 (Tomcat + PostGreSQL)</title><link>https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/</link><pubDate>Wed, 16 Dec 2015 17:30:53 +0000</pubDate><guid>https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/11/1434473398.webp" alt="Featured image of post [Tutoriel] Installer XWiki 7.X sur RedHat/CentOS 7 (Tomcat + PostGreSQL)" /&gt;&lt;h2 id="xwiki-cest-quoi-"&gt;XWiki, c’est quoi ?
&lt;/h2&gt;&lt;p&gt;En entreprise, il n’est pas rare que les utilisateurs expriment leur besoin de stocker l’information de manière intelligente aux administrateurs systèmes. Ça peut passer par une GED, une plateforme de travail collaboratif, et même dans certains cas, un wiki (l’exemple le plus connu de wiki est &lt;a class="link" href="https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Accueil_principal" target="_blank" rel="noopener"
&gt;Wikipedia&lt;/a&gt;, au cas où ça ne voyez pas de quoi on parle).&lt;/p&gt;
&lt;p&gt;Comme je travaille dans l’IT, je ne suis pas encore tombé dans un contexte où un wiki n’avait pas sa place et c’était même souvent un projet pris très au sérieux.&lt;/p&gt;
&lt;p&gt;Très au sérieux, d’accord, mais quand même, le mieux serait que ça soit gratuit ! Argument que j’entends relativement souvent de la part des directions, et c’est de bonne guerre ;-).&lt;/p&gt;
&lt;p&gt;Du coup, le choix est tout de suite plus restreint. De ce que j’ai pu trouver dans le marché du gratuit et/ou opensource et pas trop confidentiel pour avoir une chance que le projet survive quelques années, j’ai trouvé :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.mediawiki.org/wiki/MediaWiki/fr" target="_blank" rel="noopener"
&gt;Mediawiki&lt;/a&gt; =&amp;gt; le logiciel sur lequel est basé Wikipedia, que j’ai utilisé à titre personnel mais qui nécessite de connaitre un peu la syntaxe pour obtenir un rendu visuel correct&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.dokuwiki.org/dokuwiki#" target="_blank" rel="noopener"
&gt;Dokuwiki&lt;/a&gt; =&amp;gt;que je n’ai pas utilisé ni même testé, mais j’ai eu de bon retours&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="http://www.xwiki.com/fr/" target="_blank" rel="noopener"
&gt;XWiki&lt;/a&gt; =&amp;gt; un logiciel en Java dont la syntaxe est proche des autres logiciels wiki mais qui dispose surtout de manière native d’un éditeur WYSIWYG (&lt;em&gt;what you see is what you get&lt;/em&gt;, autrement dit : comme word. Le resultat final est visible en temps réel)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La nécessité d’avoir un éditeur WYSIWYG étant un prérequis pour les utilisateurs, je n’ai pas vraiment cherché plus loin : &lt;strong&gt;nous avons installé XWiki&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pour débuter, XWiki vous propose un fichier installeur sous Linux ou Windows où tout est pré-parametré avec une base de données interne et un serveur d’application web java intégré. Cependant, j’aime avoir un minimum la main sur ce que j’administre, je ne maitrise pas la base HSQLDB et j’ai eu des soucis avec les options de Jetty. C’est pourquoi j’ai préféré installer moi même le serveur de base de données PostgreSQL et le serveur java Tomcat.&lt;/p&gt;
&lt;p&gt;Je vous propose donc d’installer XWiki via le WAR, avec un serveur RedHat Entreprise Linux 7 (ou CentOS 7, c’est pareil), un serveur Tomcat 7 et une base de données postgreSQL 9.2.&lt;/p&gt;
&lt;p&gt;Ce tutoriel décrit de manière séquentielle l’ensemble des opérations nécessaires pour y parvenir, à partir des informations qu’on peut trouver dans plusieurs pages éparpillées dans la &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationWAR" target="_blank" rel="noopener"
&gt;documentation officielle&lt;/a&gt; (et avec quelques captures d’écran en bonus track).&lt;/p&gt;
&lt;h2 id="installation-de-los"&gt;Installation de l’OS
&lt;/h2&gt;&lt;p&gt;Comme indiqué plus haut, j’ai commencé par installer une machine virtuelle RedHat Entreprise Linux 7.1 au format Desktop (poste de travail). L’ensemble des prérequis sont listés dans la &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation" target="_blank" rel="noopener"
&gt;documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une fois que c’est réglé, on peut aller récupérer les sources &lt;a class="link" href="http://enterprise.xwiki.org/xwiki/bin/view/Main/Download" target="_blank" rel="noopener"
&gt;sur le site officiel&lt;/a&gt;. Au moment où j’ai écris ces lignes, la version Xwiki 7.2 est la version dite stable (en fait en vrai on est pas loin de la 7.4, mais j’ai tardé à publier l’article. Le principe reste le même).&lt;/p&gt;
&lt;p&gt;[EDIT 26/01/16] Attention si vous utilisez PostGreSQL, il y a &lt;a class="link" href="http://jira.xwiki.org/browse/XWIKI-13025" target="_blank" rel="noopener"
&gt;un bug en cours sur le widget qui affiche l’arborescence&lt;/a&gt;, du coup j’ai du rollback en 7.2.&lt;/p&gt;
&lt;p&gt;J’avais voulu faire la mise à jour car la 7.4 corrige un bug qui date de la version 3.X sur certains PNG qui font planter l’export PDF.&lt;/p&gt;
&lt;p&gt;[/EDIT]&lt;/p&gt;
&lt;p&gt;Récupérez les fichiers suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xwiki-enterprise-web-7.2.war&lt;/li&gt;
&lt;li&gt;xwiki-enterprise-ui-mainwiki-all-7.2.xar&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation-et-configuration-de-tomcat-7"&gt;Installation et configuration de Tomcat 7
&lt;/h2&gt;&lt;p&gt;Je n’ai pas voulu installer à la main tomcat, RHEL 7 propose une version &lt;em&gt;relativement&lt;/em&gt; récente de tomcat 7 qui convient très bien dans les repository officiels.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Les instructions pour configurer Tomcat pour XWiki sont listées &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationTomcat" target="_blank" rel="noopener"
&gt;dans la page suivante&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Copiez le war dans l’arborescence &lt;strong&gt;/var/lib/tomcat/webapps&lt;/strong&gt; :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@monwiki webapps]# pwd
/var/lib/tomcat/webapps
[root@monwiki webapps]# ll
[...]
-rw-r--r--. 1 root root 227064164 6 nov. 15:16 xwiki-enterprise-web-7.2.war
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Passez le serveur en UTF-8 (au niveau du &lt;strong&gt;connector&lt;/strong&gt; dans &lt;strong&gt;/etc/tomcat/server.xml&lt;/strong&gt;) :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;Connector port=&amp;#34;8080&amp;#34; protocol=&amp;#34;HTTP/1.1&amp;#34; connectionTimeout=&amp;#34;20000&amp;#34; redirectPort=&amp;#34;8443&amp;#34; URIEncoding=&amp;#34;UTF-8&amp;#34; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ajoutez l’option suivante dans la configuration tomcat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /etc/tomcat/tomcat.conf
CATALINA_OPTS=&amp;#34;-Xmx1024m -XX:MaxPermSize=192m&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ajoutez l’option suivante dans les propriétés de tomcat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /etc/tomcat/catalina.properties
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Déployez le war en lançant une première fois le service tomcat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl start tomcat
systemctl enable tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vérifiez que tout se passe bien avec &lt;em&gt;tail -f /var/log/tomcat/catalina.2015-11-10.log&lt;/em&gt; #remplacer par la date du jour&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;INFOS: Deployment of web application archive /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2.war has finished in 31 a 560 ms
nov. 10, 2015 4:07:47 PM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler [&amp;#34;http-bio-8080&amp;#34;]
nov. 10, 2015 4:07:47 PM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler [&amp;#34;ajp-bio-8009&amp;#34;]
nov. 10, 2015 4:07:47 PM org.apache.catalina.startup.Catalina start
INFOS: Server startup in 31609 ms
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le seul inconvénient à choisir la version de tomcat présente dans les repositories est qu’un des mécanismes intégrés de scan des jar (archives java) dans cette version provoque l’apparition dans le log d’un très grand nombre de « stack trace » dans votre &lt;strong&gt;catalina.out&lt;/strong&gt; :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;GRAVE: Unable to process Jar entry [javassist/util/proxy/SerializedProxy.class] from Jar
[jar:file:/usr/share/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/lib/javassist-3.19.0-GA.jar!/] for annotations
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
at org.apache.tomcat.util.bcel.classfile.Utility.swallowMethodParameters(Utility.java:797)
at org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:171)
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Avec une version plus récente de tomcat, un warning est simplement indiqué dans le log. Cette erreur n’est pas bloquante, juste désagréable.&lt;/p&gt;
&lt;p&gt;Copiez le driver jdbc 41 (.jar) pour postgreSQL 9.2 dans &lt;strong&gt;WEB-INF/lib&lt;/strong&gt; du répertoire de XWiki dans tomcat. Vous pouvez le télécharger à l’adresse &lt;a class="link" href="https://jdbc.postgresql.org/download/" target="_blank" rel="noopener"
&gt;suivante&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cd /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/lib
chown tomcat:tomcat postgresql-9.2-1004.jdbc41.jar
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="installation-et-configuration-de-postgresql-92"&gt;Installation et configuration de PostGreSQL 9.2
&lt;/h2&gt;&lt;p&gt;La encore, j’ai préféré installer PostGreSQL par le biais des dépôts RPM plutôt que de l’installer à la main.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install postgresql postgresql-server postgresql-jdbc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Les informations permettant de configurer la base de données PostGreSQL pour XWiki sont disponible sur &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationPostgreSQL" target="_blank" rel="noopener"
&gt;la documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La première commande à passer sur la base PostGreSQL est de l’initialiser avec la commande suivante :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;postgresql-setup initdb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour information, sur RHEL/CentOS 6, la base est en version 8.4 et pour l’initialiser il faut utiliser :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;service postgresql initdb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Personnellement j’aime ajouter un lien symbolique pour retrouver mes logs dans /var/log mais c’est totalement un choix personnel.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ln -s /var/lib/pgsql/data/pg_log /var/log/pgsql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mdofier la sécurité pour l’authentification des utilisateurs sans utiliser les utilisateurs Unix (changer ident par md5 ou éventuellement trust) :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/pgsql/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Démarrez la base de données puis créer la base qui sera dédiée au xwiki et son utilisateur associé :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl start postgresql
systemctl enable postgresql
su - postgres
createuser xwiki -S -D -R -P -Upostgres
createdb xwiki -Eunicode -Oxwiki -Upostgres
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Je vous conseille aussi de faire un petit test de connexion pour vérifier que tout est bien configuré côté authentification :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;psql -Uxwiki -h 127.0.0.1 -W
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour information si jamais vous aviez besoin de la détruire a posteriori, la commande est :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dropdb -Upostgres xwiki
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="configuration-de-xwiki-72"&gt;Configuration de XWiki 7.2
&lt;/h2&gt;&lt;p&gt;Maintenant qu’on dispose d’une base de données et d’un serveur d’application java, on peut commencer à configurer l’application XWiki en elle même. Configurer hibernate pour que xwiki stocke sa base sur pgsql&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/hibernate.cfg.xml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Supprimez les lignes liées à la base hsqldb (interne) et décommenter les lignes « PostgreSQL configuration » (en affectant les bonnes valeurs).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;property name=&amp;#34;connection.url&amp;#34;&amp;gt;jdbc:postgresql://localhost:5432/xwiki&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;connection.username&amp;#34;&amp;gt;xwiki&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;connection.password&amp;#34;&amp;gt;VOTREMOTDEPASSE&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;connection.driver_class&amp;#34;&amp;gt;org.postgresql.Driver&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;dialect&amp;#34;&amp;gt;org.hibernate.dialect.PostgreSQLDialect&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;jdbc.use_streams_for_binary&amp;#34;&amp;gt;false&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;xwiki.virtual_mode&amp;#34;&amp;gt;schema&amp;lt;/property&amp;gt;
&amp;lt;mapping resource=&amp;#34;xwiki.postgresql.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;feeds.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;activitystream.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;instance.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;mailsender.hbm.xml&amp;#34;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Remplacez la clé de chiffrement du cookie dans le &lt;strong&gt;xwiki.cfg&lt;/strong&gt; (pour éviter qu’un attaquant puisse déchiffrer les cookies) et &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Configuration#HEnablesuperadminaccount" target="_blank" rel="noopener"
&gt;activez temporairement le superadmin&lt;/a&gt; pour se connecter au wiki pour la première connexion&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/xwiki.cfg
xwiki.authentication.validationKey=1234totototototototototototototo
xwiki.authentication.encryptionKey=1234titititititititititititititi
[...]
xwiki.superadminpassword=system
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Redémarrez tomcat&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ouvrir un navigateur sur l’URL de votre Wiki &lt;code&gt;http://wiki.example.org:8080/xwiki-enterprise-web-7.2/bin/view/Main/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Le wizard de « premier déploiement » doit apparaître. Vous le verrez à nouveau en cas de mise à jour.&lt;/p&gt;
&lt;h2 id="déployer-le-xar-main-qui-contient-lensemble-des-pages-par-défaut"&gt;Déployer le XAR « Main » qui contient l’ensemble des pages par défaut
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Attention :&lt;/strong&gt; Ce qu’il faut savoir c’est que par défaut, les XWiki sont installés sans aucunes pages. Les pages par défaut doivent être chargées manuellement via un import la première fois. C’est à ça que sert le fichier &lt;strong&gt;xwiki-enterprise-ui-mainwiki-all-7.2.xar&lt;/strong&gt; que vous avez téléchargé au début de la procédure.&lt;/p&gt;
&lt;p&gt;Tout est expliqué dans la &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationWAR#HInstallingtheDefaultWikiXAR" target="_blank" rel="noopener"
&gt;documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/00_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/01_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Ici on peut voir que la « User Interface » n’est pas disponible. J’ai l’impression que c’est le cas si votre VM n’a pas accès à Internet. Dans ce cas là, vous devez récupérer le xar contenant l’ensemble des pages par défaut pour les réimporter en tant que superadmin. Dans le cas où le bouton « Install » sous « User Interface », ce qui suit n’est pas nécessaire.&lt;/p&gt;
&lt;p&gt;Cliquez sur [Later].&lt;/p&gt;
&lt;p&gt;Normalement une page pratiquement vide doit apparaître. Il s’agit du squelette du XWiki 7.2.&lt;/p&gt;
&lt;p&gt;Se connecter sur le wiki en tant que superadmin / system et ouvrir la page d’administration (sur le côté droit)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/015_xwiki.avif"
loading="lazy"
&gt;&lt;br&gt;
&lt;img src="https://blog.zwindler.fr/2015/11/02_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Cliquez sur « Import » et uploadez le fichier &lt;strong&gt;xwiki-enterprise-ui-mainwiki-all-7.2.xar&lt;/strong&gt; préalablement téléchargé. Après upload, le package apparait dans « Available Packages »&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/03_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;En cliquant sur le fichier xar qui vient d’être uploadé, on peut sélectionner les pages qu’on ne souhaite pas utiliser (typiquement j’ai désactivé Blog et Sandbox qui ne me servent pas).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/04_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Cocher « Import as backup package », puis cliquer sur « Import ».&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/05_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Maintenant que les pages par défaut sont importées, on a un compte administrateur local pour se connecter (Admin / admin).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/06_xwiki.avif"
loading="lazy"
&gt;&lt;br&gt;
&lt;img src="https://blog.zwindler.fr/2015/11/07_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Voilà un wiki fonctionnel utilisable en entreprise.&lt;/p&gt;
&lt;h2 id="bonus-pousser-un-peu-la-configuration-du-xwiki"&gt;Bonus, pousser un peu la configuration du XWiki
&lt;/h2&gt;&lt;p&gt;Ok ça fonctionne. Mais bon, la première chose que vous voudrez peut être faire c’est passer le XWiki en Français.&lt;/p&gt;
&lt;p&gt;Pour se faire, allez dans Administration, Localization, positionner les deux paramètres « en » à « fr » et enregistrer. La langue devrait changer automatiquement (sans redémarrage).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/08_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Et enfin voici les différents paramètres pour désactiver le superadmin, ajouter l’authentification LDAP (exemple Active Directory, mais je l’ai fais aussi marcher en Novell et en OpenLDAP) et activer les statistiques (désactivées par défaut pour améliorer les performances).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/xwiki.cfg
# xwiki.superadminpassword=system
[...]
xwiki.authentication.ldap=1
xwiki.authentication.ldap.server=dom
xwiki.authentication.ldap.port=389
xwiki.authentication.ldap.bind_DN=CN=ldapreadonly,OU=xxx,DC=xxx,DC=xxx
xwiki.authentication.ldap.bind_pass=xxxxxxxxx
xwiki.authentication.ldap.base_DN=OU=xxx,DC=xxx,DC=xxx
xwiki.authentication.ldap.UID_attr=sAMAccountName
xwiki.authentication.ldap.fields_mapping=name=sAMAccountName,last_name=sn,first_name=givenName,fullname=displayName,email=mail,ldap_dn=dn
[...]
xwiki.stats=1
xwiki.stats.default=1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Redémarrez Tomcat pour prise en compte des nouveaux paramètres.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart tomcat
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Mise en place de Guacamole 0.9.5 sur CentOS 7</title><link>https://blog.zwindler.fr/2015/05/31/mise-en-place-de-guacamole-0-9-5-sur-centos-7/</link><pubDate>Sun, 31 May 2015 09:49:36 +0000</pubDate><guid>https://blog.zwindler.fr/2015/05/31/mise-en-place-de-guacamole-0-9-5-sur-centos-7/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/05/guac-tricolor.webp" alt="Featured image of post Mise en place de Guacamole 0.9.5 sur CentOS 7" /&gt;&lt;p&gt;&lt;strong&gt;Pour information&lt;/strong&gt; : je me suis basé sur le très bon article de &lt;strong&gt;Deviant Engineer&lt;/strong&gt;, qui est concis, s’affranchit de la conf par fichier plat au profit du module MySQL, &lt;strong&gt;et surtout&lt;/strong&gt; qui fonctionne, ce qui n’est pas le cas de tous les tutoriels que j’ai pu croiser sur la toile.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, au même titre que l’informatique s’est généralisée, Internet est de plus en plus présent, où qu’on se trouve. Mais ce n’est pas toujours un Internet comme à la maison.&lt;/p&gt;
&lt;p&gt;Pour des raisons de sécurité et/ou de bande passante, certains ports/protocoles/site web sont souvent bloqués sur les points d’accès public ou d’entreprise. Il n’est pas rare que seul l’HTTP et l’HTTPS soient disponible, me privant ainsi de mes accès SSH/VPN/FTP/&amp;hellip;&lt;br&gt;
C’est un vrai casse tête pour moi : je déploie des services chez moi et j’en deviens dépendant au point d’être agacé de ne pas y avoir accès en toutes circonstances. Et plutôt que de relativiser cet absence d’accès absolu à mes services/données, je préfère chercher des moyens de contournement ;).&lt;/p&gt;
&lt;p&gt;Si l’autohébergement d’applications web et l’utilisation d’un reverse proxy (Vulture/Apache) répond à une partie de cette problématique, des fois, j’ai parfois besoin d’avoir accès aux machines qui hébergent ces services. C’est pourquoi j’utilisais jusqu’à présent Ajaxterm, puis Gateone pour disposer d’un accès SSH à mes serveurs en cas de filtrage.&lt;/p&gt;
&lt;p&gt;Cependant, j’ai aussi besoin de me connecter en mode graphique sur mes serveurs. En présentant au travers d’une interface HTML5 des clients pour les protocoles SSH, VNC et RDP, Guacamole répond à ce besoin.&lt;/p&gt;
&lt;p&gt;Quelques ressources pour bien commencer :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="http://guac-dev.org/" target="_blank" rel="noopener"
&gt;le site officiel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="http://guac-dev.org/doc/gug/installing-guacamole.html" target="_blank" rel="noopener"
&gt;la documentation d’installation officielle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://web.archive.org/web/20160814174529/https://deviantengineer.com/2015/02/guacamole-centos7/" target="_blank" rel="noopener"
&gt;le tutoriel de Devian Engineer (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentation officielle décrit comment l’installer à partir des sources. Cependant, sur certains systèmes, les applications ont été packagées et sont disponibles (0.8.4 si je ne m’abuse sur RHEL et CentOS). Je voulais avoir la version la plus récente, je me suis donc penché sur la solution « compilation ».&lt;/p&gt;
&lt;p&gt;Et pour avoir une compatibilité maximale en terme de fonctionnalités, il faut disposer de Tomcat 7, présent nativement dans RHEL7/CentOS7, que j’ai donc installé (mon premier CentOS7, youhou !)&lt;/p&gt;
&lt;h2 id="prérequis"&gt;Prérequis
&lt;/h2&gt;&lt;p&gt;Forcément, la première chose à faire lorsqu’on installe une application web un peu exotique sur un CentOS, c’est d’installer les dépôts additionnels pour les dépendances (ici EPEL).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;rpm -Uvh http://mirror.metrocast.net/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm # EPEL Repo
yum -y install wget
wget http://download.opensuse.org/repositories/home:/felfert/Fedora_19/home:felfert.repo &amp;amp;&amp;amp; mv home\:felfert.repo /etc/yum.repos.d/ # Felfert Repo
yum -y install tomcat libvncserver freerdp libvorbis libguac libguac-client-vnc libguac-client-rdp libguac-client-ssh
yum -y install cairo-devel pango-devel libvorbis-devel openssl-devel gcc pulseaudio-libs-devel libvncserver-devel \
freerdp-devel uuid-devel libssh2-devel libtelnet libtelnet-devel tomcat-webapps tomcat-admin-webapps java-1.7.0-openjdk.x86_64
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="installation-du-composant-serveur"&gt;Installation du composant « serveur »
&lt;/h2&gt;&lt;p&gt;Le logiciel est découpé en deux parties. Une partie « serveur » qui correspond au portail web, et une partie dite « cliente », qui se charge de la connexion aux différents serveurs SSH/&lt;del&gt;telnet&lt;/del&gt;/VNC/RDP que vous aurez configurés. J’ai rayé telnet car je refuse d’utiliser ce protocole (à l’exception de certaines contraintes de travail très particulières).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cd /distrib
wget http://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.5.tar.gz
tar -xzf guacamole-server-0.9.5.tar.gz &amp;amp;&amp;amp; cd guac*0.9.5
./configure --with-init-dir=/etc/init.d
make
make install
ldconfig
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="installation-du-du-composant-client"&gt;Installation du du composant « client »
&lt;/h2&gt;&lt;p&gt;La partie client peut directement être récupérée tel quel sur le site du projet.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir -p /var/lib/guacamole &amp;amp;&amp;amp; cd /var/lib/guacamole/
wget http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.5.war -O guac.war
ln -s /var/lib/guacamole/guac.war /var/lib/tomcat/webapps/
rm -rf /usr/lib64/freerdp/guacdr.so
ln -s /usr/local/lib/freerdp/guacdr.so /usr/lib64/freerdp/
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="mariadb-mysql"&gt;MariaDB (MySQL)
&lt;/h2&gt;&lt;p&gt;Ne soyez pas surpris de découvrir MariaDB. MariaDB, c’est MySQL. Ou plutôt ce que MySQL aurait du devenir. Il s’agit d’un fork de MySQL initié par son créateur qui a réalisé qu’Oracle (qui a racheté Sun Microsystems en 2009) risquait d’envoyer le produit dans le mur (en concurrence avec Oracle Database).&lt;br&gt;
MariaDB a donc progressivement remplacé MySQL dans les communautés Open Source et les entreprises (citons Google en 2013), et RedHat a suivi le mouvement avec la version 7 de RHEL.&lt;br&gt;
Pas de mauvaise surprise si vous êtes habitués à MySQL : tout est identique en terme d’administration. Vos scripts fonctionneront toujours, les binaires n’ont pas changés.&lt;/p&gt;
&lt;h3 id="installation-de-la-base-de-données"&gt;Installation de la base de données
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;yum -y install mariadb mariadb-server
cd /distrib
wget http://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-mysql-0.9.5.tar.gz
tar -zxf guacamole-auth-mysql-0.9.5.tar.gz
wget http://dev.mysql.com/get/Downloads/Connector/j/mysql-connector-java-5.1.32.tar.gz
tar -zxf mysql-connector-java-5.1.32.tar.gz
mv mysql-connector-java-5.1.32/mysql-connector-java-5.1.32-bin.jar guacamole-auth-mysql-0.9.5/lib/
mkdir /var/lib/guacamole/classpath/
cp /distrib/guacamole-auth-mysql-0.9.5/lib/* /var/lib/guacamole/classpath/
systemctl restart mariadb.service
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="configuration-de-la-base-de-données"&gt;Configuration de la base de données
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;mysqladmin -u root password MySQLRootPass
mysql -u root -p # Enter above password
create database guacdb;
create user &amp;#39;guacuser&amp;#39;@&amp;#39;localhost&amp;#39; identified by &amp;#39;guacDBpass&amp;#39;;
grant select,insert,update,delete on guacdb.* to &amp;#39;guacuser&amp;#39;@&amp;#39;localhost&amp;#39;;
flush privileges;
quit
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="création-du-schéma-pour-guacd"&gt;Création du schéma pour Guacd
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;cd /distrib/sqlauth/guacamole-auth-mysql-0.9.5/schema/
cat ./*.sql | mysql -u root -p guacdb # Enter SQL root password set above
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="configuration-création-du-fichier-properties"&gt;Configuration, création du fichier « .properties »
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir -p /etc/guacamole/ &amp;amp;&amp;amp; vi /etc/guacamole/guacamole.properties
# Hostname and port of gucamole proxy
guacd-hostname: localhost
guacd-port: 4822
# Location to read extra .jar&amp;#39;s from
lib-directory: /var/lib/guacamole/classpath/
# Authentication provider class
auth-provider: net.sourceforge.guacamole.net.auth.mysql.MySQLAuthenticationProvider
# MySQL properties
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacdb
mysql-username: guacuser
mysql-password: guacDBpass
# Additional settings
mysql-disallow-duplicate-connections: false
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="post-installation"&gt;Post-installation
&lt;/h2&gt;&lt;p&gt;Ne pas oublier de nettoyer les répertoires contenant les sources (dans /distrib chez moi), ajouter un lien symbolique vers le fichier de configuration et ajouter le démarrage automatique des services&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir -p /usr/share/tomcat/.guacamole
ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat/.guacamole/
systemctl enable tomcat.service &amp;amp;&amp;amp; systemctl enable mariadb.service &amp;amp;&amp;amp; chkconfig guacd on
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le serveur devrait être accessible à l’adresse http://@IP_serveur:8080/gucamole**/**. A partir de là, vous pouvez configurer vos serveurs SSH/RDP/VNC, créer des utilisateurs et vous connecter.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/05/x_guacamole.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Deux derniers points :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les logs ne sont pas toujours très locaces. Chez moi, il se trouvent dans /var/log/messages et /var/log/tomcat/&lt;/li&gt;
&lt;li&gt;il manque selon moi un menu pour gérer les connexions actives. Typiquement, dans le cas de VNC, le soft m’indique que j’ai 4 ou 5 sessions ouvertes. Elles n’ont pas l’air concurrentes (je n’en ai qu’une réellement active), mais me parait potentiellement même problématique&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>